0%

[工作站] 2020 年 10 月的单 GPU 深度学习工作站配置指南

随着电脑硬件的性能提升、价格下降,搭建个人用深度学习工作站的支出越来越低,需求也会越来越大。因此从今年开始,每年的 5、10 月份均会发布最新的深度学习工作站的配置指南。


随着 NVIDIA 的新一代 Ampere 架构的 GeFore 30 系列显卡的发布,在算力得到了极大提升的同时价格也大幅下降,花费不到 $1000 搭建一台性能强大的深度学习工作站已经成为了可能。适逢 AMD 的新一代 Ryzen 处理器也在 10 月 8 日发布,硬件性能的提升毫无疑问会再次推动深度学习的热潮。

我最近准备搭建自己的第一台深度学习工作站,本文(单 GPU 工作站)与下一篇文章(多 GPU 工作站)正是基于本人最近的研究。水平有限,没有实践,欢迎指正。

本文主要参考了以下文章:


工作站与个人游戏电脑不同,在配置上有一些需要改变的地方。对于深度学习来说,目前的唯一选择是 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 版)的显卡或自己超频。

灯光效果

不是说不能有光效,但是工作站是用来干活的,不是用来欣赏的,而且工作站一般放在不起眼的地方,有光效也看不见。看得见的光效除了分散注意力以外还耗费额外的电能(还费钱),实在没有意义。

欢迎关注我的其它发布渠道