到年底了,又到了各大高校开始动手采购GPU服务器的时候到了,最近不少学生在QQ上请我们帮忙看看配置
对此,我们觉得还是有必要写个文章来说一下如何配置一台GPU服务器。
用途要清晰
在配置一台GPU服务器之前,你首先要明确一下: 我买这台GPU服务器到底要干什么?
你是做研究?还是做生产(比如你是要拿来运营GPU数据中心的)?
关于集群
做生产用的,就是搭建GPU数据中心,一般都是上集群,有专门的机房,这类用户一定需要机架服务器,GPU卡一定是用Tesla卡。如果你用机架服务器搭游戏卡,我只能呵呵,从这配置上就不专业好吧(挖矿的用户一定表示不服)。
既然是集群用,数据存储、Infiniband网络基本一个都不能少,经费充足,又希望得到NVIDIA原厂技术支持,那么显然是采购NVIDIA DGX系列服务器。目前一台DGX-1机架服务器价格在70万-90万之间(注意有分教育价格和非教育价格)。具体规格我不在这里说了,大家可以去NVIDIA官网搜索一下相关资料。
你的DGX集群规模越大,越能召唤NVIDIA工程师给你干活!(一般人我都不告诉)
采购DGX系列服务器需要向具备NVIDIA NPN资格的分销商咨询,比如浪潮、联强、宝德、思腾创新等。他们相对应的NVIDIA销售资源丰富一些。
如果预算不是那么多,那么我还是建议采购品牌服务器为主,并且是向有丰富集群建设经验的系统集成商采购,这样你的负担会小很多,我也经常在QQ 群里遇见采购个小集群,然后经销商只管按照用户列的配置卖,不帮你装环境,什么都不管,然后学生痛苦地配置集群环境。(弱弱吐槽一下一般经过学校招投标杀低价后,很多供应商都是只会按照配置卖,其它什么都不懂的)——基本上我建议向浪潮、惠普、Dell等有集群经验的供应商采购。采购之前要跟他们了解一下过去是否有集群搭建经验 ,尤其是环境配置,所以最好是把这一条放到招标文件里。
再也不需要为配置Tesla 深度学习服务器发愁了,NVIDIA早就为你准备好了...
一般来说高校研究单位买GPU服务器是用来研究学习用的。我们主要谈谈这一部分。
单精度or双精度?
这个问题也很重要!
一般来说做科学计算的用户对双精度(FP64)计算要求高,
对深度学习或者神经网络的用户来说对双精度计算要求不那么高,单精度(FP32)计算就可以了。
关于什么是单精度、双精度,可以看一下这个文章(科普 | 单精度、双精度、多精度和混合精度计算的区别是什么? )
如果你对双精度计算要求高的话,那么你就只能买Tesla卡了。目前市场上可以买到的具备双精度计算能力的Tesla卡就是Tesla V100和Tesla P100:
(注意现在销售的主要是32G显存的Tesla V100)
有哪些主流的科学计算是可以利用GPU加速?这一篇让你看明白!
NVIDIA Tesla V100在高性能应用中到底有多强?一文让你知道
【资料学习】我到底拿什么说服老板采购Tesla V100!
Q:预算够买Tesla卡么?
经常遇到老师问能推荐一款2万以内的支持双精度的Tesla卡么?
——还真的没有!32GB Tesla V100 行货的市场价格在6万左右,Tesla P100也要小3万.
Q:Tesla Tesla K80如何?
有经销售说还囤了点Tesla K80,但是Kepler架构过于旧了,你没有办法享受最新的CUDA功能给你带来的各种好处,也不支持INT8/FP16,真的不建议搞研究的老师采购,况且这个卡已经退市很久了,质保售后也是问题。
另外,CUDA在逐渐淘汰老计算能力的卡,以前是1.x计算能力被淘汰了,2.x计算能力被淘汰了(Tesla C20系列),现在虽然K80是3.x计算能力,但想来继续被支持也不会太久了。诸位老师难道要想辛苦的课题成果,很快就面临老平台不能使用,必须针对新平台(7.x计算能力)升级迁移的痛苦吗?
如果只是因为预算的问题要消费降级,真是不值得。
但是注意了!如果你选择采购Tesla卡,就一定要用机架服务器!这是正确的打开方式!
关注我们公众号的很多用户已经被我教育得知道散热很重要!即使如此我们的QQ技术群还是三天两头地有人说在工作站上装Tesla卡,跑着跑着就蓝屏....
当然我也知道有人会说“我就是在工作站上装Tesla卡,把散热做好就没问题“——确实如此,前提条件下是你确实做好了散热。
好了,接下来说只需要单精度计算的用户!
恭喜你,你选择很多,Tesla卡,RTX游戏卡你都可以选择了。而且实际上RTX单精度计算能力还真是优于Tesla卡(希望NVIDIA销售不跟老黄投诉我)。
工作站还是机架也随你挑,只要你不嫌弃机架服务器吵,你也可以任性地放办公室里。
在这里也不得不说我发现了一个奇怪的现象,就是Tesla的用户总喜欢在工作站上装,而RTX游戏卡的用户却喜欢在机架服务器上装,还一装装8个...
机架服务器不是不能装RTX卡,但是还是一个散热问题。我们不推荐用户装这种:
NVIDIA双风扇GeForce RTX散热器破坏多GPU性能,是真的么?
要装就装这种Turbo版本,可以装在机架服务器上,价格可以先去参考一下某东商城:
看ASUS ESC4000G4如何轻松装进4片RTX2080ti
很多深度学习的用户很喜欢用RTX2080ti、Titan RTX 。
这类的图灵卡,我们还是需要对它们的特性有所了解,这样在我们写代码的时候才可以把他们的性能发挥到最大。
NVIDIA RTX2080ti不支持P2P Access,这是真的么?
深度学习GPU卡性能比拼:见证Titan RTX“钞能力”
原来你是这样的GPU卡|NVIDIA发布新一代Titan系列:Titan RTX
例如这些卡具有新一代的互联能力,卡间互相数据访问的速度非常快的。但是却并不是每个机器都会给你配上NVLink。所以需要上P2P Access高速互相访问的代码,你在写代码的时候,要去判断能否卡间互相访问成功的, 如果不能,往往都需去添加上fallback的备用路径代码的。
接下来我们开始具体分析一下配置
CPU该如何选择
目前我看到很多人的配置,尤其是科学计算的用户,
基本上都是配置双路CPU,而且CPU往往都是频率最高,核数最多,
然后还上最大的内存条,插满所有槽。
不在乎钱的话,显然这样配置好。
在乎钱的话,可以节省一点钱的。特别是CPU的钱。CPU提供的PCI-E通道数足够即可。没必要双路,4路配满,主频最高型号的。因为实际应使用中的主力处理都是GPU,可能比你的CPU在特定问题上高出1-2个数量级的性能。此时是否升级到顶配CPU已经基本无意义了。除非你想糊弄老板,自己减少在GPU上的工作量,此时则可以考虑顶配CPU上满,从而减少自己往GPU移植的工作量。
有用户说因为预算有限,我先配置一个双路服务器,就上一颗CPU,但以后有预算了,我再加一颗CPU。
—— 这样做没有什么问题,但需要注意PCI-E的带宽上的分配,和PCI-E的拓扑结构。
1.有的主板默认是2个CPU管下面各自的PCI-E槽的,如果只插入1个CPU的话,可能部分槽无法使用。(但是这种主板的总PCI-E带宽高)。
2. 有的主板是默认1个CPU管所有的槽的,另外一个CPU只负责应用的运算。这种则没有影响,但是可能总的PCI-E带宽低。
此外,因为双路CPU实际上是2个内存域,往往双路的总内存带宽高,特别是对于渣代码来说(不管是纯CPU应用,还是CPU GPU应用),可以有效的抵抗渣访存/传输,内存瓶颈所影响的性能。
我建议总是上2个CPU,哪怕是渣一点的(以后可以更换成更好的2个CPU,CPU跌价非常快的),这样总内存带宽更大,而总的PCI-E lanes数量也更高,很多场合有更好的性能。
内存条插满?
有个用户他准备插4片Tesla V100,内存是插满12根16GB的好,还是插6根32GB的好?
一般来说是是16G × 12好, 因为可以尽量利用所有的内存通道。只有6条的话,可能插不满2个U的所有通道的,而且插的时候还需要技巧,同样6条内存可能插出来高低不同的内存带宽的。但如果你插12条,16条,24条这种, 往往可以都插满, 此时无所谓插入的顺序的(例如是连续插入,还是隔着一条或者2条插入?), 都插满省心点。
只上少量的几条内存的话,因为你插的不好,有的通道利用了,有的内存通道没有利用,然后用户就会抱怨说,怎么同样配置的机器,我这个内存慢这么多。
我们曾经遇到一个用户,很大的图像,就插了单通道的内存,我们当时说,你们这算法卡访存的,你不妨先再添加插一个通道的内存,看看性能变化。
良心的厂商给尽量高性能的配置,无良的商家给你能点亮就不管了。
硬盘要做RAID么?
这要看主板的支持情况,和用户需要高性能,还是高稳定性了。 对于没有raid卡的主板,显然凉拌。而对于有raid卡的板子(不管是独立插卡还是集成的硬件卡), 则需要考虑raid卡支持的硬盘类型了。普通raid卡往往只支持SATA的硬盘和SSD。而好点的raid卡支持SAS的硬盘和SSD。
用户想高性能最好用后者,两块SSD做raid 0. 高可靠性我建议使用两块SAS机械硬盘。 此外,还应当考虑主板有无NVME硬盘的插卡地方。对io性能要求很高的,建议上nvme的ssd。
买的机器多的,或者一个小集群规模的,建议总是上专门的存储节点/网络(例如NAS或者SAN之类的),本地则可以用一两块SSD做数据临时目录之类的存储用途。其他数据全部放在存储节点上。
基本上就这些了