聊聊GPU产品选型那些事
本篇讲述了A100、V100、H100该如何选择?
作者 | 范雪莹
随着 人工智能 的飞速崛起,随之而来的是算力需求的指数级增加,CPU已经不足以满足深度学习、大模型计算等场景的海量数据处理需求。GPU作为一种强大的计算工具,无论是高性能计算、图形渲染还是机器学习领域,在各个领域展现出了巨大的潜力和应用前景。
说起GPU,绕不过的当然是NVIDIA这个公司了,现在市面上火热的A100/A800、H100等GPU全是他家的产品。但当你有业务需求或者个人需求,想要采购GPU的时候,你会发现各个型号的GPU令你眼花缭乱。这次我们就来聊聊NVIDIA的GPU产品,让你对各个型号的GPU有个深入的了解。
GPU应用场景
在选择GPU产品之前,首要任务是明确自己的应用需求。不同的应用领域对GPU的需求存在差异,因此了解自己的需求是做出明智决策的关键。接下来我们了解下常见的GPU应用场景。
游戏和图形渲染
我把游戏和图形渲染这个应用场景放在了第一位,并不是说它是GPU最常用的应用场景,而是很多小伙伴在学生时代就已经接触了“显卡”。
GPU不等于显卡,它是显卡的核心,就像CPU是主板上的一块芯片。GPU刚被发明出来的初衷是用于图形渲染,这从它的名字Graphic Processing Unit(图形处理单元)就可以看出来。在游戏和图形渲染中,GPU能够处理复杂的图形渲染任务,使游戏画面更加逼真和流畅。
游戏开发人员使用GPU来创建游戏的视觉效果、光照和物理模拟等。NVIDIA产品的GeForce系列,主要就是面向游戏娱乐领域,我们常说的RTX 4090,其中在框架中采用了第三代RT core,光线追踪性能最高可提升2倍,主要用于游戏开发、电影制作和虚拟现实等需要实时渲染的领域。当然,GeForce系列的显卡也可以用于AI推理等,只是在计算能力上没有像企业级GPU那么强悍。
大模型计算
大模型训练通常涉及处理海量数据和复杂的计算任务,例如深度神经网络的训练。大模型通常需要大量的显存来存储模型参数、梯度和中间计算结果。较大的显存容量可以提供更高的批处理大小和更复杂的模型结构,有助于提升模型的性能和准确度。
同时,大模型训练需要进行大量的矩阵计算、张量操作和梯度更新等复杂的计算任务。GPU具备强大的计算能力和优化的张量计算指令集,能够加速大规模模型的训练过程,减少训练时间。
通常而言,大模型训练会将训练数据分成多个批次,分配给不同的GPU进行并行处理,这就需要GPU具备高效的并行计算能力和快速的数据传输能力,以支持并行训练的效率和可扩展性。而在计算精度方面,通常会使用混合精度计算,即采用较低精度的浮点数进行计算,在关键位置使用较高精度的浮点数进行修正。这也是大模型计算和高性能计算区别较大的地方。
AI推理
AI推理是指在已经训练好的模型上进行实时推断和预测,通常要求在较短的时间内处理大量的数据,例如实时图像识别和语音识别。
GPU具备较低的计算延迟和高吞吐量,能够迅速处理输入数据并输出推理结果,满足实时性要求、AI推理任务主要涉及张量计算,包括矩阵乘法、卷积操作等。NVIDIA在Volta架构及其后续架构(如Ampere架构)中引入了Tensor Core,专门用于深度学习任务重的张量计算,如矩阵乘法和卷积运算。
Tensor Core核心特别大,通常与深度学习框架(如TensorFlow和PyTorch)相结合使用,它可以把整个矩阵都载入寄存器中批量运算,实现十几倍的效率提升。此外,AI推理对于功耗和散热也有一定要求。
性能计算
高性能计算涉及科学计算、数值模拟、天气预报等需要大规模并行计算的领域。在这种场景下,GPU需要具备大量的CUDA核心和高内存带宽,以实现高效的并行计算。此外,高性能计算还需要GPU具备良好的双精度浮点性能和高速的数据传输能力,以应对复杂的计算任务。
GPU系列及参数解读
NVIDIA GPU系列
在了解了GPU基本的应用场景后,我们来看下NVIDIA的显卡主要有哪些?NVIDIA三大主要产品线包括:
- GeForce系列:GeForce系列是NVIDIA面向个人计算和游戏市场推出的产品线。GeForce显卡是用于游戏、图形处理和多媒体应用的高性能图形处理器。GeForce显卡以其强大的图形渲染能力、高帧率和流畅的游戏体验而受到广大游戏爱好者的青睐。
- Quadro系列:Quadro系列是NVIDIA专为专业工作站和专业图形应用开发的产品线。Quadro显卡具备专业级的图形渲染和计算能力,适用于CAD、动画制作、电影后期制作等领域。Quadro显卡提供高度可靠性、精确度和稳定性,满足专业用户对精确图形处理和计算的需求。
- Tesla系列:Tesla系列是NVIDIA针对高性能计算和人工智能领域推出的产品线。Tesla显卡采用GPU加速计算,具备强大的并行计算能力和高性能计算效率。它们被广泛应用于科学计算、深度学习、大规模数据分析等领域,加速计算任务的执行和模型训练。我们常说的A100、V100都是属于Tesla系列的显卡。
GPU参数解读
我们结合下面这个表格,来看看GPU选型时需要关注哪些参数。
计算能力
计算能力是GPU进行并行计算的指标之一,也是GPU的核心能力。较高的计算能力意味着GPU具备更强大的计算能力和支持更高级的计算功能。具体这些计算参数有什么区别,在应用上有哪些不同呢?我们来一一了解下。
- FP64:双精度浮点数具有较高的精度和范围,可以表示更广泛的数值范围和更精确的小数值。在科学计算、工程模拟和需要高精度计算的应用中常常使用双精度浮点数。
- FP32:单精度,作为训练场景的数据格式的标准值。相对于双精度浮点数,单精度浮点数具有较低的精度但更高的计算速度和较小的存储需求。在许多机器学习和深度学习任务中,单精度浮点数已经足够满足计算需求,并且能够加速计算过程。
- TF32:从A100开始NVIDIA提出的数据格式。它比FP32精度低,比FP16精度高,主要用于深度学习训练,理论上比FP32+FP16混合精度效果更优;
- BF16:Intel x86、Arm采用的,主要用于机器学习和深度学习领域。作为一种低精度浮点数格式,可以在一定程度上平衡计算精度和计算效率。它在模型训练和推理中被广泛使用,可以减少存储需求和计算开销,同时仍能保持较高的计算准确性。
- FP16:半精度浮点数具有较低的精度但更高的计算速度和较小的存储需求,主要用于推理。
- INT8:INT8是一种使用8位(1字节)内存来表示整数的数据类型。相对于浮点数,整数计算通常具有更高的计算效率和较小的存储需求,主要用于推理。
可能光这样看文字,大家不是很好理解,我们拿FP32来做个具体的举例。
FP32长度有32位,其中指数位占8位,精度尾数占23位,最前面是标志位。指数位越大,代表数值越大,精度的长度越多,表示小数点后的精度越高。
显存容量(GPU Memory)
显存是GPU用于存储模型参数、计算中间结果和图像数据等的内存。显存容量的大小直接影响着能否加载和处理大规模的数据和模型。
CUDA Core
CUDA Core是NVIDIA GPU上的计算核心单元,用于执行通用的并行计算任务,是最常看到的核心类型。NVIDIA通常用最小的运算单元表示自己的运算能力,CUDA Core指的是一个执行基础运算的处理元件,我们所说的CUDA Core数量,通常对应的是FP32计算单元的数量。
Tensor core
Tensor Core是NVIDIA Volta架构及其后续架构(如Ampere架构)中引入的一种特殊计算单元。它们专门用于深度学习任务中的张量计算,如矩阵乘法和卷积运算。Tensor Core核心特别大,通常与深度学习框架(如TensorFlow和PyTorch)相结合使用,它可以把整个矩阵都载入寄存器中批量运算,实现十几倍的效率提升。
接口形式
SXM和PCIe是两种不同的接口形式,SXM接口直接将GPU连接到主板上,而PCIe接口通过插槽与主板连接。SXM接口提供更高的带宽和更低的延迟,适用于高性能计算和数据中心需求。而PCIe接口广泛应用于个人计算机、工作站和服务器等各种计算设备。
如何选择适合业务的GPU?
A100、V100、H100对比
V100是NVIDIA公司推出的高性能计算和人工智能加速器,属于Volta架构,它采用12nm FinFET工艺,拥有5120个CUDA核心和16GB-32GB的HBM2显存,配备第一代Tensor Cores技术,支持AI运算。
A100采用全新的Ampere架构。它拥有高达6912个CUDA核心和40GB的高速HBM2显存。A100还支持第二代NVLink技术,实现快速的GPU到GPU通信,提升大型模型的训练速度。A100增加了功能强大的新第三代Tensor Core,同时增加了对DL和HPC数据类型的全面支持,以及新的稀疏功能,可将吞吐量进一步翻倍。
在跑AI模型时,如果用PyTorch框架,相比上一代V100芯片,A100在BERT模型的训练上性能提升6倍,BERT推断时性能提升7倍。
H100配备132个SM,比A100的108个SM增加了22%。由于采用新的第四代Tensor Core,每个 H100 SM的速度都提升了2倍。在每个Tensor Core中,新的FP8格式和相应的Transformer引擎又将性能提升了2倍。最后,H100中更高的时钟频率将性能再提升了约1.3倍。通过这些改进,总体而言,H100的峰值计算吞吐量大约为A100的6倍。
Tesla A系列简单对比
A100、H100无论是在推理还是大模型训练中的性能都非常突出,但是价格也相对比较高。
我也找了些资料展示下Tesla A系列(A10、A16、A30、A40、A100)在业务能力和在大模型训练和推理上性能的对比,这里就不再赘述了。
相信看到这里,大家对GPU产品选型已经有了一定的想法。在选择时,大家可以参考GPU制造商的官方文档、性能比较表等资源,以获取更详细的信息和比较不同GPU之间的性能特点。当然最重要的是要明确自身业务的计算需求和任务类型。