5700刀打造3卡1080Ti深度学习机器

作者: 人工智豪 | 来源:发表于2017-07-13 10:53 被阅读8320次
    5700美刀,打造3x1080Ti实验室GPU深度学习机器

    最近为公司搭建了一台实验用的深度学习主机,在网络上参考了大量的资料,给出了目前最好的配置。本文首先会介绍所有硬件的选择分析,然后介绍深度学习环境搭建流程,最后给出一些简单的性能对比测试。

    本文方案定位:适用于预算在5万内,用于深度学习模型研究、开发,需要快速建模验证调参的企业或实验室用户。

    目录

    Chapter 1:配置方案选择
    Chapter 2:深度学习环境搭建
    Chapter 3:简单性能对比测试


    Chapter 1 配置方案选择

    首先先上完整的配置清单:

    部件 型号 价格 数量 合计
    GPU 微星1080Ti公版 11G 6400 3 19200
    CPU I7 6850K盒装 4480 1 4480
    主板 华硕X99-EWS 4550 1 4550
    内存 海盗船复仇者16G/2400 975 4 3900
    SSD 三星960EVO 500G 1850 1 1850
    电源 长城1250w 945 1 945
    散热器 九州风神大霜塔至尊版 285 1 285
    机械硬盘 希捷2TB/7200转64M 450 1 450
    机箱 美商海盗船780T白色全塔机箱 1250 1 1250
    总计 36910 RMB

    GPU

    由于预算所限,就不必考虑NVIDIA Tesla那种专业计算卡了,一张基本的K80卡都要5万以上起步,而且K80的性能还没1080Ti的好,所以我们直接考虑英伟达消费级的卡,GeForce 10系列。

    选购GPU之前先参考一下WIKI上有关Nvidia 10系列的显卡参数对比,原网址请点击这里:Nvidia GeForce 10 Series.

    GPU参数 来自维基百科

    最重要的三个参数为:时钟频率(Clock speeds)、内存(Memory)和带宽(Bandwidth)。从上图可以看到,1080Ti是消费级性价比最高的GPU,拥有480GB/s的带宽,单精度运算能力达到10.6TFPS,内存11GB,仅次于最新的Titan Xp,而且价格低,性价比最高。当然,如果你不差钱,选择Titan Xp也是极好的。

    微星 AERO 1080Ti 公版 11G

    这里选择使用3张1080Ti,之所以不选择4卡,与主板和电源有关,后面会解释。使用多卡,最明显的优势是当你进行神经网络调参的时候,可以同时使用多卡进行多个参数调整,也就是说每一个不同参数的模型对应使用一个GPU来训练。以往我们每调一次参数,就只能等模型完全训练完之后,才能再调参数进行下一次训练,这样等待的时间太长,不利于研究人员的思考。我曾经用AWS的P2实例(K80 GPU)复现李飞飞组的《Perceptual losses for real-time style transfer and super-resolution》一文,跑一轮需要3小时,跑出来之后发现结果不好,需要调整一些参数,又要等3小时才能出结果,这是在太慢了……如果能有多卡,时间就起码缩短了3倍!

    建议:如果不考虑成本问题,尽量用带水冷的显卡,因为在满载运行的时候,显卡温度会上升到86度左右,而且默认的英伟达显卡风扇速度设置最高不能超过70%,当然可以通过调节风扇速度来降温,详细教程请看我另一篇文章:深度学习训练时GPU温度过高?几个命令,为你的GPU迅速降温。

    PS: 最近由于比特币价格上涨,矿工不断搜刮市面上的显卡,导致显卡价格不断攀升,在上月给供应商发配置单时,公版1080Ti最低价只要RMB 5800,但过了几周实际下单时,价格已经上涨到RMB 7000,而且不一定有货,所以在购买GPU之前要问清你的供货商有没有货。

    主板

    网络上很多文章都建议使用Z170主板或X99系列的主板,Z170主板一般是个人用户使用,价格较低,而且一般用于单卡。这里要使用3卡,因此选择X99系列的高端主板,支持多卡。一开始选择的是微星 X99A SLI PLUS主板,此款主板支持3 x PCIe x16,价格在2000左右。但后来发现了华硕X99-E WS这款主板,这简直就是为深度学习所设计的,先看看参数:

    华硕X99-EWS 来源:华硕官网 华硕X99-EWS 来源:华硕官网

    我最看重的有三点:第一是支持4 x PCI-E x16,GPU若能工作在x16带宽下工作,就能最大限度地发挥性能,虽然此款主板理论上支持4路x16,但实际上当插满4卡时,实际带宽会工作在x16/x8/x8/x8带宽中,所以实际上没有完全发挥4卡性能,因此本方案只选择3卡,让其工作在x16带宽中(我没找到能同时工作在4个x16带宽的主板)。第二是其支持40 Lane的CPU,CPU核心多、线程多,这对于数据预处理非常有用!第三是能插8条内存,支持128GB内存,对于后面升级都是非常有利的。

    华硕X99-EWS 来源:华硕官网

    这款主板是为工作站而生,没有花俏的外观,只有强大的性能,而且主板的结构大小适合同时插满4张大显卡,1080Ti这个尺寸的显卡没问题,要知道市面上有些说支持4路的主板是不一定有足够位置插满大显卡的,可能只支持尺寸小一点的显卡,大家在选购时要注意。

    CPU

    CPU对于深度学习的任务来说,重要性并没有GPU那么高,所以一般个人用户就选择i5或e5-1620v4这类性价比较高的处理器。但为了不让CPU成为性能提升的瓶颈,我把目光放在了i7和e5身上,选择CPU个人认为需要考虑的是:核心架构、核心数线程数、主频和PCIE通道数(lanes)。

    主板限定了CPU必须为2011-v3或酷睿I7系列的处理器,其它就不必考虑了。重点提PCIE通道数,在深度学习的任务处理中,PCIE通道数lanes越高,数据处理得越快,可以理解为一个40车道的高速公路肯定比16车道的快!所以我们优先考虑Lanes为40的CPU,那么可以缩小范围到以下几款:(数据引用自维基百科

    i7处理器参数 来源:维基百科

    注意上图除了i7-6800K是28 lanes之外,其他都是40 lanes。Lanes数为40的除了上面几款i7处理器之外,至强E5-1620v4同样也是40 lanes的CPU,而且你能以千元价位买到,因此是个人用户性价比首选!

    考虑价格,6900k和6950x贵的有点离谱,6850K主频高(虽然没4.0GHz但我们又不用来玩游戏),6核12线程,应该能够满足处理imagenet这类大数据集了吧,因此最终敲定i7-6850K!

    SSD

    SSD选择的是三星960EVO 500G,这型号的SSD是最新的NVME M.2固态,NVME M.2是下一代主流固态硬盘标准,用一个字概括就是:“快!”比传统SSD还快,感受如何?请点击这个链接感受下:使用PCI-E NVMe的SSD是什么样的体验?知乎

    机箱

    特别说一下机箱,机箱也是特别重要的部件,主要是因为要装3张显卡,除了主板的尺寸有要求之外,机箱也要尽可能大,这样才有利于散热。另外一个原因是假如后期想加装分体式水冷,也有足够的空间去安装。

    网络上呼声最高的当属nvidia2014年推出的Deep learning Box同款机箱,美商海盗船 AIR540,某东链接:美商海盗船 AIR540 USB3.0 中塔侧透。

    但要注意的是此款机箱是中塔尺寸,所以一般个人用户来说就足够了,但由于要多卡,所以最好使用全塔式机箱。找了很久,确定用这款:美商海盗船780T,某东链接点这里。

    这款机箱的特点就是:大!比大更大!

    送过来的时候要两个人一起搬才搬得方便,打开包装放在地上,几乎就顶到桌子了,高度达67.3厘米。

    可以看到内部空间还有很多空余的地方,如果要加装水冷还是可以的。

    重量达几十斤,可以对比一下旁边我的工作用电脑,这体型差距实在是太大了!总体来说还是挺满意的,而且颜值也高,因此我给它取名为:“DeepShark大白鲨”。

    其它部件

    机械硬盘来个1到2TB左右的就好,一般一线大厂差别都不大,选了希捷2TB。散热器选了九州风神大霜塔,能压住I7-6850K,体型还挺大的,不过对我的主板来说尺寸刚刚好,不会挡住显卡。电源的功率一定要够,粗略算了一下3张显卡每张功率峰值250w,CPU150w左右,加起来不会超过1000w,所以选了个1250w的电源(另外供货商也找不到现货更大的电源了)。内存最低也要64GB,所以选了4个2400MHz/16GB的海盗船复仇者,注意主板和CPU支持你的内存频率就最好,不然会被降频使用。

    Chapter 2:深度学习环境搭建

    此部分由于篇幅太长,我已经写在了另外一篇文章,上面有非常详细的环境搭建过程,适用ubuntu16.04系统、1080Ti显卡、华硕X99-E WS高端主板,搭建过程中由于是新显卡新主板,遇到不少的坑,因此想写出来分享给大家,以免大家走弯路,链接在此:Ubuntu16.04 + 1080Ti深度学习环境配置教程。

    Chapter 3:简单性能对比测试

    由于手上正在复现李飞飞组的fast neural-style,因此就用这个项目来对AWS P2.xlarge实例和GTX 1080Ti进行性能对比,更多的性能对比可以参考medium上slav ivaniov的装机及性能对比评测,他的性能对比更加全面,链接点这里:

    数据集有两个,分别是209MB的低分辨率图片集和3GB的高分辨率图片集,均是使用部分imagenet 的数据集ILSVRC2012处理而成,网络模型完全根据Johnson, Justin Alahi, Alexandre,Fei-Fei, Li et al的《Perceptual losses for real-time style transfer and super-resolution》,网络模型如下图:

    图片来源:《Perceptual losses for real-time style transfer and super-resolution》

    GPU参数对比:

    |name|GPU|memory|band width|arcitecture|price|
    |--|--|--|--|--|
    |AWS P2.xlarge|K80|24 Gb|480 GB/s|Kepler|$ 0.9/h|
    |Deep Shark|1080Ti|11 Gb|484 GB/s|Pascal|$ 850|

    使用K80进行模型训练,训练一轮需要3小时:


    使用1080TI进行模型训练,每轮只需15分钟:


    足足快了15倍!不得不说,跨了几代架构的显卡性能不在同一个量级,其实不能拿来作比较,最好还是在同一个Pascal架构下作对比,但由于大多数人在没有GPU的时候都是使用AWS的GPU服务器,作这个对比也可以让大家分析下后面还要不要用AWS,租用AWS每小时0.9美元,但是速度慢,使用时间就更长,每个月的账单因人而异,许多网友表示把这些账单加起来都能买好一点的GPU了,本人在3个月使用里面花了差不多1000块人民币,的确长期来说还是自己买机器的实惠。

    总结

    组建GPU机器时,首先考虑的是定位,到底是企业、实验室用还是个人用,到底是实验用还是工业用,定好位后就要考虑各硬件参数,尽量把性能最大化。多卡永远比单卡要方便,因为能同时运行多个模型,对研究人员的分析非常有利,成本允许的情况下尽量买当前性能最好的卡,后面还能持续使用几年,这样成本也就分摊开了。

    如果你对上面的方案有不同的意见,欢迎在底部留言,我们共同来探讨更好的方案。

    相关文章

      网友评论

      • 祥哥_:看看我的配置怎么样https://pcpartpicker.com/list/w4B6pG
        人工智豪:@祥哥_ 新卡出了,预算足的话考虑下新卡吧
      • 祥哥_:我们lab的现在就是k80,1080ti比它有快这么多么。最近server资源不足,我也在考虑要不要自配一台1080ti的。但是过几个月就有tesla v100的server过来了,纠结
        人工智豪:@祥哥_ 看你这几个月需不需要吧
      • 稻香一九四三:作者您好,请问公版1080ti京东上没有了,淘宝的销量最高的可靠吗? 还有就是您推荐的主板、cpu也不好买了,有没有其他可靠的方案呢?谢谢您!:pray:
        人工智豪:@稻香一九四三 假如你是公司用的话可以考虑去实体店配个整机,让他三年保修的那种,自己组装装不好的话老板脸色不好看。
      • 咖啡男孩:问下楼主,这个主板的内存条一定要买服务器的内存条吗?求回答
        咖啡男孩:OK,多谢!
        咖啡男孩:海盗船复仇者不行:joy::joy:
        人工智豪:@咖啡男孩 我的是金士顿马甲条,不用一定要买服务器条的
      • 雷霆同学:LZ你好啊 不知道你了不了解 K80 K40 K1 K2这种没有视频输出的卡 Z170上能用么?还是说需要搭配一块1080之类的卡做视频输出?
        雷霆同学:@人工智豪 好的多谢LZ!
        人工智豪:@雷霆同学 k开头的是特斯拉的卡,能不能用在z170不知道,但建议用专业的服务器类主板,游戏主板稳定性不够服务器主板好的。
      • 2461b7b36ca5:感谢楼主,我正在组合一套分配给多租户使用的深度学习环境,基本考虑是1台物理机,配4块1080Ti卡,虚拟化分配给4个租户使用,网上看过i7-6850K(单CPU)的配置,但偏向使用E5 CPU,不知道楼主是否有更好的建议?
        2461b7b36ca5:@人工智豪 谢谢
        人工智豪:@孟焯 你可以选择e5,组双路e5更佳,能无压力16/16/16/16
      • 宇文布吉阁:小白求问,主板说明上写着对于40lane的CPU支持4×16,但是为啥楼主说 插4块显卡实际工作在x16/x8/x8/x8下呀
        人工智豪:@宇文布吉阁 因为我这台机子是3卡,目前我的感觉是3卡的性能都差不多,4卡就不好说,因为我也没有第四张卡来实验,所以他说的分时复用我也没办法知道了。其实还有另外一个解决方法,如果不用考虑成本,就买超微的板子,超微的板子都是服务器级别的板子,同时支持多卡多U,你买两个40lanes的cpu,然后4卡6卡都工作在x16下都没问题了。
        宇文布吉阁:@人工智豪 嗯谢谢楼主解答。我看很多人都是这么算的,但是华硕这个X99的板子上面说有对CPU lanes扩展,这个链接 http://www.overclockers.com/asus-x99ews-motherboard-review/ 对这个板子介绍了很多,其中有一段话专门说了这个PCIE扩展的问题:

        Moving towards the center of the X99-E WS, we can see the 7 PCI-E x16 slots. As you can see by the chart below, both 28 and 40 lane CPUs will be able to run up to a quad-SLI/CrossFireX setup with all the GPUs running at PCI-E 3.0 x16 speeds. This is possible because of the dual PLX chips found on the motherboard. This is great news for those that own a 28 lane i7 5820K processor! Just above the top PCI-E slot is a 6-pin power connector to feed additional power to the slots.
        可以看到他说了对于40 lanes的CPU可以让4张卡都在16× 下面工作。用了PLX 芯片。
        但是又有一种声音说这其实是一种分时复用,所以并没有根本上扩展,毕竟和CPU本身扩lanes不同。
        想问问楼主了解吗,如果是分时复用,那么在我们做深度学习的时候对速度的影响有多大,究竟上4卡合适吗
        人工智豪:@宇文布吉阁 好像是这么算的:40lane的CPU一共有40条通道,40=16+8+8+8,或者40=16+16+8这样子
      • stevenMvp:CPU为什么不用AMD Ryzen系列?
        人工智豪:@stevenMvp AMD的CPU不是那么的了解,但如果能符合我前面关于CPU的选购要求,应该也没问题。
      • 开发者头条_程序员必装的App:感谢分享!已推荐到《开发者头条》:https://toutiao.io/posts/p070o7 欢迎点赞支持!
        欢迎订阅《机器学习与大数据》https://toutiao.io/subjects/141662
      • kakasyw:你这配置霸气
        人工智豪:@kakasyw 1080Ti单卡吗?之前我也想配个人电脑,但是这段时间1080都很贵。
        kakasyw:@人工智豪 我四月份配的1.6w
        人工智豪:@kakasyw 给公司配的哈哈

      本文标题:5700刀打造3卡1080Ti深度学习机器

      本文链接:https://www.haomeiwen.com/subject/mfuacxtx.html