Difference between revisions of "GPU Build"

From edegan.com
Jump to navigation Jump to search
Line 5: Line 5:
 
}}
 
}}
  
 +
[https://pcpartpicker.com/list/ZQjKf8 PC Partpicker build] missing a lot of pieces
  
 
==Motherboard/CPU/Fan==
 
==Motherboard/CPU/Fan==

Revision as of 16:00, 23 October 2017


McNair Project
GPU Build
Project logo 02.png
Project Information
Project Title GPU Build
Owner Oliver Chang, Kyran Adams
Start Date
Deadline
Primary Billing
Notes
Has project status Active
Copyright © 2016 edegan.com. All Rights Reserved.


PC Partpicker build missing a lot of pieces

Motherboard/CPU/Fan

  • Not a huge deal, but used for data prep
  • Motherboards: ASUS Z10PE-D16 [1], Dual LGA 2011 R3, DDR4 - Up to 32GB RDIMM, 16 slots
  • Chips: Intel Haswell Xeon e5-2620v3, 6 core @ 2.4ghz, 6x256k level 1 cache, 15mb level 2 cache, socket LGA 2011-v3 [2]
  • CPU Fans: Intel Thermal Solution Cooling Fan for E5-2600 Processors BXSTS200C [3]

GPU

  1. "I quickly found that it is not only very difficult to parallelize neural networks on multiple GPUs efficiently, but also that the speedup was only mediocre for dense neural networks. Small neural networks could be parallelized rather efficiently using data parallelism, but larger neural networks... received almost no speedup."
  2. Possible other use of multiple GPUs: training multiple different models simultaneously, "very useful for researchers, who want try multiple versions of a new algorithm at the same time."
  3. This source recommends GTX 1080 Tis and does cost analysis of it
  4. If the network doesn't fit in the memory of one GPU (11 GB),
  1. Might want to get two graphics cards, one for development, one (crappy card) for operating system
  1. Intra-model parallelism: If a model has long, independent computation paths, then you can split the model across multiple GPUs and have each compute a part of it. This requires careful understanding of the model and the computational dependencies.
  2. Replicated training: Start up multiple copies of the model, train them, and then synchronize their learning (the gradients applied to their weights & biases).

TL;DR

Using multiple GPUs adds a lot of complexity. It has a few benefits: possible speed ups if the network can be split up (and is big enough), able to train multiple networks at once (either copies of the same network or modified networks), more memory for huge batches. Some frameworks have much better performance with multiple GPUs (pytorch, caffe 2) while others are catching up.

Todo: ask what software, dataset size, development approach

RAM

  • RAM: Crucial DDR4 RDIMM [4], 2133Mhz , Registered (buffered) and ECC, comes in packs of 4 x 32GB

PSU

  • PSUs: Corsair RM Series 850 Watt ATX/EPS 80PLUS Gold-Certified Power Supply - CP-9020056-NA RM850 [5]

Storage

  • M.2 Drives: Samsung 950 PRO -Series 512GB PCIe NVMe - M.2 Internal SSD 2-Inch MZ-V5P512BW [6]
  • Solid State Drives: Intel Solid-State Drive 750 Series SSDPEDMW400G4R5 PCI-Express 3.0 MLC - 400GB [7] or 800GB [8]
  • Regular Hard drives: WD Red 3TB NAS Hard Disk Drive [9] - 5400 RPM Class SATA 6 Gb/s 64MB Cache 3.5 Inch

Misc.

  • Cases: Rosewill 1.0 mm Thickness 4U Rackmount Server Chassis, Black Metal/Steel RSV-L4000[10]
  • DVDRW: Asus 24x DVD-RW Serial-ATA Internal OEM Optical Drive DRW-24B1ST [11]
  • Keyboard and Mouse: AmazonBasics Wired Keyboard and Wired Mouse Bundle Pack [12]
  • KVM Switch: IOGEAR 4-Port USB Cable KVM Switch GCS24U (Black) [13]


Other Builds