2023「炼丹」GPU选购指南来了:英伟达3080和4070Ti成性价比之王

Alex 发自 凹非寺

量子位 | 公众号 QbitAI

春暖花开,各位深度学习er想不想给自己的「丹炉」升级一波?

「炼丹」爱好者们应该知道,在该领域中,**GPU的总体表现完胜CPU。

那麽GPU应该怎麽选?不妨来看看这篇超级详尽的「2023版GPU选购指南」。

知名测评博主、华盛顿大学在读博士Tim Dettmers亲测後,写下万字长文,手把手教你Pick性价比最高的显卡,避免踩雷。

△光是目录就有这麽长……

至於谁是性价比之王,不卖关子,这里先放上Tim哥的结论:

对於16位训练过程,RTX 3080的性价比最高;对於8位和16位推理,RTX 4070Ti的性价比最高。

有意思的是,不只这俩,他在本文推荐的显卡全是英伟达家的——Tim哥觉得,对於深度学习,「AMD GPU ROCm」目前还打不过「NVIDIA GPU CUDA」。

手把手教你挑GPU

Tim哥自制了一张表格,展示出在训练和推理过程中,一美元能买到多少算力;这在一定程度上体现了英伟达众显卡的性价比。

△蓝色-16位训练;红色-16位推理;黄色-8位推理

看到这个,你可能一脸问号:从表格来看,不是RTX 4080在8位和16位推理上的性价比更高吗?

其实,咱们开头说的是「综合性价比」——

除了看一美元能买多少算力,还要结合显卡的运行成本,比如电费。所以总的来说,还是RTX 4070Ti的性价比更高。

虽然RTX3080和RTX 4070 Ti性价比高,但这俩的内存是个明显短板:

Tim哥指出,12GB在很多情况下都不够用,要运行Transformer模型的话,至少需要24GB。

於是,Tim哥又贴心地做了一个小程序,帮你根据不同的任务选择最合适的GPU。

其背後的核心思想是:不管干啥,一定要保证GPU的内存满足你的需求。

首先,要弄清楚这个GPU是个人用还是公用,还有就是要处理什麽任务——比如,是要训练语言大模型(LLM)吗、参数量有没有超过130亿?还是就做点小项目?

然後再根据自己的钱包情况,参考上面的表格,选择最合适的GPU。

举个例子:

如果要训练LLM且参数量超过130亿,不差钱的可以选择支持Azure公有云的A100或者H100;追求性价比的话,可以选支持AWS的A100或者H100。

但如果预算实在有限,建议放弃……

(在亚马逊上,40GB的英伟达Tesla A100售价为11769美元起,约合人民币79529元。当然这都是针对国外的情况,在国内炼丹仅供参考)

另外,Tim哥还支了一招:最好用云GPU(比如Lambda云)来估测一下所需的GPU内存(至少12GB用於图像生成,至少24GB用於处理Transformer)。

其实假如GPU仅偶尔使用(每隔几天用几小时),甚至都不用去买个实体的,用云GPU就可以了。

对了~如果你真的不在乎这点(?)钱,就要追求极致性能,那可以看看这张表,即GPU的原始性能排行。

那如果实在钱不够,即使是Tim哥推荐的最便宜的GPU也买不起,还有办法吗?

那可以考虑二手呀!

先去买个便宜的GPU用於原型设计和测试,然後在云端进行全面的实验和测试。

关键性能点有哪些?

盘点完英伟达的一堆GPU後,再来叙一叙关乎深度学习速度的几大GPU性能关键点。

(如果你想稍微深入了解一些,请接着往下看。)

Tim哥指出,重点有四:GPU的内存、核心、Tensor Core和缓存。

而其中最重要的是Tensor Core。

Tensor Core是英伟达为其高端GPU开发的一项技术,本质上,就是加速矩阵乘法的处理单元。其中Tensor即张量,是一种能表示所有类型数据的数据类型。

Tim表示,在所有深度神经网路中,最昂贵的部分是矩阵乘法,而有了Tensor Core,运算速度会变得非常快,有助於大大减少成本。

就拿一个入门级的32×32矩阵乘法来说,通过Tensor Core,将矩阵乘法的运算时间从504个周期,降低到235个周期,直接减半。

而且即便是超大规模的矩阵运算,Tensor Core也能轻松处理。在规模堪比GPT-3的训练中,Tensor Core的TFLOPS利用率也就约为45-65%。

而当两个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倍。

Tim哥表示,上述性能点,他在统计英伟达GPU性能时都考虑在内了。

如果你把这些东西吃透了话,以後就能完全靠自己配置出最合适的「炼丹炉」了。

原文传送门:
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

什么是Chat GPT

0 0 投票数
Article Rating
订阅评论
提醒
guest
0 Comments
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x