I am a PhD student in Computational Linguistics. As such I have both the need to experiment with deep learning frameworks and little money to build a powerful deep learning machine.
Unlike my last build, which was centered around an open source deep learning stack provided by AMD, this build is designed to be as cheap as possible.
There are some things that I included in this build that I just had lying around and some things that I had to buy to assemble it. I will break down the cost for both types of materials.
Building a deep learning machine in an old gaming computer case would probably be ideal. However, those kinds of systems have held their value better than I initially expected. In addition, ram was a bit of a concern for systems old enough to be within my price range: gaming systems from 2011 or so almost always seemed to be built with 8 GB of ram on the high end. Of course, this can be expanded, but the highest memory capacity I could achieve for a $80 motherboard seemed to be about 32 GB. I wanted to have the flexibility to work with large datasets in the future.
In addition, I am very familiar with old server hardware (due to the number of non-deep learning oriented servers I maintain). I started seeking out used workstations like the HP z620, z820, Lenovo Thinkstation s30, or the Dell Precision T3600.
I ended up setting on the HP z620 in particular because:
For the GPUs in this machine, I went with the GTX 1070. This was for two primary reasons. The first being that this is the cheapest processor available from NVIDIA with 8 GB of VRAM. VRAM is where the models and data live on the GPU. Having more VRAM directly relates to the size of the models you can run as well as the speed with which you can train (as training speed is highly dependent upon batch size and larger batches require more memory). The second reason is that the GTX 1070 typically only required a single 8 pin power connector. Provided that the z620 can supply two 8 pin connectors, something like the 1080ti is only practical if I have no desire to expand to more than one GPU.
The first GPU I selected was a cheap Gigabyte model that I bought off of an online forum.
The second GPU, which I bought after using the machine for a while was a blower-design HP OEM card that I bought on Ebay. This was slightly more expensive due to having to pay tax.
Data takes up a lot of space and I wanted to have no shortage of spinning metal to put my data on. The z620 came with one 500 GB drive. I had a number of 1 terabyte 2.5” hard drives around from a failed attempt at using them in my Proliant DL380 machine (however, the temp sensors on these drives did not agree with this machine).
The z620 has two 5.25” bays. Only the top one has a CD drive. I bought a caddy from IcyDock that enabled me to put four 2.5” drives in one 5.25” bay.