文章目录
参考博客
前言
深度学习是一个对计算有着大量需求的领域,从一定程度上来说,GPU的选择将从根本上决定深度学习的体验。
但问题来了,如何选购合适的GPU也是件头疼烧脑的事。
怎么避免踩雷,如何做出性价比高的选择?
一、GPU参数
- GPU架构:
不同款的GPU可能采用不同设计架构,比如GeForce 10系列的GTX 1080/1080Ti采用的是Pascal架构,而GeForce 20系列的RTX 2080/2080Ti采用的是Turing架构。不同架构的GPU,即使其他参数差不多,性能差别可能非常大。 - 显存带宽:
代表GPU芯片每秒与显存交换的数据大小,这个值等于 显存位宽*工作频率,单位为GB/秒,该值越大,代表GPU性能越好。Geforce GTX 1080的显存带宽为320GB/秒,而它的升级版Geforce RTX 2080的带宽为448GB/秒。 - 显存位宽:
代表GPU芯片每个时钟周期内能从GPU显存中读取的数据大小,这个值越大代表GPU芯片和显存之间数据交换的速度越快,性能越好。Geforce GTX 1080的显存位宽为256bit,Geforce RTX 2080Ti显存位宽为352bit。 - GPU工作频率:
代表GPU每秒钟工作次数,单位为MHz,跟CPU的频率类似。该值越大代表性能越好。 - CUDA核心数量:
CUDA核心数量越大越好,Geforce GTX 1080的CUDA核心数量是2560个。而Geforce RTX 2080Ti的CUDA核心数高达4352个。 - 功耗:
GPU能耗,像Geforce这种消费级的显卡一般功耗非常高,Geforce GTX 1080的最大功耗为175W,Tesla P4的最大功耗为75W。像那种数据中心大规模级别的GPU部署,低功耗的显卡一年电费能省很多。
二、GPU排名
知名评测博主Tim Dettmers就针对深度学习领域需要怎样的GPU,结合自身经验撰写了万字长文,最后给出了DL领域的推荐GPU。
1.原始性能排名
下面我们可以看到所有GPU的原始相关性能图表。我们看到,H100 GPU的8位性能与针对16位性能优化的旧卡之间存在巨大差距。
2.性价比排名
下面按8位推理作为最优先性能排序,与所有GPU的每美元性能图表。如何利用图表找到适合自己的GPU如下:
1、确定所需的GPU内存量(粗略启发式:用于图像生成领域至少12 GB;用于transformers至少24 GB)
2、虽然8位推理和训练是实验性的,但它将在6个月内成为标准。您可能需要做一些额外的困难编码工作与8位在此期间。你觉得可以吗?如果不是,请选择16位性能。
3、使用(2)中确定的指标,找到具有最高相对性能/美元的GPU,该GPU具有所需的内存量。
我们可以看到,RTX 4070 Ti对于8位和16位推理最具成本效益,而RTX 3080对于16位训练仍然最具成本效益。虽然这些GPU是最具成本效益的,但不一定推荐它们,因为它们没有足够的内存用于许多工作。然而,它可能是开始深度学习之旅的理想卡片。其中一些GPU非常适合Kaggle竞赛,因为人们通常可以依赖较小的模型。由于要在Kaggle比赛中取得好成绩,你的工作方法比模型的大小更重要,因此许多较小的GPU都非常适合Kaggle比赛。
学术和创业服务器的最佳GPU似乎是A6000 Ada GPU(不要与A6000 Turing混淆)。H100 SXM GPU也非常具有成本效益,并且具有高内存和非常强大的性能。如果我为公司/学术实验室构建一个小型集群,我会使用66-80%的A6000 GPU和20-33%的H100 SXM GPU。
三、GPU建议
有一个创建推荐流程图,你可以看到下面(点击这里:互动应用程序)。虽然这个图表在会帮助你,但它也可能可能不太适合你,因为这些选项太机械了。在这种情况下,请尝试查看上面的基准测试,并选择最具成本效益的GPU,这里只是提供一些如何选择的思路。
四、Tim Dettmers 的 QA
1.我没有足够的钱,即使是你推荐的最便宜的GPU。我能做什么?
购买二手GPU。您可以购买一个小型便宜的GPU进行原型设计和测试,然后将完整的实验推广到云端,如vast.ai或Lambda Cloud。如果你只是偶尔在大型模型上训练/微调/推理,并在较小的模型上花费更多的时间进行原型化,这可能是便宜的。
2.在两台机器上并行化需要什么?
如果你想安全起见,如果你想跨机器并行化,你应该至少获得+50Gbits/s的网卡以获得加速。我建议至少有一个EDR Infiniband设置,这意味着至少有50 GBit/s带宽的网卡。两张带电缆的EDR卡在eBay上大约500美元。
3.电脑机箱设计对散热有影响吗?
如果GPU之间至少有一个小的间隙,GPU通常会完全冷却。机箱设计将为您提供1-3 C更好的温度,GPU之间的空间将为您提供10-30 C的改进。底线是,如果GPU之间有空间,冷却就不重要了。如果GPU之间没有空间,则需要正确的冷却器设计(鼓风机风扇)或其他解决方案(水冷,PCIe扩展器),但在任何情况下,机箱设计和机箱风扇都无关紧要。
4.我是否需要英特尔CPU来支持多GPU设置?
我不推荐英特尔CPU,除非你在Kaggle比赛中大量使用CPU(CPU上大量使用线性代数)。不过,即使是在Kaggle比赛中,AMD的CPU仍然很棒。AMD CPU在深度学习方面比英特尔CPU更便宜,也更好。对于一个4x的GPU构建,我的CPU将是一个Threadripper。我们在大学里用Threadrippers构建了几十个系统,它们都运行得很好–还没有任何抱怨。对于8x GPU系统,我通常会选择您的供应商有经验的CPU。在8x系统中,CPU和PCIe/系统可靠性比单纯的性能或成本效益更重要。