搜狐媒体平台-搜狐网站>IT

他一出家就成中国最帅和尚

眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。

大学副教授与在押服刑女结婚

这在监狱民警看来,那么令人不可思议。

帮你踩坑 | 深度学习小钢炮攒机心得

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。举报

本文经授权转载自微信公众号:一盘散沙的工作间

已经2017年了,从90年代初的品牌机流行,90年代末的组装机流行,2000-2010桌面级逐渐被移动PC/Mac取代,一直到现在移动终端大行其道,攒机似乎已经走过一个完整的生命周期。而因为2008年老黄开始攒GPGPU的大招,一直到2014年开始深度学习的逐渐兴起,台式家用机开始扮演起另外的角色:家用作坊小钢炮。

一直在掉坑的我在此拿出一些心得,与大家分享。

显卡篇

首先要说明一点,在家搞深度学习不是在云端部署用于深度学习的卡那样,所以NVidia的Tesla系列主打单精度的计算显卡、Quadro系列双精度计算卡固然好,但是性价比实际不堪一击,参数具体可以参考wikipedia的介绍,这种东西实际上很多没有必要去官网找的原因是,官网更像一个货柜摆放复杂的大卖场,诱导你多停留一段时间。

  

图:最新一代可以用于计算的桌面级游戏显卡

  

图:最新3代可以用于计算的服务器级计算显卡

深度学习是一种概率推断工具,这几年大量应用于人工智能应用(图像、视频、语音的识别与合成、自然语言处理、标注、标签、翻译、对话等),这跟发射火箭需要的高精度计算以及数据纠错(ECC)不一样,一个深度神经网络对单个参数精度的依赖其实很低,不仅不需要双精度计算能力,还经常出现一些参数量子化、网络压缩等小技巧,因此能看到Tesla系列的显卡和此处的10x0系列游戏卡一样,都是设计成为极高的单精度计算能力和极低的双精度计算能力的。所以在生产设计之初这些卡就注定是为了深度学习而生的。

实际上,如果你主要跑的是LSTM这种结构的应用(比如文本、语音、OCR),参数比较少的时候,1060的6GB显存已经足够,当然它的算力有些乏善可陈了(3.8T/睿频4.4T)。但如果你只跑计算机视觉的训练,如大规模残差网络(在单机跑一个152层的ResNet单卡吃7G显存,可以8卡并行),如果你的公司不提供算力,你也不喜欢直接在云平台上花钱训练的化,那么可能一个大显存的Titan X Pascal (12GB)更适合你。1080、1070性能就比较中庸,价格适中(3000-5000价位)。这个根据个人的兴趣和钱包综合选择即可。

有人想要问了,我有钱,还是想买个人用的M系列(M40,M60)、P系列(P100)等显卡,而且想多卡并行,该怎么办?这个已经脱离个人家用作坊的定义了,价格从几十万到一百万不等,建议还是直接找NVidia原厂、华硕等能提供质保的大厂提供销售服务。这些定制的服务器往往一块主板能插多块显卡,去年推出的DGX-1采用了更好的显存技术(HBM2)和更好的数据传输总线方案(NVLink),这让存取显存以及显存-内存互拷效率更高,显卡在保持性能的同时还可以保证采用被动散热方案(不采用带显卡风扇的设计,节省空间)

  

还有人问,我没有那么有钱,但还是想买双卡GPU做训练,这个问题已经牵涉到主板的选择,我们放到后面再讨论,但可以先说结论:强行上双卡,会极大的拉低整机性价比,而且最终训练效果的提升未必如你想象的那么好。如果你还要说『我不听我不听』,那请看完本篇。

内存/存储篇

很多人会觉得,存储跟深度学习有个毛关系?我们先来看一下一个优化得不好的深度学习训练任务数据pipeline长什么样子:

准备阶段:

定义Symbol和图结构

数据训练阶段:

for i in num_of_epoch:

for k in num_of_batch:

for j in num_of_batch_size:

数据生成/爬取(网络I/O, CPU速度, L3 Cache/内存)

数据清洗(CPU速度, 内存)

数据缓存/保存(内存大小,存储I/O)

数据加载进图(内存大小,存储I/O,PCI-E带宽,GPU显存)

根据图Backward一轮(GPU速度)

Forward一轮给出当前batch预测(GPU速度)

根据预测给出当前batch训练集精度(CPU速度,BLAS指令集优化)

Forward一轮给出当前epoch在测试集预测(GPU速度)

根据预测给出当前epoch在测试集的精度(CPU速度,BLAS指令集优化)

保存模型中间点(存储I/O)

除了更多的把走网络I/O的步骤移动到准备阶段是一个很明显的优化点以外,你会发现,一旦作为数据缓存的内存容量不够大,你的物理存储I/O马上就会成为下一个瓶颈。尤其图片一般来说还都是小文件,而固态硬盘(SSD)对小文件的优化比机械硬盘8.9ms随机寻道一次的速度不知道超越了几个数量级(具体),如果你真的优化不了数据训练阶段的结构,那你为什么不花多一点的钱提高这个物理存储IOPS的随机寻道性能呢?

我的方案是Samsung 960 EVO M.2 250G 作为系统盘。

  

Intel 750 PCI-E 1.2T作为副盘

  

可以看到,队列深度在32的时候,对SSD的随机存取都超过了300k IOPS,在SSD上,对小文件(如分辨率较低的照片)频繁进行存取将不会是瓶颈。

WD紫色监控机械硬盘2T作为数据盘,主打监控(大数据流,大文件读写)功能。(图就不找了)

因为M.2接口和PCI-E接口都占用PCI-E通道,稍后在主板阶段我会介绍一下这里面的坑。

内存篇

内存应该是一个题外话,真要买的话,闭着眼睛买个8GB*2或者16GB*2的套装可以适应大部分主流的主板,(小主板只有2个内存槽,而大主板的话你可以把内存插到同色槽位,)所以我们就开一个小差聊聊内存的DDR标准。

现在新装机的平台,以X99,Z170为例,用的普遍都是DDR4的内存,老一些的机器老树开新花用的有DDR3的内存。假设你的数据较小,数据都能加载到内存种,那究竟什么是影响内存存取速度的关键因素呢?

  

一个就是DDR内存的工作频率,而另一个和工作频率此消彼长的是DDR内存的时序(DDR Timing),这是一个内存存取的延迟指标。工作频率的倒数,就是一个内存工作时钟周期的时间长度。

可以看到,图中这个Crucial内存上贴的标签『8-8-8-24』分别代表:

CL:CAS Latency,Column Access Strobe (CAS) latency,从系统发送命令到内存开始到读写特定列所消耗的时钟周期数。时间。也就是说,如果我们已经指定了我们要从某一行读内存,但我们要从这一行里取多个数值,每次读写数值的时候这个CL是无可避免要消耗掉的。

tRCD:RAS to CAS Delay,激活内存中的一行后(激活动作)到读写动作(READ/WRITE)所需要消耗的时间。如果我们是在同一行进行读写的话,不需要重新激活行的情况下,tRCD的时间只需要消耗一次。

tRP:Row Precharge Time。有的时候我们需要取消一行的激活,再去激活另一行以读取数据,这一部分需要对内存行进行充电,这个时间的损耗就是tRP。

tRAS:Row Active Time。在激活一行的命令到预充电命令前的准备时间。可以看到这个时钟周期就比较大了。

假设我们有一个很大的1维的数组和一堆很小的1维数组,如果前者安排在了连续空间里,那么tRCD、tRP、tRAS的损耗就小,否则tRCD/tRP/tRAS的时间损耗就比较大,这些都是overhead。一个好的BLAS不仅能够利用好的指令集高速计算出我们需要的结果,同时对于底层C代码对内存的管理应该也有一个较清楚的认识。

最后还是告诫大家,不要迷信高主频的内存,如果你工作在1600MHz的内存CL=8,每次取出一个数据的时间和工作在2000MHz@CL=10,2400MHz@CL=12的内存就是一个速度,根本起不到超频提速的作用。对于给内存超频的狂热玩家经常能发现,超频之后为了保证内存工作稳定只能调高CL,这不是跟没超频一样吗?又能超频,又能保证低CL的内存一般都是大厂某一批次品质特别好的产品,而如果品质比较均匀的话,人家自己不会标一个更高的参数来卖吗?只有品质不均匀的产品你才有机会通过超频或者降低CL来发现自己买到了超值的内存。要说我的经验的话,我对超频已经不感冒了,一般只会看DDR4(不能插在只支持DDR3的主板上,反之亦然)的频率和CL,买回来直接默认使用。

FPGA篇

  

  

图:之前的双雄,现在有一家被收购

在Intel收购FPGA两大巨头之一的Altera之后,现在我们在FPGA市场上就有个新的双雄:Xilinx和Intel。前一阵子我还在婊Xilinx长期做视频采集产品,对深度学习嗅觉太差,听说百度用的是Xilinx的方案,我们就来看一下国内拿FPGA做深度学习的厂子,有的自己做基础设施,有的卖产品,有的搭载云服务,各有侧重,今天就不赘述了,因为有人会问了——

『你说的这个FPGA,我怎么没听说过啊。』

是的,就像你5年前不知道NVidia做GPGPU卡已经如火如荼一样自然,因为它已经改变了行业生态,却还没有改变人类的生活,不做技术也不做技术公司投资的你,嗅觉不够灵敏是很自然的事情。

如果说我们的CPU、GPU是依靠着定长流水线+接受高级指令+转化低级指令+计算实现『通用计算的话』,FPGA(Field-Programmable Gate Array)就是一个灵活性不算高,但是用可编程门阵列实现指令、算力也不低的这样一种方案,它的灵活性介于CPU/GPU和ASIC之间。好吧,又是一个新名词,ASIC?Application-specific integrated circuit,专用集成电路,常见于只做SHA256一个任务的比特币矿机。

因为每次改变计算任务或者网络结构都要重新『烧』一次FPGA,我们还不如用FPGA来充当『训练好的模型对外提供深度学习预测』这样一个角色。GPU训练,FPGA预测。All good。在云端,Intel公司已经被解除了Xeon Phi产品的禁运,并且希望在2017Q3 推出 CPU / XeonPhi / Altera X系列异构计算HPC私有云服务,但由于每次新部署的warm up都有几十毫秒延迟,所以不如只用FPGA来做Inference,也就是模型建立好之后的预测部分。

  

我的小钢炮FPGA板卡预订了杭州加速云的FPGA解决方案,使用了Intel Atera Arria 10,算力9.2T,单价2万左右,和搜狗、讯飞、腾讯都有合作的这么一家初创公司。卖断货啦!3月才能拿!

平台篇:CPU/主板芯片组/主板板型

因为对CPU的需求不高,这次的小钢炮我买了廉价的Z170MX(3PCI-E插口版本)+i5作为方案。如果你觉得对CPU矩阵计算的要求也比较高(比如一些单次矩阵计算的任务,不适合拿进GPU算了一次再拿出来),建议使用X99+E5-2679v4(ES,QS等非盒装产品)这样的组合,经某些土豪实测,E5不仅跟Intel MKL 这个BLAS更搭配,而且2679也拥有牛逼的L3 Cache和性价比。

  

图:20核,睿频3.3GHz,50MB,非正常渠道购买性价比极高

现在要聊聊坑爹的主板芯片组了,自从Intel在05年把NVidia的芯片组排挤出市场之后,就开始了它的邪恶计划:拼命的把一些增强功能压到最底。比如,Z170芯片组全系列最大PCI-E通道只有20,这说明什么?

如果我要同时用1080显卡,M.2 SSD 以及PCI-E SSD,PCI-E FPGA,那么全部在工作的它们一定不会满速度I/O,何其可恶。如果你要用更好的显卡,你的钞票就开始熊熊燃烧了。购买一个合理的搭配真是太难了。

板型我挑选的是半大不小的M-ATX板型。ATX>M-ATX>ITX,主板的大小基本就这三种,购买的时候注意和机箱搭配即可。一般ITX板型很难有3个以上的PCI-E插槽和2个以上的内存插槽,这也是它的局限性之一,你要它小巧,就不能指望它功能强大。

再说说双显卡方案,我刚才已经说了,如果你想用双卡的方案,一定还是要挑选PCI-E通道数较多的主板,比如X99芯片组的微星X99 SLI。它拥有28Lane,尽管这个仍然不能满足我的需求,但是至少,如果我只用1个PCI-E SSD的话,那么我的显存I/O还能工作在一个16x,一个8x的速度上。如果我一直在处理PCI-E I/O密集型的计算任务,这种提升也算是聊胜于无吧。一般双显卡会要求更大的机箱、更大的主板板型、更好的散热,这些可能不会带来成本的提升,但是你不要忘了最重要的一点:你很可能需要一个功率更大的、转化效率更高的电源。对于Pascal这一代显卡来说,多插一块1080带来额外的200W功率的需求,也不是特别难选,但电源的成本可能会上升三四百。

我对电源的主力选择:国产奇葩(正面意义)振华金蝶,性价比较高。土豪可以自由选择海盗船高功率版本(比如双卡1080选用750瓦上下,转化率90%以上的电源刚好能够达到最佳工作点。)

  

组装篇

呸,应该叫配置环境篇啦。组装这种事情还有大大小小的坑,可以使用京东装机服务、门店的装机服务,女生的话可以考虑计算机系和电子系好人男同学的服务。(泥垢)

CentOS 7 + GCC 4.8.5 + OpenCV 2.4.9.1 + CUDA 7.5 + CUDNN 5

Ubuntu16.04.1 + GCC 5.4.1 + OpenCV 3.2 + CUDA 8.0 + CUDNN 5.1

这两个版本工作的还是比较稳定的,如果非要说不稳定,那么我要甩锅给OpenCV好了。

(我用OpenCV生成样例数据的时候遇到Core Dump的几率极高,只能写一个防止卡死、防止Core Dump的wrapper脚本来重启生成数据的脚本。)

最后...

还是要建议大家,量力而为、

量力而行、量力而买买买。

深度遮百丑

调参毁所有

Have fun!

-END-

将门是一家专注于加速及投资技术驱动型初创企业的创投机构。

我们为技术驱动型的创业公司对接标杆企业用户、连接产业资源并提供众多战略投资机会。

将门旗下的基金将会重点投资通过技术创新激活商业场景,实现商业价值的初创企业。关注领域包括:1)机器智能;2)物联网;3)自然人机交互;4)企业计算。

获取将门投资>>bp@thejiangmen.com

  点击右上角,把文章分享到朋友圈

  将门创投

  让创新获得认可!

  微信:thejiangmen

  service@thejiangmen.com

mt.sohu.com true 将门创业 https://mt.sohu.com/20170228/n481905965.shtml report 13908 本文经授权转载自微信公众号:一盘散沙的工作间已经2017年了,从90年代初的品牌机流行,90年代末的组装机流行,2000-2010桌面级逐渐被移动PC/Mac取
阅读(0) 举报
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。

热门关注

搜生活

搜生活+关注

搜狐公众平台官方账号

MAGIC杨梦晶

MAGIC杨梦晶+关注

生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者

搜狐教育

搜狐教育+关注

搜狐网教育频道官方账号

星吧GEO

星吧GEO+关注

全球最大华文占星网站-专业研究星座命理及测算服务机构

热门图片

  • 热点视频
  • 影视剧
  • 综艺
  • 原创
锦绣缘

同步热播-锦绣缘

主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
神雕侠侣

大结局-神雕侠侣

主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
封神英雄榜

同步热播-封神英雄榜

主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓

六颗子弹

主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
龙虎少年队2

龙虎少年队2

主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔

《奔跑吧兄弟》

baby14岁写真曝光

《我看你有戏》

李冰冰向成龙撒娇争宠

《明星同乐会》

李湘遭闺蜜曝光旧爱

《非你莫属》

美女模特教老板走秀

《一站到底》

曝搬砖男神奇葩择偶观

搜狐视频娱乐播报

柳岩被迫成赚钱工具

大鹏嘚吧嘚

大屁小P虐心恋

匆匆那年第16集

匆匆那年大结局

隐秘而伟大第二季

乔杉遭粉丝骚扰

The Kelly Show

男闺蜜的尴尬初夜

我来说两句排行榜

客服热线:86-10-58511234

客服邮箱:kf@vip.sohu.com