英伟达机器学习显卡一览
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 |
参考文献:
- Tim Dettmers. 如何为你的深度学习任务挑选最合适的GPU http://www.sohu.com/a/129428223_465975 [return]
- CUDA https://en.wikipedia.org/wiki/CUDA [return]
- Geforce系列 http://www.geforce.cn/hardware [return]
- List of Nvidia graphics processing units https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units [return]