2019年4月16日更新:可以在这个帖子找到一个更好的配置。
2019年3月21日更新:亚马逊的链接添加到所有零部件。新增鼓风机式GPU,更快/更便宜的SSD M.2,和其他选项。
视频地址: https://youtu.be/jLDOibBz5ro
我在麻省理工学院的量子计算实验室和数字学习实验室为研究人员组装了一台多GPU深度学习工作站。当在网上了解如何组装时,找不到足够详细的资料来指导如何选择配件。
我发现可以从网上购买Lambda GPU 工作站之类的整机。唯一的问题:它们的价格为$ 12,500。对于顶级前沿的深度学习研究来说,这是一台很棒的机器,但是如果您预算有限,那就有点为难。这就是为什么我要用6200美元组装自己的版本的原因 (具有相似或更好的配件) 。为了帮助其他研究人员,我将共享每个配件的详细信息,以便您也可以组装一台。
即使您正在组装较小的深度学习机器或第一台计算机,您也可能会发现本文中的配件说明很有用。在整个过程中,我都提供了一些可以进一步降低成本的例子。
最后,我提供了该机器相对于Google Compute Engine(GCE)深度学习虚拟机(VM)进行了时间和成本对比。我在ImageNet使用PyTorch的ResNet50训练进行基准测试。
目录
完美的组装?
配件清单
配件注意事项
显卡
SSD(固态驱动器)
主板
CPU
机箱
机械硬盘
内存
PSU(电源)
制冷系统
和Google Compute Engine对比测试
GCE深度学习虚拟机 (VM) 规格
ImageNet训练时间基准
GCE每轮的费用
与Lambda的4-GPU工作站进行比较
杂项
没有完美的组装,因为每个人的需求都不同。即使有,随着新硬件的发布,完美的组装也在不断变化。这篇文章提供了一个不错的配置,如果在阅读本文时发现有需要改进的,请在下面评论!
这是我的配置单。
我通过Newegg在线订购了了所有产品,你也可以其他渠道购买(例如Amazon)。如果您附近有MicroCenter实体店,那么在实体商店购买时,它们的CPU价格通常很便宜。
深度学习工作站的所有配件。
以下是每个配件以及我支付的价格(2019年1月31日):
EVGA GeForce RTX 2080 Ti, $ 3570(每个$ 1190)
更新:为避免过热,我现在使用以下鼓风机式GPU:
1. ASUS GeForce RTX 2080 Ti 11G Turbo Edition GD, $ 1209(03/21/2019)
2. 技嘉GV -N208TTURBO-11GC RTX 2080 Ti Turbo 11GB, $ 1399(03/21/2019)
3. ZOTAC游戏GeForce RTX 2080 Ti Blower 11GB, $ 1299(03/21/2019)
英特尔酷睿i9-9820X Skylake X 10核3.3Ghz, 850美元
华硕WS X299 SAGE LGA 2066 Intel X299, $ 492.26
Corsair Carbide Series Air 540 ATX机箱, $ 130
其他选项:CORSAIR CARBIDE AIR 740 ATX机箱, $ 149(03/21/2019)
英特尔660p系列M.2 2280 2TB PCI-Express, 280美元
更新:在最近的版本中,我使用以下选项(速度提高2倍,存储减半,价格相近):
1. HP EX950 M.2 1TB PCIe NVMe NAND SSD, 199美元(03/21/2019)
2. HP EX920 M.2 1TB PCIe NVMe NAND SSD, $ 168(03/21/2019)
3. 三星970 EVO 1TB-NVMe PCIe M.2 SSD, $ 250(03/21/2019)
希捷BarraCuda ST3000DM008 3TB 7200 RPM, 85美元
8支CORSAIR Vengeance LPX 16GB, $ 740(每支$ 185)
季节性PRIME 1300W 80+金牌电源, 240美元
EVGA SuperNOVA 1600W P2, $ 347
更新:正在使用(更便宜)Rosewill HERCULES 1600W黄金PSU, $ 209(03/21/19)
警告:在分布式ImageNet / ResNet50基准测试中, 1300W PSU会导致重启动。其他人也遇到过这个问题。增加到1600W后,该问题就解决了。
海盗船Hydro Series H100i PRO静音版, 110美元
通过Newegg的企业帐户享受280美元的折扣并免税后,所有配件的总成本为6200美元(PSU升级费用为+107美元)。
完整的深度学习工作站。
选择GPU,RAM,CPU和主板等配件时,要牢记三个目标:
下面,我列出了组装中的每个配件以及每个配件的注意事项。列出配件的顺序是它们对训练深度学习模型的性能影响。
GPU是任何深度学习机器中最重要的配件。它也是最贵的。应该首先确定要使用哪个GPU:配置中的所有其他内容都将取决于此。有一些很棒的博客文章,介绍了如何根据需要选择合适的GPU。
假设您需要高性能的GPU,我建议您别理营销噱头,只需购买RTX 2080 Ti即可。如果您想进行自己的研究并选择一款物有所值的 GPU,请查看videocardbenchmark.net并选择价格范围内性能最高的GPU。除非您想支付2500美元以上的价格,否则RTX 2080 Ti是显而易见的选择。如果要降低30%的性能,您可以购买更便宜的RTX 2080或更早的GTX 1080 Ti。无论选择哪种GPU,我都建议购买具有至少11GB内存的GPU,以进行最新的深度学习。这是RTX 2080 Ti的内存量。
购买RTX 2080 Ti时,您会发现有成千上万的品牌:EVGA,技嘉,华硕,MSI…这些被称为第三方品牌GPU。您也可以直接从Nvidia 购买Nvidia 标准卡。通常,如果要获得最佳性能,请避免购买标准卡。像EVGA这样的公司会为GPU创建定制案例,以优化性能,有时还会使GPU超频。标准卡是最早的设计,而并非总是最好的尝试。第三方GPU通常具有1-3个风扇,据推测,更多的风扇可以提高性能。其中有一些只是营销噱头,一般有两个风扇就可以。这里的主要信息是:购买EVGA,技嘉,华硕或MSI等第三方品牌GPU。
请注意,在第三方品牌的可选项中,您可能会看到不同的价格。超频的GPU往往会花费更多,但通常会有其他牺牲,实际上并不能带来更好的性能。所以通常买便宜的即可。
一些用户抱怨RTX 2080 TI的过热问题。我在组装中仅包含三个GPU的原因是为了增加散热量。如果没有问题,我将添加第四个RTX 2080 TI GPU。
在这个版本我用开放式风扇的GPU,只是因为他们成本低。鼓风机式的GPU直接把热气从机箱侧面排出, 可能会有更好的性能。因为主板的原因,GPU紧紧挨在一起,挡住了开放式GPU风扇。如果您购买鼓风机式GPU,风扇可以将气体从机箱侧面排出。您可以从此视频了解更多有关这两种风扇差别的信息。
从磁盘数据传输到你的GPU是深度学习的主要瓶颈,使用M.2 SSD可以大大减少训练和测试时间。M.2 SSD就是解决方案。最贵的SSD具有3500 MB / s的写入速度,而标准的SSD 是500 MB /秒。
在我的组装中,我购买了便宜的m.2 SSD,其写入速度约为1800 mb / s,但具有2TB的高容量。您会发现买速度快的256G的M.2 SSD也可以。这是以更低的成本获得更好性能的好方法。唯一需要注意的是,要确保M.2 SSD能放得下所有的训练数据。
主板的购买可能会很棘手,因为有很多选择,而且不清楚为什么某些主板的价格要比其他主板高得多。对于深度学习,主板的最重要的方面是支持PCI-E通道的数量。在我的配置里,我的主板有44条PCI-E通道。这意味着对于三个GPU的方案(每个都需要16个通道),可以在2个GPU上用16个通道, 在第三个GPU上用8个通道(用掉44个通道中的40个)。大多数的基准测试显示, 如果用8通道替代16通道运行,GPU的性能差异微不足道,但是也许将来会更大的差异。至少确保您的主板能为每个GPU提供所需的最低量的PCI-E通道。因此,对于3 个RTX 2080ti GPU,主板至少需要24条PCI-E通道。
另一个考虑: 要x299(对于英特尔CPU)还是x399(对于AMD的CPU)。英特尔的CPU线程速度较快,但AMD的CPU往往比英特尔的便宜 (就每个线程的价格而言) 。我选择既要速度也要数量(20线程和处理速度快)的Intel处理器,配一个x299主板。
更可靠(更昂贵)的主板通常被称为工作站主板。可靠性的提高是否值得付出代价尚有争议。我选择在我的组装中使用工作站主板,但是如果您想购买更便宜的主板,请查看SUPERMICRO x299主板,该主板可以满足我的组装的所有需求,但价格要低100美元。
通过考虑以下两个问题,根据您的计算需求选择一个CPU:
如果(1)为“是”,但(2)为“否”,则可以使用32线程AMD Ryzen Threadripper 2950X降低成本。如果对(2)的回答为“是”,则您可能需要Intel CPU。
对于Intel CPU,您需要用于多GPU深度学习的核心Intel X系列CPU。x299主板只能使用X系列CPU,并且您需要x299主板具有足够的PCI-E通道来支持多个GPU。如果仅使用两个GPU,则可以使用便宜的300系列Intel CPU和LGA 1151主板(而不是x299)来降低主板+ CPU的成本。这将在16个PCI通道上运行一个GPU,在8个通道上运行另一个GPU(大多数LGA 1151主板具有24个PCI-E通道,这一点需要再确认下)。
对于多GPU工作站,气流和冷却就是一切。选择适合您主板的机箱。大多数带有多个GPU的主板都可能是ATX,因此您需要一个适合ATX主板的机箱。如果您不确定要购买哪种机箱,Carbide Series™Air 540高气流ATX立方体机箱是一个不错的选择。
如果m.2 SSD太小而无法满足持久存储需求,则需要购买机械硬盘。它们相当便宜,速度为5400 RPM(较慢)和7200 RPM(较快)。RPM代表每分钟旋转多少次,这些磁盘实际上在计算机内部旋转,这意味着它们可能很吵。因为它们的成本很低,所以您可能需要7200 RPM磁盘。
内存的主要考虑因素是数量,物理大小和延迟。在我的版本中,我有128 GB的RAM,但是您可以根据数据集的大小使用64GB或32GB的以降低成本。一般而言,我建议您购买128 GB的(如果可以负担得起的话),以便可以将整个数据集加载到内存中,可避免在深度学习的每轮训练时卡在硬盘<> 内存瓶颈上。
对于多GPU配置,请确保购买外观小的内存(有较小的外壳)。您可以将外观视为内存条的高度。您会在主板上安装很多东西,有时内存的外壳太大的话会影响其他配件的安装。Corsair Vengeance是一个不错的小巧RAM。请注意,对于台式机内存调的长度,通常需要288针内存条。
如果有空着的内存插槽,请注意查看主板文档。使用正确的内存插槽很重要!主板和主板文档通常会给出,基于内存条数量的插槽使用方案。
您可能会看到黄金 PSU与铂金 PSU。这是指PSU的效能(不是金属),其中铂>金>银>青铜>基本与PSU的效率有关。例如,对于相同的计算量,青铜PSU从墙上插座汲取的电能比白金PSU多。如果需要节约电费(并且环保),请考虑购买铂金或金级PSU。
对于此版本,我最初购买了Seasonal PRIME 1300W PSU,但是当我在进行分布式PyTorch ImageNet / ResNet50训练,最大化了所有GPU时,我遇到了自动重启的问题。我换了EVGA SuperNOVA 1600 P2后,该问题解决了。请注意,通过$ sudo nvidia-smi -pl 180命令可以将GPU功率从250W降低到180W ,能够使用1300W PSU工作。这可以工作,但是我建议使用1600W PSU,因为这会限制GPU速度。
从机箱风扇到全系统水冷,有许多冷却选项。通常,如果您的箱子较大且电缆管理正确,则不需要花哨的东西。在我的组装中,CPU没有配备散热器,我使用的Corsair h100i在深度学习设备中是相当标准的。较便宜的选择可能是Noctua NH-U9S CPU散热风扇。我之所以没有购买该风扇,是因为它很大,我不确定它是否会阻塞我的某些RAM插槽。如果仅使用32 GB RAM,则该散热器可以作为更便宜的选择。
我将该机器与Google Compute Engine(GCE)深度学习虚拟机(VM)进行了对比测试。这些是预先配置的VM,据称专门针对深度学习进行了优化。使用GCE深度学习虚拟机专用的CUDA版本和针对其硬件体系结构优化过的驱动程序。GCE VM没有Nvidia RTX 2080 Ti GPU的选项,因此我在VM中使用Tesla K40s配置。根据基准测试任务,Nvidia RTX 2080 Ti的性能要比GPU Tesla K40 好2到4倍。因此,为了公平起见,我用该配置上的一块 RTX 2080 Ti与GCE VM上的四块 Tesla K40进行对比。
为了进行基准测试,我使用了PyTorch的Imagenet分布式示例。我下载了ImageNet 2012训练和验证集,并在我的机器和GCE深度学习VM上运行了以下代码:
python examples/imagenet/main.py -a resnet18 --lr 0.1 --dist-url 'tcp://127.0.0.1:FREEPORT' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0 "/location/where/I/stored/imagenet/"
对于我创建的虚拟机,规格为:
比较一轮的时间:
这些数据是50轮训练的平均值。运行了相同(以上)的命令。两台计算机上均未运行其他进程。
对于我使用的GCE体系结构,在充分认识到这不是最具成本效益的配置的情况下,训练费用为:
因此,仅针对GPU训练ImageNet的100轮的费用约为1277美元。对于整个虚拟机,每小时的成本约为21美元。
我所描述的组装旨在优化成本/性能的权衡。如果您想更精确地和Lambda的4-GPU工作站配置对比,则可以查看Lambda的首席执行官Stephen Balaban(真的非常赞) 在Reddit上分享的改动建议:
经过这些调整,Lambda工作站的总成本约为7607美元:比4-GPU Lambda装置低约4500美元。
我使用的操作系统是Ubuntu Server 18.04 LTS。我正在使用带有TensorFlow(从源代码安装)和PyTorch的Cuda 10.1。当我以最大负载长时间使用所有三个GPU时,由于最顶层GPU发生热节流(热保护),我注意到性能下降了5%-20%。这可能是由于双风扇GPU制冷性能有问题。我建议使用鼓风机式GPU,以避免热节流。
非常感谢Anish Athayle,Xander Breg,对Reddit的评论以及Newegg客户服务(例如Derek Liu)的指导。
免责声明:您发现错误了吗?我可能搞错了很多地方。请在下面评论,以便我们可以改进!