学习深度学习,显卡(GPU)可以说是比不可少的投资。本文试图探究哪个GPU才是学习入门性价比最高的?
为什么深度学习需要GPU?
我们先来比较一下CPU和GPU的不同,下图是一个简化的处理器内部结构图[1],其中:
- DRAM即动态随机存取存储器,是常见的系统内存。
- Cache存储器:电脑中作高速缓冲存储器,是位于CPU和主存储器DRAM之间,规模较小,但速度很高的存储器。
- ALU算术逻辑单元是能实现多组算术运算和逻辑运算的组合逻辑电路。
我们可以很明显地看出,GPU拥有更多ALU,能够进行强大的计算。CPU是一个有多种功能的优秀领导者,优点在于调度、管理、协调能力强,计算能力则位于其次。GPU相当于一个接受CPU调度的“拥有大量计算能力”的员工。
深度学习需要进行大量的矩阵运算,GPU刚好满足了这一要求。同时GPU还有其他优点:
- 高带宽:CPU更擅长于快速获取少量的内存,GPU则更擅长于获取大量的内存[2]。运算矩阵乘法A×B=C为例,将A、B复制到显存上比直接计算A×B更耗费资源。也就是说,如果你想用LSTM等处理大量小型矩阵乘法的循环神经网络,显存带宽是GPU最重要的属性[3]。
- 多线程并行:GPU提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算。 并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题[4][5]。
如何选购显卡?
针对不同深度学习架构,GPU参数的选择优先级是不一样的,总体来说分两条路线:
卷积网络和Transformer:张量核心(GPU)>FLOPs(每秒浮点运算次数)>显存带宽>16位浮点计算能力
循环神经网络:显存带宽>16位浮点计算能力>张量核心(GPU)>FLOPs
Tim Dettmers对比了各个厂商的显卡,绘制了下图:
总之,根据量子位对Tim Dettmers博文的翻译,在GPU的选择上有三个原则:
- 使用GTX 1070或更好的GPU;
- 购买带有张量核心的RTX GPU;
- 在GPU上进行原型设计,然后在TPU或云GPU上训练模型。
针对不同研究目的、不同预算,Tim给出了如下的建议:
- 最佳GPU:RTX 2070
- 避免的坑:所有Tesla、Quadro、创始人版(Founders Edition)的显卡,还有Titan RTX、Titan V、Titan XP
- 高性价比:RTX 2070(高端),RTX 2060或GTX 1060 (6GB)(中低端)
- 穷人之选:GTX 1060 (6GB)
- 破产之选:GTX 1050 Ti(4GB),或者CPU(原型)+ AWS / TPU(训练),或者Colab
- Kaggle竞赛:RTX 2070
- 计算机视觉或机器翻译研究人员:采用鼓风设计的GTX 2080 Ti,如果训练非常大的网络,请选择RTX Titans
- NLP研究人员:RTX 2080 Ti
- 已经开始研究深度学习:RTX 2070起步,以后按需添置更多RTX 2070
- 尝试入门深度学习:GTX 1050 Ti(2GB或4GB显存)
更新:2020.09.09
Nvidia出了新显卡,号称半价买泰坦。大家可以看看下面这篇文章
时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?
参考
- ^GPU与CPU比较,GPU为什么更适合深度学习? http://www.sohu.com/a/335453643_468740
- ^为什么GPU对于深度学习如此重要? https://www.jianshu.com/p/d21f49b4cd72
- ^深度学习GPU最全对比,到底谁才是性价比之王? | 选购指南 https://zhuanlan.zhihu.com/p/61411536
- ^GPU与CPU比较,GPU为什么更适合深度学习? http://www.sohu.com/a/335453643_468740
- ^GPU(下):为什么深度学习需要使用 GPU? https://blog.csdn.net/qyf__123/article/details/100147909