随着电脑硬件的性能提升、价格下降,搭建个人用深度学习工作站的支出越来越低,需求也会越来越大。因此从今年开始,每年的 5、10 月份均会发布最新的深度学习工作站的配置指南。
随着 NVIDIA 的新一代 Ampere 架构的 GeFore 30 系列显卡的发布,在算力得到了极大提升的同时价格也大幅下降,花费不到 $1000 搭建一台性能强大的深度学习工作站已经成为了可能。适逢 AMD 的新一代 Ryzen 处理器也在 10 月 8 日发布,硬件性能的提升毫无疑问会再次推动深度学习的热潮。
我最近准备搭建自己的第一台深度学习工作站,本文(单 GPU 工作站)与下一篇文章(多 GPU 工作站)正是基于本人最近的研究。水平有限,没有实践,欢迎指正。
本文主要参考了以下文章:
- Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning
- A Full Hardware Guide to Deep Learning
- Deep Learning Hardware Deep Dive – RTX 3090, RTX 3080, and RTX 3070
工作站与个人游戏电脑不同,在配置上有一些需要改变的地方。对于深度学习来说,目前的唯一选择是 NVIDIA 的 GPU 产品;又因为本文的主题是个人深度学习工作站,所以本文仅涉及 NVIDIA 的 GeForce 系列消费级显卡(Tesla 以及 Quadro 系列都已经成为历史,统一到 GeForce 系列下)。本文首先来讨论深度学习工作站 must have 的部分,然后是 nice to have 的部分,再后是 don’t matter much 的部分,最后是 try to avoid 的部分。
Must Have
这部分不够就不行,但是超过也完全没用。
显存
通常来说,对显存的要求如下:
- 研究 SOTA 模型:>= 11GB
- 一般的研究:8GB
- Kaggle 及其它竞赛:4 - 8GB
- 公司业务:8GB 用于部署及原型测试,>= 11GB 用于训练
对应到 RTX 30xx 系列显卡来说,可将 3060(6GB 显存),3060 Ti/3070 (8GB 显存)/3080(10GB 显存),3070 Super(16GB 显存)/3080 Super(20GB 显存)/3090(24GB 显存)对号入座。
注: 3070 显卡将于 10 月 29 日上市,3060 Ti/2070 Super/3080 Super 预计在今年底前会陆续发布,3060 预计在明年年初发布。
内存
对于最大需要多少内存难以下定论,而 Tim Dettmers 说“额外的内存对特征工程非常有帮助”。综上,本人的推荐是 内存容量 = 显存容量 + 6 ~ 8GB。
电源
没人想在训练一半的时候因为供电不足而电脑重启,因此要预留足够的电源供电。主机内耗电的部分主要为 GPU、CPU 和主板上的其它部件。通过研究 GPU 与 CPU 的耗电数据,我发现 GPU 的峰值功耗要超过 TDP 100w 左右,而 8 核以下的 CPU 的峰值功耗大概可以归纳为
核心数量 | 峰值功耗(w) |
---|---|
4 | 100 |
6 | 150 |
8 | 200 |
主板的功耗(内存和硬盘之类的总和)大概为 80w,故电源功率的最低要求为:CPU 峰值功耗 + GPU 峰值功耗 + 80。因为 CPU 和 GPU 很少同时满负荷工作,因此不需要考虑冗余电源。比如 RTX 3080 的 TDP 为 320w,故一台 Ryzen 5 3600 与 一张 RTX 3080 的工作站需要一个额定功率最少为 150 + 320 + 100 + 80 = 650w 的电源。
另外不像游戏主机在不运行的时候关闭,工作站一般是 7 * 24 小时开机的,所以电源的转换效率也很重要。以下为 80 Plus 认证在 115V 电压下 100% 负载时的转换效率表:
认证等级 | 利用率 |
---|---|
White | 80% |
Bronze | 82% |
Silver | 85% |
Gold | 87% |
Platinum | 89% |
Titanium | 90% |
一般来说,功耗在 600w 以下 Bronze 就可以了,600w ~ 1000w 之间推荐 Gold,1000w 以上推荐 Platinum 或 Titanium。
Nice to Have
以上的因素决定了模型能不能训练,下面的因素决定了训练模型的速度和操作者的体验。
Tensor Core
Tensor Core 可以极大地加快矩阵乘法,深度学习优先使用 Tensor Core 进行训练。由于 RTX 架构的 Tensor Core 可以以半精度(16bit)进行训练,显存需求减半,所以相比 GTX 显卡在同样的显存下可以训练大一倍的模型,因此除非预算极度有限,应该优先考虑 RTX 20/30 系列显卡。一张显卡有多少 Tensor Core 决定了这张显卡的算力,而 Tensor FLOPS 则量化了显卡的算力。
芯片型号 | Tensor Core | Tensor FLOPS (万亿) | 显存(GB) | TDP (W) | MSRP (USD) |
---|---|---|---|---|---|
2060 | 240 | 51.6 | 6 | 160 | 349 |
2060 super | 272 | 57.4 | 8 | 175 | 399 |
2070 super | 320 | 72.5 | 8 | 215 | 499 |
2080 super | 384 | 89.2 | 8 | 250 | 699 |
2080 Ti | 544 | 107.6 | 11 | 250 | 999 |
Titan RTX | 576 | 130.5 | 24 | 280 | 2499 |
3070 | 184 | 163 | 8 | 220 | 499 |
3080 | 272 | 238 | 10 | 320 | 699 |
3090 | 328 | 285 | 24 | 350 | 1499 |
虽然 30 系列的 Tensor Core 数量比 20 系列少, 但官方称 30 系列的 Tensor Core 的性能是 20 系列的 4 倍,所以(如果官方宣传为真的话)3070 的实际算力要强于 2080 Ti。3060 Ti 尚未被官方确认,但估计其算力应该与 2080 Ti 相当。
购买建议:消息说 3060 Ti 的官方指导价格是 $349。在 3060 Ti 存在的前提下 3070 是比较尴尬的存在,比上不足,比下有余。而 20 系列显卡毫无性价比,除非预算有限买二手 2060/2060 Super,否则不推荐。我的购买建议是:
- 预算严重不足的入门菜鸟:二手 1660 Super
- 预算不足的入门菜鸟:二手 2060/2060 Super/2070
- 有一点预算的入门菜鸟:3060 Ti
- 中阶使用者:3070 Super/3080 Super
- 高阶使用者:3090
现在避免购买任何 2080/2080 Super/2080 Ti 显卡(包括二手显卡)。
外设
除了 GPU,1 到 2 台额外的显示器和一把趁手的键盘可能是最有价值的投资。不过这部分比较主观,如何选择由各位读者考虑。
购买建议:
- 购买带翻转屏功能的显示器;我现在用的两台显示器中有一台 Dell 2718Q。
- 购买高分辨率的显示器;我现在用的是两台 27” 4K 显示器。
- 选择机械键盘。轴体根据自己的喜好选择,我现在用的是茶轴。
Don’t Matter Much
这部分对性能提升非常有限,不如节省下来减少开支。
CPU 的核心数量和主频
在深度学习中,CPU 的主要工作是数据预处理。有两种策略:
Loop:
- Load mini-batch
- Preprocessing mini-batch
- Train on mini-batch
或者
- Preprocess data
- Loop:
- Load preprocessed mini-batch
- Train on mini-batch
对于第一种策略,一颗强大的 CPU 会显著提高性能,推荐为 GPU 配备至少 4 个 CPU 线程;而第二种策略通常不需要非常好的 CPU,2 个线程足够。所以对于单 GPU 工作站而言,最低端的 Core i3 10100F 或者 Ryzen 3 3100 已经足够(两者都是 4 核心 8 线程),6 核以上完全没有必要。
而对于 CPU 频率而言,频率的影响非常有限(因为 CPU 在深度学习中不起主导作用),主频从 1.1GHz 提升到 3.6GHz 的综合性能提升在 4% ~ 8% 之间。
PCI-E 等级 & 通道数
PCI-E(Peripheral Component Interconnect Express)总线在 2003 年推出,取代了曾经的 PCI 和 AGP 总线,目前在使用的标准为 PCI-E 3.0 和 PCI-E 4.0。PCI-E 总线是一种串行总线,单个插槽上可以有 1、2、4、8、16 条通道,带宽如下:
PCI-E 版本 | x1 | x2 | x4 | x8 | x16 |
---|---|---|---|---|---|
3.0 | 1.97GB/s | 7.88GB/s | 15.75GB/s | 31.5GB/s | |
4.0 | 3.98GB/s | 15.75GB/s | 31.51GB/s | 63GB/s |
可以看到,PCI-E 4.0 的带宽是 PCI-E 3.0 的两倍,因为 AMD 的 X570 和 B550 芯片组支持 PCI-E 4.0,而 Intel 要到明年上半年的 11 代 Core 才支持,所以使用 Ryzen 3 代以后的 CPU 和 500 系列主板会有带宽的优势。
通常显卡占用 8 或 16 条 PCI-E 通道,而一块 NVME M.2 存储器占用 4 条 PCI-E 通道。虽然显卡接收与传递数据经过 PCI-E 总线,然而在仅有 1 张显卡的时候,PCI-E 总线的带宽与级别对显卡性能的影响并不大,PCI-E 的带宽对文件的读取/写入性能的影响更大一点。不过在一个 pipeline 里面数据一般仅仅读取/写入一次,因此 PCI-E 4.0 或者 3.0 对性能影响有限。
内存频率与延迟
同上面一条,因为数据在 GPU 与 CPU 之间的交互次数有限,故速度更快、延迟更低的内存对性能提升有限。
散热
对于一台仅有 1 张显卡的工作站而言,散热不是需要考虑的问题。
Try to Avoid
超频
对于长时间运行的工作站来说,超频会减少原件的寿命,降低系统的稳定性,增加功耗,因此超频是大忌。不要购买任何出厂预超频( Overclock 或 OC 版)的显卡或自己超频。
灯光效果
不是说不能有光效,但是工作站是用来干活的,不是用来欣赏的,而且工作站一般放在不起眼的地方,有光效也看不见。看得见的光效除了分散注意力以外还耗费额外的电能(还费钱),实在没有意义。