本文作者详细描述了自己组装深度学习服务器的过程,从 CPU、GPU、主板、电源、机箱等的选取到部件的安装,再到服务器的设置,可谓面面俱到。作者指出,组装者首先要弄清自己的需求,然后根据预算做出合理的选择。
我刚开始学习 fast.ai 课程的第一部分——“Practical Deep Learning for Coders”,我想搭建自己的服务器来训练模型,作为使用 AWS p2 和存储的升级。我将会使用更大的数据集,并且我不希望在训练模型时因为缺乏足够的处理能力而等待数小时,因此构建自己的 DL rig 服务器对我来说是一个不错的选择,而且从长远来看,它将为我节省大量的时间和金钱,而且可以积累组装服务器的良好经验。
组装
列出部件清单
在准备部件之前,你要弄清楚自己到底想从机器中得到什么。个人而言,我想获得以下改进:
比 Amazon p2 更加强大
容纳额外 GPU、RAM、存储及定制液体冷却的空间
可以用很久的硬件
预算控制在 3000 美元左右
我用 pcpartpicker。com来细化各个部件,因为它可以将对比和组装其它部件变得非常简单,而且还具备很不错的部件兼容性检查器。我将详细解释选择每个部件的原因以及它们如何与整个系统协同工作。
GPU: GTX 1080 TI Hybrid
因为你要使用显卡来训练模型,所以这是组装过程中最重要的一部分,因此,GPU 越强大,你处理大型数据集的速度就越快。GPU 内存越大,处理能力也就越强(如:训练速度更快,批尺寸更大……)。我为自己的服务器选了两块这种显卡,因为我在预算里为它们预留了空间,这样我就能用其中一块显卡训练模型,让另一个用户在第二块卡上训练其模型。你可以根据自己的预算缩减 GPU 内存(1070、1060 等),防止与其它部件争抢预算。Hybrid 1080 GPU 也不错,因为除了大多数 GPU 具有的正常风扇冷却之外,它还预装了 aio 水冷系统。1080 TI 在满负载运行时会过热,因此,在训练模型时,良好的冷却系统对于延长显卡寿命并保持其性能至关重要。关于显卡选择的更多细节,请参见 ,该文帮助我真正了解了如何选择适合深度学习环境的显卡。
CPU: AMD Threadripper 1900x
虽然你用显卡训练神经网络,但 CPU 依然很重要,因为你要用它来进行数据准备等操作,因此那些多核 CPU 将有助于加快速度。我用的是“线程撕裂者”Treadripper,因为这是市面上非常新的一款多核 CPU(ThreadRipper 2 代有 32 个内核!),而且比因特尔价格低得多。1900x 是去年发布的基础版 TR,它只有 8 个内核,不过我对这台服务器的整体目标是保持它的可升级性。
需要注意的一点是,在选择 CPU 时,要确保有 8 或 16 个 pcie 插槽供显卡使用,这样才能保证它们在低负载下发挥最好的性能,否则就有堵塞系统的风险。在高端 CPU 上,如果你的服务器中有 4 个显卡,那么你就有足够的 pcie 插槽。
主板:MSI X399 SLI Plus
选择这块主板是因为它是一块完整的 ATX 板,可容纳 4 个 GPU,RAM 最多可达 128GB。正如我前面所说,这个服务器的主要目标之一是保持它可升级。
内存:32GB Corsair Vengeance LPX DDR4 (2 x 16GB)
内存越大,处理大型数据集就越容易。我的下一个升级计划是再添加两个 16GB RAM 内存条,这也是我没有安装四通道内存(4 个 8GB 内存条)的原因,尽管它会提高我的服务器的性能。
存储:256GB Samsung SSD & 2TB HDD
我把 Ubuntu、我的所有库、我在 SSD 上正在使用的数据集以及手里的其它所有数据都存在 2TB 的机械硬盘上。
冷却器:Corsair H100i v2 液体冷却器
“线程撕裂者”没有备用冷却器(如果你有 30 美元的余款,至少应该买一个便宜的二手冷却器),所以我想要一个可以全天候使用的、便宜又容易维护的冷却器。这款集各种优点于一身的冷却器非常容易安装,而且非常可靠(在数十万台机组中,可能只有一两台发生冷却液泄漏)、安静。
电源:EVGA SuperNOVA 1000w 80 + Gold CerTIfied
最好有一个功率超过技术要求的 PSU。PCPartpicker 的功率计算器能够大致算出你需要多大的功率(我的服务器是 824w),然而它经常在数量上出错,因此最好进行安全操作,以防你的计算机无法打开。“Gold CerTIfied”只是指 PSU 的效率(浪费了多少功率作为热量)。
机箱:Corsair 760T Full Tower
我选择这个机箱是因为它的价格和内部空间大小。虽然它并不能提高你的模型训练速度,但是透明的侧面板和红色的 LED 确实让你看起来更酷。