前言
推荐信息由知名测评博主、华盛顿大学在读博士Tim Dettmers提供
对于16位训练过程,RTX 3080的性价比最高;对于8位和16位推理,RTX 4070Ti的性价比最高。
Tim哥觉得,对于深度学习,“AMD GPU+ROCm”目前还打不过“NVIDIA GPU+CUDA”。
手把手推荐挑选GPU
Tim哥自制了一张表格,展示出在训练和推理过程中,一美元能买到多少算力;这在一定程度上体现了英伟达众显卡的性价比。
“综合性价比”——
除了看一美元能买多少算力,还要结合显卡的运行成本,比如电费。所以总的来说,还是RTX 4070Ti的性价比更高。
虽然RTX3080和RTX 4070 Ti性价比高,但这俩的内存是个明显短板:
Tim哥指出,12GB在很多情况下都不够用,要运行Transformer模型的话,至少需要24GB。
核心思想是:不管干啥,一定要保证GPU的内存满足你的需求。
首先,要弄清楚这个GPU是个人用还是公用,还有就是要处理什么任务——比如,是要训练语言大模型(LLM)吗、参数量有没有超过130亿?还是就做点小项目?
然后再根据自己的钱包情况,参考上面的表格,选择最合适的GPU。
那如果实在钱不够,即使是Tim哥推荐的最便宜的GPU也买不起,还有办法吗?
那可以考虑二手呀!
先去买个便宜的GPU用于原型设计和测试,然后在云端进行全面的实验和测试。
关键性能点有哪些?
来叙一叙关乎深度学习速度的几大GPU性能关键点。
Tim哥指出,重点有四:GPU的内存、核心、Tensor Core和缓存。
而其中最重要的是Tensor Core。
Tensor Core
Tensor Core是英伟达为其高端GPU开发的一项技术,本质上,就是加速矩阵乘法的处理单元。其中Tensor即张量,是一种能表示所有类型数据的数据类型。
Tim表示,在所有深度神经网络中,最昂贵的部分是矩阵乘法,而有了Tensor Core,运算速度会变得非常快,有助于大大减少成本。
就拿一个入门级的32×32矩阵乘法来说,通过Tensor Core,将矩阵乘法的运算时间从504个周期,降低到235个周期,直接减半。
内存带宽
而当两个GPU都有Tensor Cores时,要比较它们性能,最佳指标之一就是内存带宽。
例如,A100 GPU的内存带宽为1555GB/s,而V100为900GB/s。因此,A100和V100相比,运算速度大概是后者的1555/900=1.73倍。
由此可见,内存带宽会影响到Tensor Core的性能发挥。
缓存
研究人员开始寻找其他GPU属性,使内存数据传输到Tensor Core的速度更快。
GPU的一级缓存、二级缓存、共享内存和使用的寄存器数量也都是相关因素。
对于缓存来说,数据块越小,计算速度越快;所以需要把大的矩阵乘法,划分成小的子矩阵乘法。研究者们把这些小的子矩阵乘法称为“内存碎片”*(memory tiles)。
一部分“碎片”被加载到Tensor Core中,由寄存器直接寻址。
举个例子~
根据英伟达Ampere架构的规则
把每一个权重矩阵都切成4个“碎片”,并假设其中两个为零——于是就得到了一堆稀疏权重矩阵。
然后把这些稀疏权重矩阵与一些密集输入相乘,Tensor Core功能启动,将稀疏矩阵压缩为密集表示,其大小为下图所示的一半。
在压缩之后,密集压缩的“碎片”被送入Tensor Core,计算的矩阵乘法是一般大小的两倍。这样,运算速度就成了通常的2倍。