本文转载自:https://www.jianshu.com/p/ca2e003bf77e

 
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://www.jianshu.com/p/ca2e003bf77e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

5700刀打造3卡1080Ti深度学习机器【转】的更多相关文章

  1. 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

    百度为何开源深度机器学习平台?   有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举.   5月20日,百度在github上开源了其 ...

  2. ML平台_微博深度学习平台架构和实践

    ( 转载至: http://www.36dsj.com/archives/98977)  随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...

  3. ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四

    [导读]Kears作者François Chollet刚刚在Twitter贴出最近三个月在arXiv提到的深度学习框架,TensorFlow不出意外排名第一,Keras排名第二.随后是Caffe.Py ...

  4. ubuntu16.04系统深度学习开发环境、常用软件环境(如vscode、wine QQ、 360wifi驱动(第三代暂无))搭建相关资料

    事后补充比较全面的(找对资料真的省一半功夫):https://www.jianshu.com/p/5b708817f5d8?from=groupmessage Ubuntu16.04 + 1080Ti ...

  5. 教你如何挑选深度学习GPU【转】

    本文转载自:https://blog.csdn.net/qq_38906523/article/details/78730158 即将进入 2018 年,随着硬件的更新换代,越来越多的机器学习从业者又 ...

  6. 没有博士学位,照样玩转TensorFlow深度学习

    教程 | 没有博士学位,照样玩转TensorFlow深度学习 机器之心2017-01-24 12:32:22 程序设计 谷歌 操作系统 阅读(362)评论(0) 选自Codelabs 机器之心编译 参 ...

  7. 使用亚马逊云服务器EC2做深度学习(一)申请竞价实例

    这是<使用亚马逊云服务器EC2做深度学习>系列的第一篇文章. (一)申请竞价实例  (二)配置Jupyter Notebook服务器  (三)配置TensorFlow  (四)配置好的系统 ...

  8. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

  9. NNVM打造模块化深度学习系统(转)

    [摘录理由]: 之所以摘录本文,主要原因是:该文配有开源代码(https://github.com/dmlc/nnvm):读者能够直接体会文中所述的意义,便于立刻展开研究. MXNet专栏 :NNVM ...

随机推荐

  1. c++ 利用new动态的定义二维数组

    #include <iostream> using namespace std; int main() { , col = ; // key code: 申请空间 int **edge = ...

  2. JavaBean与Map<String,Object>相互转换

    一.为什么要实现javaBean与Map<String,Object>相互转换 Spring中的BaseCommandController对象可以将传递过来的参数封装到一个JavaBean ...

  3. JavaWeb温习之Cookie对象

    1. 会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话.有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...

  4. 用Iterator实现遍历集合

    使用Collection类的Iterator,可以方便的遍历Vector, ArrayList, LinkedList等集合元素,避免通过get()方法遍历时,针对每一种对象单独进行编码. 示例: C ...

  5. 微信小程序 --- page.json文件

    page.json 文件用于配置当前目录.page.json文件里的配置可以修改 app.json 配置里面的 window:不能覆盖app.json文件里面的 tabBar / 网络超时/ debu ...

  6. postgresql架构基础(转)-(1)

    PostgreSQL使用一种客户端/服务器的模型.一次PostgreSQL会话由下列相关的进程(程序)组成: 一个服务器进程,它管理数据库文件.接受来自客户端应用与数据库的联接并且代表客户端在数据库上 ...

  7. CentOS7.2升级默认yum安装的php版本

    CentOS7.2yum安装php默认版本为5.4,可以升级通过yum安装更高版本 设置yum源 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtat ...

  8. 一致性hash 大众点评订单分库分表实践

    井底之蛙 https://mp.weixin.qq.com/s?src=3&timestamp=1543228894&ver=1&signature=uF6nV0yYseJ55 ...

  9. ubuntu ---QQ install/desktop/ibus reinstall

    http://www.linuxidc.com/Linux/2016-09/134923.htm ( Ubuntu 16.04安装QQ国际版图文详细教程) [ sudo apt-get install ...

  10. 小米范工具系列之二:小米范 web目录扫描器

    最新版本1.1,下载地址:http://pan.baidu.com/s/1c1NDSVe  文件名scandir,请使用java1.8运行 小米范web目录扫描器主要功能是探测web可能存在的目录及文 ...