英伟达机器学习显卡一览

1. GPU的重要性

深度学习是一个计算密集型领域,而 GPU 的选择将从根本上决定你的深度学习实验。没有 GPU,一个实验也许花费数月才能完成,或者实验运行一天却只关闭了被选择的参数;而一个良好稳定的 GPU 可让你在深度学习网络中快速迭代,在数天、数小时、数分钟内完成实验,而不是数月、数天、数小时。所以,购买 GPU 时正确的选择很关键。[1]

2. 为什么选NVIDIA不选AMD

英伟达GPU、AMD GUP还是英特尔的Xeon Phi? 英伟达有CUDA[2],而目前主流的深度学习框架都支持了CUDA,这使得建立第一个深度学习库很容易。 但没有适合AMD的OpenCL那样强大的标准库。目前还没有适合AMD显卡的深度学习库——所以,只能选择英伟达了。 对于CUDA来说,GPU计算或者GPGPU社区是很大的,对于OpenCL来说,则相对较小。因此,在CUDA社区,有现成的好的开源解决方案和为编程提供可靠建议。

至于英特尔的Xeon Phi,广告宣称你能够使用标准C代码,还能将代码轻松转换成加速过的Xeon Phi代码。听起来很有趣,因为你可能认为可以依靠庞大的 C 代码资源。但事实上,其只支持非常一小部分 C 代码,因此,这一功能并不真正有用,大部分 C 运行起来会很慢。Xeon Phi的MKL(数学核心函数库)并不兼容 NumPy。

CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动。

3. 选哪个型号的GPU

3.1 主要看内存带宽

用于深度学习的CPU,最重要的性能特征是内存带宽。而不是cuda内核、时钟速度或RAM。 相对于CPU而言,GPU通过牺牲内存访问时间(延迟)而优化了内存带宽;由于其内存带宽,GPU 擅长处理占用大量内存的问题,比如矩阵相乘。当然GPU和CPU之间还存在其他更复杂的差异。

带宽可直接在一个架构内进行比较,例如, 比较 Pascal 显卡 GTX 1080 与 GTX 1070 的性能;然而, 在多个架构之间,例如Pascal对于Maxwell就像GTX 1080 对于GTX Titan X 一样,不能进行直接比较,因为加工过程不同的架构使用了不同的给定内存带宽。

3.2 NVIDIA显卡列表

英伟达显卡分为三个系列,面向大众的 Geforce系列[3],面向工业图形设计的Quadro系列,面向科学计算的Tesla系列。Geforce系列由于面向大众,要和AMD的显卡竞争,所以性价比最高,单从性能上看甚至不输Tesla系列,但可能耐久性等其他方面不及Tesla。

在给定预算的情况下选择一块最快的 GPU,你可以使用这一维基百科页面(List of Nvidia graphics processing units)[4],查看GB/s中的带宽以及计算能力。

下表是机器学习中目前应用比较火的NVIDIA显卡。对于学习研究而言GTX1080是性价比最合适的选择。

型号 适用机型 GPU CUDA核心数量 内存 内存带宽 峰值双精度浮点性能 峰值单精度浮点性能 价格
Tesla P100 机架式服务器 N/A 4992 24 GB 480 GB/s 5.3 Tflops 10.6 Tflops N/A
Tesla P40
Tesla K80 机架式服务器 2 * Kepler GK210 4992 24 GB 480 GB/s 2.91 Tflops (动态提速频率) 1.87 Tflops (基础频率) 8.74 Tflops (GPU 动态提速频率) 5.6 Tflops (基础频率) ¥40,000
Tesla K40 机架式服务器 1 * Kepler GK110B 2880 12 GB 480 GB/s 1.66 Tflops (动态提速频率) 1.43 Tflops (基础频率) 5 Tflops (GPU 动态提速频率) 4.29 Tflops (基础频率) ¥25,000
Tesla M40 机架式服务器 1 * Maxwell GM200 3072 12 GB 384GB/sec 0.21Tflops 7 Tflops ¥37,000
Titan X 塔式服务器 1 * Maxwell GM200 3072 12 GB 384GB/sec 0.21Tflops 7 Tflops ¥10,000
GTX1080 塔式服务器 1 * Pascal GP104 2560 8 GB 320GB/sec N/A 9 Tflops ¥6,000

参考文献:


  1. Tim Dettmers. 如何为你的深度学习任务挑选最合适的GPU http://www.sohu.com/a/129428223_465975 [return]
  2. CUDA https://en.wikipedia.org/wiki/CUDA [return]
  3. Geforce系列 http://www.geforce.cn/hardware [return]
  4. List of Nvidia graphics processing units https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units [return]