公司需要进行深度学习方面的探索,所以让我选择和配置机型,并安装当做前期开发使用。综合价格、GPU扩展4个、兼容性参考(https://pcpartpicker.com/)等因素买了以下的硬件,总价在39000元。
型号 | 网址 | 单价 | |
1. CPU | i7-7820x 8核16线程 | https://item.jd.com/5251872.html | 4499 |
2. 主板 | 技嘉(GIGABYTE) X299-WU8 | https://item.jd.com/100001121024.html | 4798 |
3. GPU | 英伟达(NVIDIA) GeForce RTX 2080 Ti Founders Edition | https://item.jd.com/8858025.html | 9999*2 |
4. 内存 | 金士顿骇客神条DDR4 16G 2666 | https://item.jd.com/8391349.html | 789*2 |
5. 固态硬盘 | 三星(SAMSUNG) 512G | https://item.jd.com/6680360.html | 1199 |
nvlink桥 | NVIDIA GEFORCE RTX NVLINK BRIDGE 4-SLOT | https://item.jd.com/100000971978.html | 699 |
6. 机械硬盘 | 西部数据(WD)蓝盘 2TB | https://item.jd.com/100000961842.html | 369 |
7. 散热器 | Tt(Thermaltake)蛟龙 360水冷 | https://item.jd.com/7763387.html | 879 |
8. 机箱 | 美商海盗船AIR780T全塔 | https://item.jd.com/1209630.html | 1259 |
9. 电源 | 美商海盗船USCorsair 1600w | https://item.jd.com/8850977.html | 3449 |
1. CPU
尽量选择PCIe较多的服务器版cpu。独立显卡、ssd等硬件基本使用PCIe传输,如果cpu本身PCIe通道多,在传输输信息时会更快,当只有一个GPU,PCIe通道的作用只是快速地将数据从内存传输到显存。但是网上也说影响不是太大,ImageNet里的32张图像(32x225x225x3)在16通道上传输需要1.1毫秒,在8通道上需要2.3毫秒,在4通道上需要4.5毫秒。这些只是是理论数字,实际上PCIe的速度只有理论的一半。PCIe通道通常具有纳秒级别的延迟,因此可以忽略延迟。
同时每个GPU至少4个线程,两个CPU核心;貌似提前准备好数据处理可以把上面的指标都降低到一半。我考虑价格和cpu核数之后买了这个老版的8核16线程处理器。
2. 主板
买了CPU之后芯片接口定下了LGA2066,主板的类型定下了X299,另外还需要能支持4GPU的PCIe数量和距离。在没有特殊散热的情况下,一般显卡需要占用两个PCIe插槽,所以使用的显卡是公版的牺牲了部分散热性。
3. GPU
显卡的计算能力决定了深度学习的速度,专业的显卡太贵,我们就在桌面显卡中看是否能挑一个性能较好的。显卡有些必要指标显存大于11G、CUDA的算力5以上、散热。bert模型要求显存大于11G,tensorflow现在的要求是CUDA算力在3.5以上,四块的显卡放在一起,主板是刚好满足,但是基本显卡之间没啥空余的位置,散热是一个大问题,当显卡过热降频,引发性能下降30%,那还达不到三块显卡性能。
以为主板的PCIe距离,装2块显卡可以买非公版,自带散热和超频等优化。当要装4块显卡,大小基本只能买公版的,所以买散热器也需要加强很多。
查了一下多块显卡nvidia提供共享内存的协议,买了一块nvlink桥,增加显存的共享,提高执行速度。
显卡的性能对比http://www.mydrivers.com/zhuanti/tianti/gpu/
显卡天梯图2019年2月 | ||||||
---|---|---|---|---|---|---|
GeForce900 | GeForce1000 | GeForce2000 | 显卡等级 | Radeon RX500 | Radeon R400 | Radeon R300 |
RTX2080Ti | ||||||
Titan V | ||||||
高端 | ||||||
Titan Xp | RTX2080 | Redeno Pro Duo | ||||
GTX1080Ti | ||||||
RTX2070 | RX Vega 64水冷 | R9 295X2 | ||||
GTX Titan Z | RX Vega 64 | |||||
GTX 1080 | ||||||
GTX1070Ti | ||||||
RX VEGA 56 | R9 Fury X | |||||
GTX 1070 | RX 590(11月发布) | |||||
R9 Nano | ||||||
GTX1060 GDDR5X版 | RX 580 | R9 Fury | ||||
GTX1060 6G | R9 390X | |||||
GTX1060 5G | 中端 | RX 480 | R9 390 | |||
RX580 2048SP | ||||||
GTX1060 3G | RX 570 | RX 470 | ||||
RX 470D | ||||||
RX 470D | ||||||
GTX1050Ti | R9 380X | |||||
RX 560 | R9 380 | |||||
GTX 960 | GTX1050 | RX 560D | ||||
RX 560 2G版 | R9 370X | |||||
GTX 950 | RX 550 | |||||
RX 460 4GB版 | R7 370 | |||||
GTX 750Ti | 低端 | RX 460 2GB版 | ||||
RX 540 | R7 360 | |||||
GTX 750 | GT1030 | |||||
R7 350 | ||||||
R7 340 | ||||||
R5 230 |
4. 内存
内存考虑CPU的时钟频率就是DDR4-2666,大小必须是显存以上,现在的显卡为11G*2=22G,还有你使用的数据量,有些数据的处理工作比较耗费内存,所以买了16G*2。
5. 固态硬盘
在跑hadoop程序时发现磁盘的io一直拖慢了集群的性能,在模型迭代训练时,数据是分批次和多次重复读取,当数据增加时io也会增加模型计算时间,同时为了安装系统和计算框架等我选择512G的主流容量。
6. 机械硬盘
为了方便测试模型,我们使用Jupyter Notebook在服务器上测试,尽量数据一次性导入,我就另外配置了2T的磁盘。
7. 散热器
单个GPU风冷可以满足,价格及后期维护成本较低。当几个GPU时,必须使用水冷或者放在恒温机房靠近机房的风口位置,活着就是安装水冷,一般价格为700元一个GPU,还有CPU的部分。现在我的机器只有两个GPU准备放机房对空调对着方向,暂时只买了单个水冷和机箱上内置的风扇。
8. 机箱
机箱是考虑以后安装水冷和4*GPU的情况下,防止空间不够选择了全塔的,因为空间大了很多散热相对好一点,最好买游戏等性能机箱。
9. 电源
一个显卡的功率估计在300w,还有CPU功率在150w,另外还有风扇等配置为CPU和GPU的10%,300*4 + 150 + 135=1485,所以买了一个1600w的电源。