你好,游客 登录
背景:
阅读新闻

如何配置一台适用于深度学习的工作站?

[日期:2017-09-28] 来源:pmtoo  作者: [字体: ]

  学习机器学习相关的算法和演练流行的平台或框架,不需要特别强大的设备。

  看了一堆反馈,来破除几个误区:

  1. 所谓深度学习机器:没有这种特殊的机器,有带 CUDA 显卡的机器就是可以拿来学深度学习的 , 在售的多数所谓的科学计算机只是 CPU 和显卡比较多而已 ( 超算机不在讨论之列 ) 。

  2. 为了深度学习组专用平台: 没有这个必要,只是学习的话,随便找个电脑加一片显卡即可。

  3. 深度学习是不是要特别高的配置:我见过有个兄弟用笔记本 ( MBP ) 玩 RCNN 也玩得很 high。

  4. 跑时间长了会不会烧掉? 完全没有烧掉机器的可能,最多是你散热不行机器停机或是死机就是极限了,遇到所谓烧板子的情况与你的负载关系不大,多半是板子本身就坏掉了。

  下面说的话题是,如果刚好要新装电脑,如何做一台容易按需扩展的经济型电脑。

  另外如果你是做视频或图形相关的机器学习,那么恭喜你,你将会是显存使用大户,下面低预算的讨论不适合您,请看楼上哪些配 Titian 的帖子。

  ------------------------------

  如果是在中国大陆,那些用云计算做深度学习的建议都可以忽略。因为,根本没法用。

  1. 关于 AWS 的深度学习 : aws 在中国大陆的接入速度是世界一流的慢。如果你有个 20G 的样本需要拿上去,你可以准备上几天的时间用来上传 , 就算你有 VPN 一类的出墙工具时间开销还是很呵呵的。

  2. 关于 ali 的深度学习。一切都挺好的,也没啥问题,就是贵了点点。9000 块包月,40 块钱 / 小时的价格对个人学习来说这个网吧有点感人。

  所以对个人来说买个小电脑,老老实实本地玩才是根本出路。下面说说如何选小电脑。

  关于主板:

  项目刚刚开始的时候其实很难估计自己对 cuda 和 CPU 的需求。选一个有足够 PCI-e 插槽的板子显得比别的都重要,切勿选择一些小板,只有 2 个内存插槽或只有一个 PCI-e,待你需要扩展内存和显卡的时候只能整体换掉。板子上只要 PCI-e x4/8 的数量足够多即可,不必追求 X16 插槽特别多。

  关于 PCI-e:

  现在的 E5 CPU 每路处理器都带 40 lane 的 PCI-e 接口,也就是说单路 CPU 最多支持 16x+16x+8x 的配置,如算上板载的一些扩展接口的需要,往往会低于这个数量的扩展口。对于游戏来说使用 16x 的 PCI-e 可以获得不显著的 FPS 提升,但对于机器学习的场景而言,8X 的通道就远足够了。PCI-e 4x 和 8x 的数量直接决定你能扩展的显卡数量。获得额外的 PCI-e 接口的渠道有三类:

  1. 多个 CPU,每个 CPU 都有独立的 PCI-e Lane x40,CPU 越多,主板可能扩展的 PCI-e 也越多。这也是为何推荐双路的原因。

  2. 扩展芯片,C602/X99 这类芯片组会扩展 20 路左右的 PCI-e Lane,因此可以获得额外的通道,这些通道是通过 DMI 桥接的,性能上与原生的几乎没差别。

  3.bridge/switch,这只对设计专用主板的场景适用,市面上几乎找不到有此类扩展的板卡。

  所以从扩展角度来说类似下面这样的板子就是非常喜人的。

  

 

  一旦选定了此类板子,直接会面临卡插不进的尴尬 --- 接口不符合,且显卡宽度会占用掉两个卡槽,所以会用到这种转接线,缺点是需要自己定制机箱,对动手能力要求较高。

  

 

  所以你装出来的机器基本和挖矿机是一样的,架子也可以直接买挖矿的。唯一不同就是 PCI-e 接口用原生的,而不是挖矿的转接口。

  

 

  对喜好普通塔式的需求而言,用下面这样的板子比较方便装机,反正你以后也不会装很多显卡进去,3 块到头了。

  

 

  所以如果自用,建议直接组个上一代的 E5 套装即可,一般 2.5K 左右可以搞定主板,内存和 CPU。性价比是关键。这 2500 你大概可以得到一个 8 核 E5+32G 内存的基本配置。内存在此类主板上有 24 个插槽,以后再慢慢加。为何选上一代的?唯价格便宜,隔代的服务器组件单价比家用低很多,现在正是两代交替的时候,性能相近,但价格喜人所以十分合适。短 PCI-e 槽自然越多越好,锯掉后槽也能插卡的。

  当然,如果有新款癖,看着上代机会感觉吃了苍蝇一样难受。但看价格,性能和指标心里方能舒坦。

  训练时间比较长所以 DDR3-REG 是不错的选择,保证在内存环节不出错。这类板子一般都支持 2 个 CPU,起步时候配上一个 CPU 和配套的内存即可。CPU 选择建议选较少核心较高频率的比较合适。没有必要像游戏机一样追求极致的 " 顶配 ", 下图是我的工作笔记本和游戏机 " 标配 "6700 对比。可见 CPU 性能最近几年红利已吃完,各个档次拉不开差距。追求性价比才是王道。

  

 

  说到同级别的处理器,不拿来打游戏和超频的话,E5 系列会是个不错的选项。几百块钱的 TB 价格,相比 2500 一颗的 6700 不差多少,只是单核性能略有吃亏。省下银子来升级显卡才是王道。另外还获得双路的福利,这在桌面端的配备里面可是没有的。

  这类服务器用的东西由于批量很大,流通不是特别顺畅,内存和 CPU 价格比起消费端的设备来说很有优势,可以考虑捡点洋垃圾,TB/eBay 上采购还是很便利的。如发现 CPU 和内存带宽不足的时候,启用另外一个通道会是不错的体验。双路还有一个优势,如果主板选择得当 PCIe 也是双路的。

  关于点亮卡:

  类似于 TenseFlow 一类的框架,通常都泡在 Ubuntu 的机器上。此时 CUDA 环境和驱动安装后,如果 GUI 跑在 NV 卡上,TenseFlow 会无法使用此卡作为计算单元。如不想动手改造框架用一张专门的显卡来跑 GUI 才是最简便的办法。专门用来跑 GUI 的显卡,就是点亮卡,. 它不需要 CUDA 或其他特别的计算能力,最低配即可,好在服务器主板上都自带一个显卡,如不自带买一个 50 块钱的凑合即可。

  关于计算卡:

  显卡才是关键的要素,组机器来搞深度,就是为了获得足够的 CUDA 单元,以及配套的显存资源。所以数 CUDA 个数和单个 CUDA 可用的平均显存量就是衡量整体能力的基本考量方法。GPU 尽管也存在频率和显存带宽的差异,但上下不会超过一半性能,对于这种一拥而上的集群运算个人觉得无所谓了。

  起步建议 GTX 1060 比较合适,一般 1500 以内可以搞定 , 学艺不成打打游戏也还是不错的。待逐步搞清楚项目对计算量的需求后再按需添加其他卡。通常双路主板都有 6 个以上的 PCI-e, 组一个 6 卡的计算单元是没有问题的。

  显卡计算单元的价格,按指正重新修改了一下。

  1060 有 1000+ CUDA 单元,均价 1.3rmb/cuda.

  1070 有 1960 CUDA 单元, 均价 1.5rmb/cuda

  1080 有 2560 CUDA 单元, 均价 2rmb/cuda

  TITAN 3500+ CUDA, 均价在 2.8rmb/cuda

  考虑到扩展可能性,1060 尽管经济,但是它直接要占一个卡位 , 只适合前期摸索时用。搞 CNN,特别是 RCNN 的要小心掂量,这显存够不够你老人家玩的。而 1070 的密度和单价是比较合适的,适合大量扩展用。1080 性价比上看起来就不那么划算,TITAN 就更不划算了。但有时按照实际的需求会需要用到超大的显存,这时候 TITAN 就成了唯一的选项。前阵子我们也遇到了显存的问题,原本打算卖血上 Quadro 的,最后添了几片 1070,人为的减少一部分 CUDA/ 每卡用量就搞定了,省下的钱直接狂吃一通火锅。

  特别需要注意的是,千万别买同级别的 AMD 卡,NVida 的支持远好过 ( 主要是兼容性 ) AMD. 不然你拿着一个框架的花时间调显卡兼容性就苦逼了 ( 不是说 openCL 不行,只是跟随主流,把精力专注在事务本身 ) 。

  电源是需要注意的,后期你可能会插很多 GTX 显卡,每片极限功耗都在 150w 上下,平时的功耗都只在 100W 左右,所以整机配备一个 1000W 或是 1400W 的电源是必要的 , 如果只需要 3 块以内的显卡,750W 的电源足矣。预算紧张的情况,没必要花特别多的钱在电源上。性价比来说也是服务器电源比较合适,通常 200 左右可以就可以买到。而电脑游戏机的电源一般都夸大电源的差异,他们习惯在上面加两个彩色灯泡就价格翻倍,相信我,你多花的钱真心只是买到了灯泡而已。电源只要功率足,动态负载和纹波指标满足就没什么大的区别,服务器的电源这方面是绝对能保障的。如果直接用服务器的电源,你会买到这样的东西:

  

 

  上面这是一个 DELL 的 1200W 电源,价格十分昂贵,需要花掉你大概 150 块人民币。但看着后端光秃秃的接口你会想如何引线。此时你会需要用到下面的这种东西 -- 所谓的 :

  " 电源笼子 ",这玩意几十块钱就能弄到。

  

 

  这么一来就可以用不到 200RMB 的成本获得 1000W+ 的高质量电源。

  硬盘方面:

  PM961 或是 960EVO 是不错的选择,务必直接选配 512G 以上的,SSD 的性能和容量是同步的,容量小速度就慢,这点和机械硬盘是不一样的。另外 LOG 和 Data 的存放再配个 3T 的盘就可以了。实际训练时,把数据从硬盘复制到 SSD 再开始,这能省掉你不少时间。但对刚开始的新人来说 PM961 显得价格有些不友好,此时可考虑 Intel 的 600P, 价格喜人保修也还算有保障。SSD 切勿买 SATA 接口的,直接上 M2 的盘,用下面这种转接设备可以获得超过 6Gbps 以上的传输速度,缺点就是占用 PCI-e.

  

 

  所以对个人配备而言,除去显示器。入门款整套下来起步 6000 左右就可以应付了。但扩展空间是很可观的。

  CPU 可以扩到 16 core 32VPU.

  内存单条 8G 的可以扩大到 192G ( 估计你也用不到这么多 ) 。

  GPU 后期可以扩展到 5 片 1070-1 万个 CUDA 单元,对一般的任务而言足够了。

  最后,切记数据用完放回到 HDD 上 ,SSD 越满越慢,每次腾空是个好习惯。

  貌似有人对怎么个 6000 比较感兴趣,简单的列一下 :

  CPU x1 e5-2670 650RMB

  RAM 32G 125*4 = 500RMB

  主板 : 关键字 "2011 C602" 如:S2600CP2 (支出控制在 1500 以内)。

  电源 :200RMB

  组合下来 = 650+500+1500+200 = 2850 ,3500RMB 略有余量可以适当调整。

  这种四件套主要是用上一代的 CPU 和内存来省钱。淘宝上有人卖整套,找卖主板的帮你配好即可。只是需要注意:挑个好壳子。

  ssd :入门省省,256 intel 600P - 700RMB / 如果对 io 要求高可以搞 PM961-512 大概 1300RMB

  显卡 :gtx-1060 1300RMB

  其他杂碎:500RMB

  HDD: 3T -600RMB

  3500+700+1300+500+600 = 6600

  算算,小破 6000,不要两三万我等屌丝也能玩 DL。

  知乎这不用表格很是难受啊,什么时候支持 markdown?

  按照最野蛮的路子,大概机器会长成这个样。图片是别人的,不然就不密了:)

  

  图片上这种机器也就是样子比较规整,实际上与上面组出来的无异,但平台价差是巨大的,此类平台不含卡都在 2 万以上,但自己组同功能的平台配满 CPU 和内存不到 1 万块就搞定了。自己弄心里清楚整体怎么回事,调整起来也方便。

  本文来自知乎。

  产品中国-产品经理门户原创,作者:zhaolei,转载请注明出处:http://www.pmtoo.com/article/32218.html

收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款