配置深度学习主机与环境(TensorFlow+1080Ti):
一. 硬件选购
研究需求,遂组装一台全新的计算机,安装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.12. 中央处理器 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 Dettmers与NVIDIA® DIGITS™ DevBox同款机箱,被大多数深度学习用户所采用。
NVIDIA® DIGITS™ DevBox5. 电源
建议不要在电源上省钱,主机可能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. 知乎:如何配组装电脑?
三. 参考资料:
4. 深度 | 从硬件配置到软件安装,一台深度学习机器的配备指南
网友评论
-----------------------
我没有使用点亮卡,目前就两块1080Ti(没凑4块因为暂时需求不大)。
一般训练的时候系统显示会占掉不到200M显存,影响不大,可以在训练的时候制定训练使用x(eg: 95%)的显存,这样不会因为资源不够而崩溃。(昨天跑程序中间打开chrome占用资源过多导致OMM错误)
或者直接使用SSH,不用显示器,这样是最好的。