配置深度学习主机与环境(TensorFlow+1080Ti):(一)硬件选购与主机组装

TensorFlow

配置深度学习主机与环境(TensorFlow+1080Ti):

(一)硬件选购与主机组装

(二)Win10&Ubuntu双系统与显卡驱动安装

(三)CUDA与CUDNN安装

(四)基于Anaconda的TensorFlow安装


一. 硬件选购

研究需求,遂组装一台全新的计算机,安装Ubuntu,用来运行TensorFlow,同时保留Win10,方便其他其他场合使用。因为硬件更新换代很快,各种网络结构也层出不穷。因此,考虑使用多显卡来提升系统的计算能力是有必要的。现阶段,主要购买单块显卡实现整个系统的搭建,同时保留拓展(多显卡)空间。

硬件清单如下:

BOM

以上配置总共花费24173.1元人民币,购买时间主要在6月底7月初,没能赶上京东618的活动,顺便不幸的碰到了显卡缺货,所以价格上仅供参考。

1. 主板

因为考虑到系统有可能拓展四块显卡,因此主板首先需要支持4-Way NVIDA SLI功能,通常单块显卡占用16条PCIE通道,四块显卡则需要16*4=64条PCIE通路,而常见的i7处理器中的高端型号最高只有40条PCIE通道,因此理论上的处理方法是需要使用两块CPU实现双通道处理。京东上就有使用双路E5配合4路1080Ti所搭建的深度学习主机。

双路E5配合4路1080Ti

在不考虑双路CPU的情况下,要想实现16*4PCIE通路,目前只有Asus X99-E WS/USB 3.1唯一一块主板可以实现PCIE通路的拓展。

ASUS X99-E WS USB3.1主板说明书

上图是主板说明书中的一页,显示主板共有7条PCIE接口。使用四块显卡,分别放置于1、3、5、7号PCIE接口,可以实现4*16条PCIE通道。具体实现我并不是特别清楚,但是在我的深度学习工作站攒机过程记录中,作者也同样询问过这个问题:

Asus X99-E WS/USB 3.1

2. 中央处理器 CPU

为适配主板型号,CPU为LGA2011-v3系列,同时支持最高40条PCIE通道。因为系统主要使用显卡进行计算,因此对CPU的要求并不是很高。Tim Dettmers在其Blog:A Full Hardware Guide to Deep Learning中提到CPU的核心数并不重要,拥有相对较高的主频即可。

CPU:Two threads per GPU; full 40 PCIe lanes and correct PCIe spec (same as your motherboard); > 2GHz; cache does not matter;

最后决定在i7-5930K和i7-6850K中二选一,价格差距不大,遂选择主频较高的i7-6850K。

注意:i7-6850K是不带核显的,装机前期显卡还没到,特地借了一张点亮卡用来检测装机情况。

各型号处理器具体参数可以在Intel官方网站查询与对比。

i7-5930K&i7-6850K参数对比

3. 显卡 GPU

并非所有的显卡都支持CUDA,实际上仅有部分Nvidia高端显卡才支持,具体支持列表可前往Nvidia查询。

TensorFlow对GPU的要求

目前10系显卡横空出世,基本上深度学习主机主要可选为:Titan Xp、1080Ti、Titan、1060与Tesla系列,深度学习模型对参数精度要求并不高,因此除非土豪,可以排出Tesla系列显卡。在金钱允许但非土豪的情况下,1080Ti是目前最佳的选择。在显卡的选购过程中,肯定会遇到公版与非公版的选择问题。虽然非公版的散热较好,且自带超频,但考虑到系统的稳定性与兼容性,建议还是选择公版显卡。另外非公版显卡还可能会遇到显卡太厚主板放不下的问题。

在显卡的购买过程中正好遇到了显卡慌,京东上所有自营的商家全部缺货,剩下的部分显卡都在6500~7000RMB左右。不得已选择上淘宝代购,结果大部分代购商家都拿不到货,难怪大家都盼望着矿难。另外海淘显卡推荐选择EVGA,在台湾有维修点,方便保修。 

以下图表和建议,来自于Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning

Normalized cost efficiency of GPUs which takes into account the price of other hardware. Here we compare a full machine, that is 4 GPUs, along with a high end hardware (CPU, motherboard etc.) worth $1500.

Best GPU overall (by a small margin): Titan Xp

Cost efficient but expensive: GTX 1080 Ti, GTX 1070, GTX 1080

Cost efficient and cheap:  GTX 1060 (6GB)I work with data sets > 250GB: GTX Titan X (Maxwell), NVIDIA Titan X Pascal, or NVIDIA Titan Xp

I have little money: GTX 1060 (6GB)

I have almost no money: GTX 1050 Ti (4GB)

I do Kaggle: GTX 1060 (6GB) for any “normal” competition, or GTX 1080 Ti for “deep learning competitions”

I am a competitive computer vision researcher: NVIDIA Titan Xp; do not upgrade from existing Titan X (Pascal or Maxwell)

I am a researcher: GTX 1080 Ti. In some cases, like natural language processing, a GTX 1070 or GTX 1080 might also be a solid choice — check the memory requirements of your current modelsI want to build a GPU cluster:This is really complicated, you can get some ideashereI started deep learning and I am serious about it: Start with a GTX 1060 (6GB). Depending of what area you choose next (startup, Kaggle, research, applied deep learning) sell your GTX 1060 and buy something more appropriate

I want to try deep learning, but I am not serious about it: GTX 1050 Ti (4 or 2GB)

4. 机箱

选择Tim DettmersNVIDIA® DIGITS™ DevBox同款机箱,被大多数深度学习用户所采用。

NVIDIA® DIGITS™ DevBox

5. 电源

建议不要在电源上省钱,主机可能24小时运行,稳定性最重要。1600w对付4块1080Ti足以。另外:Nvidia DevBox 用的是 EVGA 1600W 80+ Gold 120-G2-1600-X1,比我买的钛金便宜点。

6. 散热

在风冷和水冷的选择上纠结了很久,总担心水冷过保之后会漏水,最终还是选择了风冷。直接选择京东上猫头鹰最贵的一款(NOCTUA NH-D15 CPU散热器),后期使用情况看,散热不错,噪音也不大。

如果选择水冷的话建议将冷排安装在AIR540机箱的顶端,这样可以避免顶端进灰。

7. 内存

i7-6850K默认主频2400MHz,开启XMP之后,自动超频为3200MHz。因此建议购买DDR4 3200MHz内存条。

XMP是Extreme Memory Profile的缩写,是Intel在2007年9月提出的内存认证标准,适用于DDR3和DDR4。

为了统一行业内的超频数值标准,而不让各个内存厂商随意设定更高的内存频率数值写入到SPD,英特尔提出了XMP认证标准。通过XMP认证的内存会在内存地址176 ~ 254中记录内存的速度设定,最多可以保存2组设定值。厂商们如需要得到XMP的认证,就必须把内存及该设定送交Intel测试,通过后就会给予认证。

通过XMP认证后,其SPD中除了预设普通频率数值的SPD值外,还写入了更高频率设定的SPD。这个更高频率的设定配合支持XMP的主板后可以被启用,从而将内存超频提升性能。

简单的说,通过了英特尔XMP认证的内存,SPD中有两个或更多频率设定档案,只要在主板中启用这些预设的XMP档案,即可将内存条自动超频到3200或更高值(根据档案设定而定)。

XMP与手动超频效果基本无异,所以可将其看作为内存的自动超频技术。

8. 显示器

显示器就是生产力。

9. 鼠键

建议购买无线鼠键,可以离机箱远远的。

注意:在系统点亮之后可能无法识别无线鼠键,建议在点亮阶段使用有线鼠键。

10. 存储

若训练集庞大,建议购买较大的SSD,HDD可用来仓储。假如需要安装双系统,建议SSD 512G,HDD可以用来当作Win10和Ubuntu的公共挂载盘。


二. 主机组装

计算机组装应该是整个搭建过程中最简单的部分了,虽然我之前从来没有组装过电脑。

第一步将CPU(注意方向)、RAM、SSD(M.2 Nvme)安装到主板上,将主板附送的主机后置面板安装到机箱上。

第二步将将散热安装到CPU上,放到机箱中,确定散热器风道方向与散热器的位置,以免放不下。

第三步涂硅脂,重新将确定好位置的风扇安装到CPU上。

第四部将主板固定到机箱上,注意机箱上的铜柱不多也不少,避免主板下面有空余的铜柱而导致主板短路。

第五步将GPU和其他pcie接口设备安装到主板与机箱上,安装磁盘阵列到机箱内,安装电源模块。

第六步接线。

关于组装电脑的相关资料如下:

1. 知乎:如何配组装电脑?

2. 知乎:关于组装电脑的一些常识

3. 【极客湾】萌妹子带你装电脑(萌新向)


三. 参考资料:

1. 知乎:如何配置一台适用于深度学习的工作站?

2. 我的深度学习工作站攒机过程记录

3. 我爱自然语言处理:深度学习主机攒机小记

4. 深度 | 从硬件配置到软件安装,一台深度学习机器的配备指南

5. 小白在闭关:搭建一台用于深度学习的工作站

6. Tim Dettmers:Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning

7. Tim Dettmers:A Full Hardware Guide to Deep Learning

8. Build Personal Deep Learning Rig: GTX 1080 + Ubuntu 16.04 + CUDA 8.0RC + CuDnn 7 + Tensorflow/Mxnet/Caffe/Darknet

推荐阅读更多精彩内容