整个2015年都在买买买。。。买GPU。原因是想赶时髦去玩“深度学习”,但又口袋羞涩。于是整整一年都在各处比较,下单,拆,装,维护。为了省点钱煞费苦心,荒废了很多其他重要事情。所以想把经验教训写下来供各位DIY玩家参考。

科学计算,例如针对深度学习。

买什么样的GPU

单精度浮点运算(未来可能默认用更低的精度,例如16bit)。而其他因素,例如CPU速度,内存大小,通讯带宽,对目前大多数深度学习任务而言,只要过了某个合理的阈值不够成性能瓶颈就行。

浮点运算能力,价格与功耗。下面两个图比较了Nvidia Tesla,Geforce 700和900系列各卡的这三个参数(前两个参考了wikipedia,后一个是查询了amazon/newegg上的当前价格)。

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_浮点运算

整体来看浮点运算和功耗成正比。在价格上,如不考虑土豪用Tesla系列话,N厂在消费级别卡上是一分钱一分货。目前的购买建议是优先考虑Titan X,但如果不是特别需要其12GB内存的话,则考虑浮点运算性价比更好的980 TI(6GB 内存)。但如果嫌980 TI功耗比过高的话,则考虑980. 除非有特别的理由,不推荐980之下的卡了。因为达到同样的计算能力,使用更便宜的卡会增加机器数量,可能导致其他配套成本(例如CPU,电源,主板)和维护成本的增加。(下面将会有血与泪的教训)。

GPU更新换代快,不宜大规模采购超出现在需求的机器。例如Nvidia下一代号称3D内存可能会带来新的加速,通常认为性价比更高的AMD也将会推出新的编译器来更好支持科学计算。

选好了GPU后便可以配套其他了,与正常装机无异。但有两点需要额外考虑。一是供电。一块GPU很可能有200w,4卡则800w了,加上CPU内存,电源至少要个1kw才行。二是散热。GPU发热巨大,将多块GPU并排放会导致很严重的散热问题。此外,如果大量安装GPU机器,机房供电和散热也会是需要考虑。

折腾手记

下面我具体分享下15年折腾过的机器。按照时间顺序一一介绍:

GPU

CPU

内存

尺寸

单价 ($)

2 x GTX 980

2 x E5-2680 v2

128G

2U

12k

2 x GTX 970

i5-3437

32G

mid tower

$1.3k

4 x GTX 980

E5-1650

64G

super tower

6.5k

4 x GTX 750 TI

i7-4790

16G

full tower

1k

4 x K40

2 x E5-2670

64G

4U

free

4 x Titan X

2 x E5-2630 v3

128G

1U

11k

双GTX 980集群

此集群是土豪系统组买的。配了当时最好的CPU之一,双40GB网络,光是交换机就花了10W刀。买回来后半年没人拆封,但被alex意外发现了。。。(下图是alex拆了一台在看配置)

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_深度学习_02

于是我们厚脸皮的跑去说“来,我们帮你们装上,顺便出钱升级电源和买GPU,到时候共享给我们用一下就好了”。最后是alex从ebay上的某香港卖家买电源,dave去newegg买了卡。

这个集群是我个人最爱,安装简单,2天全搞定。网络快到飞起,很适合做分布式运算。(下图是集群背部,红线是光钎网线)

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_浮点运算_03

因为是从CPU集群改装而来,CPU过于的好了,只能插双卡(因为不是为GPU设计,所以即使是2U机器也最多插双卡,而且是掰断了中间某个部件的情况下),内存对于双卡来说过于大了,网络也是过于土豪,根本用不完。而且经常长时间跑大任务,曾把电源给烧了。。。

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_科学计算_04

双GTX 970集群

情人节那天alex惊喜的掏出一板巧克力一样的东西,说“看,intel送的!”。当时我就震惊了。后来发现原来是一打CPU,用冰箱里制冰块一样的板子装着,一个坑填一块CPU,活像一板巧克力。但送的是n年前被淘汰的CPU,做CPU集群太弱,于是我们准备去折腾个便宜的GPU集群。

下面是前三台订单,基本什么都是挑的最便宜的

之后又陆续买了几台,然后忽悠别组老师也投资买了几台。于是好一阵子组会都是装机大会。

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_科学计算_05

这个集群的优点是便宜,十台机器1W刀左右搞定(一个phd学生一年要花费老板10W+刀)。但由于是分多批买的,每次买都是挑当时最便宜的硬件,例如电源有4种(后来我们发现电源接GPU线是不通用的)。虽然GPU都是970,但来自4个不同的牌子,msi,evga, pny, gigabyte. 便宜硬件出错率高,不同牌子的硬件的维护是个噩梦。另外一个问题是机箱占地方,大小基本等价一个4U的机器了,而且就插了2卡,而4U机器现在基本可以插到8卡了。一开始没想到会买一大批,结果现在它占了我们小机房四分之一的空间。

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_浮点运算_06

四卡GTX 980

折腾得最多的机器,但仍然是最爱。当时装了一堆便宜机器后,想去弄个高大上点的:

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_浮点运算_07

alex手艺高超的把大把GPU,内存,硬盘晒进了一个mid tower,装完是这样的:

结果发现散热是个大问题。一机箱太满,二机箱风扇不给力,三显卡风扇不给力。之后做了无数次测试,升级,期间烧坏了两快卡。目前机箱大了很多,从full tower变成了super tower,前后装满了风扇,硬盘都卸了,第一块坏的卡送修了,第二块懒得动了,现在跛着脚三卡在跑。


四卡K40机器

Intel送了一个4U的机器,Nvidia送了4快K40。半个小时搞定,一切都挺好。

四卡Titan X机器

刚买没几天。起因是上个月的NIPS我找N厂哭穷,人家见我长得眉清目秀(误)便送了一块卡。回来献给老板,老板因为国内某大厂赞助了些钱大手一挥补齐了剩下。往Supermicro 1U机器里塞了4快卡,内部空间寸土必争,花好几个小时才装好,一切都是刚好fit,特别治愈强迫症。

因为没有什么剩余空间,且是长的串行结构散热(散热顺序是单GPU,双CPU,三GPU),所以风扇功率很大,噪音跟轰炸机一样。有点耗电,全力跑电流需要10A。不过其他没发现什么问题。用上它了之后小伙伴们就死活不下来去用的机器了。

接下来买什么?

因为已经有了些打底,接下来应该不会买超性价比机器了。下面如果有钱准备再烧几台4卡Titan X类似的配置,或者8卡4U的机器。不过可能要先静观下N厂和A厂动静。当然还有个主要问题是电力有些供应不足。

总结

折腾硬件就跟其他很多事情一样,要么有钱,要么得有时间折腾。对一般玩家的建议是,如果只是上一两台,可以在newegg上多选多看;但如果是准备买数十台,建议还是用rack集群,模块化的设计不仅省空间,而且维护简单。不过最重要的还是,高兴就好。happy hacking!

GPU选购 显存 带宽 cuda TFLops gpu带宽有什么用_深度学习_08