Sep 26, 2016 - Building PC For Deep Learning - Hardware

Hardware

I thought I would never need a desktop PC again. The last time I built a desktop myself was more than 12 years ago and since then I mostly used laptops (PCs and Macs). However, It’s been clear to me for some time now that I need to build a new desktop PC again because of 3 main reasons:

  • Deep Learning
  • Virtual and augmented reality
  • Games

If you are looking for a PC which could handle all three of these tasks (as of Sep 2016), below you will find a complete list of parts (without monitor and actual VR headset) which will fit together into a nicely capable system. Note, aslo that this is home system; for a deep learning workstation you’ll need to be able to accomodate 4 GPUs and will probably need more cabable PSU, CPU and more RAM.

Part list
PCPartPicker part list / Price breakdown by merchant

Type Item Price
CPU Intel Core i5-6600K 3.5GHz Quad-Core Processor $227.99 @ SuperBiiz
CPU Cooler Cooler Master Hyper 212 EVO 82.9 CFM Sleeve Bearing CPU Cooler $24.88 @ OutletPC
Motherboard MSI Z170A SLI ATX LGA1151 Motherboard $89.98 @ Newegg
Memory Corsair Vengeance LPX 32GB (2 x 16GB) DDR4-3200 Memory $173.99 @ Newegg
Storage Samsung 850 EVO-Series 500GB 2.5” Solid State Drive $158.57 @ B&H
Video Card NVIDIA GeForce GTX 1080 8GB Founders Edition Video Card $699.99 @ Best Buy
Case Rosewill NIGHTHAWK 117 ATX Full Tower Case $89.99 @ Newegg
Power Supply Corsair RMx 850W 80+ Gold Certified Fully-Modular ATX Power Supply $99.99 @ Newegg
Optical Drive Asus DRW-24F1ST DVD/CD Writer $16.98 @ Newegg
Wireless Network Adapter TP-Link Archer T6E AC1300 PCI-Express x1 802.11a/b/g/n Wi-Fi Adapter $49.89 @ OutletPC
  Total (before mail-in rebates) $1672.25
  Generated by PCPartPicker 2016-09-30 23:54 EDT-0400  

GPU

The 3 main use-cases above imply that the PC should be built around a high-end GPU card (or two, three or four). And because of deep learning, this card(s) needs to be an NVIDIA card. The card I chose is GTX 1080 Founders Edition, which at the time of this writing retails for $699.
GTX1080
This is actually a gaming card, but unless you plan doing something exotic, you don’t need Tesla card (which has much better double precision plus some other features). There is actually now a better card to chose - Titan X Pascal, but it is even more expensive ($1,200) and is currently much harder to get. In general, while choosing a card for deep learning, you want to maximize number of CUDA cores and amount of GPU memory. GTX 1080 is built on Pascal architecture (as of Sep 2016, the latest from Nvidia), has 2,560 CUDA cores and 8 GB of GPU RAM. The power consumption is 180W - something to keep in mind while choosing PSU.

Why GPUs are so important for deep learning?
GPUs’ evolution have been driven by an always increasing demands of computer graphic applications, especially games. Computer graphics is based on floating point linear algebra, which means that GPUs are extreamly good at matrix operations. Training deep neural networks is typically expressed as a huge computational graphs (like the one below, taken from Tensorflow’s website), where nodes are operations and edges represent data flows.
Those nodes are typically matrix operations - either element-wise or linear algebra operations. Tensorflow data-flow graph
To simplify, if your hardware can multiply matrices really fast - it is probably great for deep learning!

CPU

For Deep Learning, CPU is not that important, the rule of thumb is to have two or more threads (or cores) per GPU in your system. It is, however, important for Gaming and VR/AR, so I chose one of the cheaper Skylake models - Intel Core i5 6600K 3.50 GHz Quad Core. As it’s name, implies it has 4 cores and is above system requirements for Oculus and HTC Vive. This processor uses LGA 1151 socket - which is therefore the requirement for the motherboard to chose.

Motherboard

My GPU and CPU choices so far require it to be LGA 1151 motherboard on Z170 chipset with several PCIe 3.0 slots. I need several slots because I plan to add one or more GPU cards later. Also, I wanted it to support SLI because GTX 1080 could be linked together with SLI. So, the board I got is:
MSI Z170A SLI ATX LGA1151 Motherboard

RAM

The more RAM you have, the better. For deep learning, you should really have more than your total GPU RAM (combined RAM on all your GPUs) because typically you’d stream data from RAM to GPU memory (even though HDD to GPU RAM is also possible). I’ve chosen 32 GB of DDR4 Corsair LPX RAM in 2 sticks. My motherboard has 4 RAM slots, so potentially I can increase RAM to 64 GB.

Power Supply

This is actually quite important because high end GPUs are power hungry. GTX 1080 requires 180 W of power and recommended PSU is 500 W or greater. Since I plan on adding second card later (and just in case), I opted for 850 W power supply: Corsair RMx Series, RM850x

System Case

This need to be ATX and to easily accomodate additions and future upgrades I chose full tower instead of medium tower. The one I’ve got is: Rosewill Gaming ATX Full Tower Computer Case with Window NIGHTHAWK 117

HDD

It is important to have SSD (solid state drive) disk instead of old fashioned spinning disk - it will just make system run faster. I’ve started with Samsung 850 EVO - 500GB - 2.5-Inch SATA III with intention of adding more later

Other Stuff

  • Cooling. The CPU I’ve got comes without cooler, so I had to purchase one myself. I don’t plan on overclocking much (maybe a little, later) so liquid coller would have been an overkill. The one I’ve got is Cooler Master Hyper 212 EVO - CPU Cooler with 120mm PWM Fan
  • DVD drive. Just got this: ASUS DRW-24F1ST - DVD SATA SUPERMULTI Burner
  • WiFi Card. I have WiFi at home and running LAN cable to the place where my PC sits would be a hassle, so I needed a good WiFi card. The one I’ve got: TP-Link Archer T6E Dual Band Wireless PCI Express Adapter, 2.4Ghz 400Mbps + 5Ghz 867Mbps It started working without any issues on Ubunutu 16 and Windows 10.

Finished Build

Final Build