专栏名称: 机器之心
专业的人工智能媒体和产业服务平台
目录
相关文章推荐
爱可可-爱生活  ·  [LG]《Robustness of ... ·  6 小时前  
爱可可-爱生活  ·  //@爱可可-爱生活:后天开奖,欢迎参与!- ... ·  昨天  
人工智能产业链union  ·  Manus平替方案二:AutoGPT ... ·  昨天  
人工智能产业链union  ·  Manus平替方案二:AutoGPT ... ·  昨天  
宝玉xp  ·  //@grafiks:自己不提,任何事都不会 ... ·  2 天前  
51好读  ›  专栏  ›  机器之心

教程 | 从硬件配置、软件安装到基准测试,1700美元深度学习机器构建指南

机器之心  · 公众号  · AI  · 2017-06-04 13:57

正文

选自Medium

作者:Slav

机器之心编译

参与:Quantum Cheese、Lj Linjing、蒋思源


在用了十年的 MacBook Airs 和云服务以后,我现在要搭建一个(笔记本)桌面了


几年时间里我都在用越来越薄的 MacBooks 来搭载一个瘦客户端(thin client),并已经觉得习以为常了。所以当我涉入深度学习(DL)领域后,我毫不犹豫的选择了当时最新的 Amazon P2 云服务。该云服务不需要预付成本,能同时训练很多个模型,并且还能让一个机器学习模型慢慢地训练自己。


但随着时间推移,AWS(亚马逊云服务)的账单逐渐越堆越高,即便我换成了便宜十倍的 Spot instances 也没用。而且我也没有同时训练过多个模型。在模型训练的时候,我会去吃午饭,锻炼等等,然后带着一个更清晰的头脑回来查看它。


但最终我模型的复杂度增加了,训练时间也变得更长。对一个刚完成两天训练的模型,我经常会忘记之前对它进行了哪些不同的操作。受到其他同行在 Fast.AI Forum 上讨论更好经验的激励,我决定买一个专用的深度学习盒子(DL box)放在家里。


最重要的原因就是能在进行模型的原型设计时节省时间,如果我们能训练地更快,反馈时间也会更短。这能让我们更容易的在头脑中建立起模型假设和结果之间的联系。


而且我也想省钱,我之前用的是亚马逊网络服务(AWS),它通过 Nvidia K80 的 GPU 来提供 P2 instances。最近 AWS 的费用达到了每月 60 到 70 美元,还有增长的趋势。并且要储存大型数据集也很贵,比如 ImageNet 这样的。


最后一点,我已经有 10 年没有一个(笔记本的)桌面了,想看看现在有什么变化(这里剧透一下:基本上没变化)。


下面是我的选择:从选择 件到基准测试。


目录


1. 选择配件

2. 把它们组装在一起

3. 软件设置

4. 基准测试


选择配件


对我来说合理的预算是两年云计算服务的成本。以我目前的情况来看,即 AWS 每月 70 美元的使用费,那么总预算应该在 1700 美元左右。


PC Part Picker 这个网站非常有帮助,可以帮你发现是否某些 件放在一起并不好用。


你可以在这里查看所有使用过的 件:https://pcpartpicker.com/list/T6wHjc


GPU


GPU 是整个机箱里最关键的部件了。它训练深度网络的速度更快,从而缩短反馈循环(的周期)。


GPU 很重要是因为:a) 深度学习中绝大部分计算都是矩阵运算,比如矩阵乘法之类。而用 CPU 进行这类运算就会很慢。b)当我们在一个典型的神经网络中进行成千上万个矩阵运算时,这种延迟就会累加(我们也会在后面的基准训练部分看到这一点)。而另一方面,GPU 就更方便了,因为能并行的运行所有这些运算。他们有很多个内核,能运行的线程数量则更多。GPU 还有更高的存储带宽,这能让它们同时在一群数据上进行这些并行计算。


我在几个 Nvidia 的芯片之间选择:GTX 1070 (360 美元), GTX 1080 (500 美元), GTX 1080 Ti (700 美元),以及 Titan X(1320 美元)。


在性能方面,GTX 1080 Ti 和 Titan X 较接近,粗略来看 GTX 1080 大约比 GTX 1070 快了 25%,而 GTX 1080 Ti 则比 GTX 1080 快乐 30% 左右。


Tim Dettmers 有一篇更好的关于选择深度学习 GPU 的文章,而且他还经常会在新的芯片上市后更新博文:http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/


下面是选购 GPU 时需要考虑的事情:


  1. 品牌:这里没什么可说的,选 Nvidia 就对了。它们已经专注于机器学习很多年了,并且取得了成果。他们的统一计算设备架构(CUDA)工具包在这个领域里有着不可撼动的地位,所以它真的是深度学习从业者唯一的选择。

  2. 预算:Titan X 在这方面真的没有任何优势,因为它比同样性能的 1080 Ti 贵了 500 多美元。

  3. 一个还是多个:我考虑过用一堆 1070s 去替代(单个)1080 或 1080 Ti。这能让我在两个芯片上训练一个模型,或同时训练两个模型。目前在多个芯片上训练一个模型还有点麻烦,不过现在有所转机,因为 PyTorch 和 Caffe 2 提供了随着 GPU 数量几乎成线性提升的训练规模。另一个选择—同时训练两个模型似乎更有价值,但我决定现在先用一个强大的核心,以后再添加另一个。

  4. 内存:内存越大当然就越好了。更多的存储空间能让我们部署更大的模型,并且在训练时使用足够大的批量大小(这会对梯度流很有帮助)。

  5. 存储带宽:这能让 GPU 在更大的内存上运行。Tim Dettmers 指出这对于一个 GPU 来说是最重要的指标。


考虑到所有这些,我选择了 GTX 1080 Ti,主要是考虑到训练速度的激增。我计划很快再增加一个 1080 Ti。


CPU


即便 GPU 是深度学习的最佳选择,CPU 同样也很重要。比如说数据预处理通常都是在 CPU 上进行的。如果我们想把所有的数据提前并行,核的数量和每个核的线程数就非常重要了。


为了不偏离预算,我选择了一个中等程度的 CPU,Intel i5 7500,价格大概在 190 美元。相对来说挺便宜,但也足够保证不拖慢速度。


内存(RAM)


如果我们要在一个较大数据集上工作,当然钱多好办事,内存总是多多益善的。我买了两根 16 GB 的内存条,也就是以 230 美元的价格买下了总共 32 GB 的 RAM,而且打算以后再买 32 GB 的。


硬盘


遵循了 Jeremy Howard 的建议,我买了一个固态硬盘(SSD)搭载我的操作系统和现有的数据,还有一个慢转硬盘驱动器(HDD)来存储那些大型数据集(比如 ImageNet)。


  • SSD:我记得多年前买到第一部 Macbook Air 时,是如何惊叹于它的固态硬盘速度的。让我高兴的事,与此同时,叫做 NVMe 的新一代固态硬盘上市了。230 美元买到一个 480 GB 的 MyDigitalSSDNVMe 驱动真的很值。这个宝贝能以每秒千兆字节的速度拷贝数据。

  • HDD: 66 美元 2 TB。在 SSD 越来越快的同时,HDD 变得更便宜了。对一个用了 7 年 128 GB 的 Macbook 的人来说,有如此大容量的硬盘简直是太棒了。


主板


有一件我一直很关心的事,就是挑选一块能支持两块 GTX 1080 Ti 的主板,两个都在串行总线(PCI Express Lanes)的数量上(最小的是 2x8),并且有能放下两个芯片的物理空间。还要确保它跟选好的 CPU 兼容。最后一个 130 美元的 Asus TUF Z270 主板帮我做到了这一点。


电源


经验法则:它应该能为 CPU 和 GPU 提供足够的能量,再加上外的 100 瓦。


Intel i5 7500 处理器的能耗是 65W,每个 GPU (1080 Ti) 需要 250W,所以我用 75 美元买了一个 Deepcool 750W Gold 电源供应单元(PSU)。这里的「Gold」指的是电源效率(power efficiency),即它以热量的形式损耗了多大的功率。


机箱


机箱应该跟母板有相同的形状系数。如果也能有足够的 LED 来防止过热就更好了。

一个朋友推荐了 Thermaltake N23 机箱,价格 50 美元,我马上就买了下来。可惜没有 LED。


组装派对就要开始了


组装


如果你没有太多的硬件经验,并害怕弄坏某些部件,最好是找专业人士来组装。然而,这可是我无法错过的学习机会啊(即时我已经分享过此前操作硬件的悲惨经历了)。


第一步也是很重要的一步就是 阅读说明手册,每个配件都会有一个手册。这对我尤其重要,因为我已经做过一两次组装了,正好处于那种经验不足容易搞砸事情的阶段。


主板上的示意图


在主板上安装 CPU


CPU 放在了它的卡槽里,但杠杆拉不下去。


这一步要在把母板放入机箱之前完成。处理器旁边有一个杠杆,需要提起来。这时候处理器就放在了底座上(这里要检查两次朝向是否正确)。最终杠杆会放下把 CPU 固定住。


我在安装 CPU 时获得了帮助


但我进行这一步的时候很困难,一旦 CPU 放在了位置上,杠杆却无法下降。我其实是让一个更懂硬件的朋友通过视频通话指导我完成的。结果发现把杠杆拉下去需要的力量超过了我预期的程度。


安装好的风扇


下一步就要把风扇固定在 CPU 的顶部:风扇的脚柱必须用螺丝旋紧到母板上。还要在安装前考虑到把风扇的电线放在哪里。我买的处理器带有热熔胶。如果你的没有,要确保在 CPU 和冷却单元之间加一些胶。如果你把风扇拿下来了,也要把胶更换掉。


在机箱里安装电源


穿过背面固定电源线


我把电源供应单元(PSU)放在了主板的前方,让电源线紧密的贴在机箱背侧。


在机箱里安装主板


这一步非常简单直接,小心地放进去然后拧紧。一个磁性的螺丝刀是非常有帮助的。


然后连接电源线和机箱按键以及 LED。


安装 NVMe 盘


把他放到 M2 槽里再拧紧就好了。小菜一碟。


安装 RAM


在我费力的把 RAM 装到基底上时,GTX 1080 Ti 静静的躺在那里等着轮到它。


结果我发现内存条非常难装,需要花很多功夫把它正确的固定住。有几次我差点就放弃了,想着我肯定做的不对。最终有一个齿对上了,其他齿很快也跟着进去了。


这时候我打开了电脑,以确保它能工作。让我兴奋的是,它正常启动了!


安装 GPU


GTX 1080 Ti 放入主板


终于,GPU 毫不费力的就滑了进去。14 个引脚提供的电能让它运行了起来。


注意:不要立刻就把你的显示器插入多余的卡槽。绝大部分情况下它需要驱动来运行(详见下面的部分)。


终于,它完成了!



软件设置


现在硬件设备已经就绪,我们不再需要螺丝刀,而是键盘来设置相应的软件环境。


双系统注意事项:如果你打算安装 Windows 操作系统(出于基准测试的考虑,完全不是为了打游戏),那么请先安装 Windows 再安装 Linux。如果先装的 Linux,那么不但用不上双系统,还得重装 Ubuntu,因为 Windows 把启动分区弄乱了。


安装 Ubuntu


大多数深度学习框架是首先基于 Linux 系统开发,然后逐渐扩展到支持其他操作系统。所以我选择了 Ubuntu,默认的 Linux 系统发行版。一个老掉牙的 2G 的 USB 驱动盘对于系统安装来说也还挺好使的。UNetbootin (OSX) 或者 Rufus (Windows)都可用于制作 Linux 的闪盘驱动。在 Ubuntu 的安装过程中,一路默认选项到底都工作正常,没出什么问题。


写这篇文章的时候 Ubuntu 17.04 刚刚发行,我仍然使用的是上一个版本(16.04),而且网上也可以找到该版本很全面的快速入门手册。


Ubuntu 服务器或者桌面版本:Ubuntu 服务器版本和桌面版本几乎完全相同,只是服务器版本未安装可视化界面(简称 X)。我安装了桌面版本并禁用了自启动 X, 以便计算机可以在终端启动 X。如有需要,还可以稍后通过键入 startx 来启动可视化桌面。







请到「今天看啥」查看全文