AI芯片第一极:GPU性能、技术全方位分析

2023-08-18 13:53

2023818


从广义上讲,能运行AI 算法的芯片都叫AI芯片。CPUGPUFPGANPUASIC 都能执行AI 算法,但在执行效率层面上有巨大的差异。CPU可以快速执行复杂的数学计算,但同时执行多项任务时,CPU性能开始下降,目前行业内基本确认CPU不适用于AI 计算。


CPU+xPU的异构方案成为大算力场景标配,GPU为应用最广泛的AI 芯片。目前业内广泛认同的AI 芯片类型包括GPUFPGANPU 等。由于CPU负责对计算机的硬件资源进行控制调配,也要负责操作系统的运行,在现代计算系统中仍是不可或缺的。GPUFPGA 等芯片都是作为CPU 的加速器而存在,因此目前主流的AI计算系统均为CPU+xPU 的异构并行。CPU+GPU 是目前最流行的异构计算系统,在HPC、图形图像处理以及AI 训练/推理等场景为主流选择。IDC 数据显示,2021 年中国AI 芯片市场中,GPU 市占率为89%

图片

GPU问世以后,NVIDIA 其竞争对手ATI(被AMD 收购)一直在为他们的显卡包装更多的功能。2006 NVIDIA发布了CUDA 开发环境,这是最早被广泛应用的GPU 计算编程模型。CUDA GPU的能力向科学计算等领域开放,标志着GPU成为一种更通用的计算设备GPGPUGeneral Purpose GPU)。NVIDIA 也在之后推出了面向数据中心的GPU产品线。

图片

GPU性能提升与功能丰富逐步满足AI 运算需要。2010 NVIDIA 提出的Fermi 架构是首个完整的GPU计算架构,其中提出的许多新概念沿用至今。Kepler 架构在硬件上拥有了双精度计算单元(FP64),并提出GPUDirect 技术,绕过CPU/System Memory,与其他GPU 直接进行数据交互。Pascal 架构应用了第一代NVLink
Volta 架构开始应用Tensor Core,对AI 计算加速具有重要意义。简要回顾NVIDIA GPU 硬件变革历程,工艺、计算核心数增加等基础特性的升级持续推动性能提升,同时每一代架构所包含的功能特性也在不断丰富,逐渐更好地适配 AI 运算的需要。

图片

AI的数据来源广泛,GPU逐渐实现对各类数据类型的支持。依照精度差异,算力可从INT8(整数类型)、FP16(半精度)、FP32(单精度)、FP64(双精度)等不同维度对比。AI 应用处理的数据包括文字、图片或视频,数据精度类型差异大。对于数据表征来讲,精度越高,准确性越高;但降低精度可以节省运算时间,减少成本。
总体来看,精度的选择需要在准确度、成本、时间之间取得平衡。目前许多AI 模型中运行半精度甚至整形计算即可完成符合准确度的推理和训练。随着架构的迭代,NVIDIA GPU 能支持的数据类型持续丰富,例如Turing架构T4开始支持INT8Ampere 架构A100 Tensor Core 开始支持TF32

图片

均衡分配资源的前提下,处理低精度的硬件单元数量更多,表现更高的算力性能。GPU 作为加速器得到广泛应用一定程度上得益于它的通用性,为了在不同精度的数据类型上具有良好的性能,以兼顾AI、科学计算等不同场景的需要,英伟达在分配处理不同数据类型的硬件单元时大体上保持均衡。因为低精度数据类型的计算占用更少的硬件资源,同一款GPU中的处理低精度数据类型的硬件单元的数量较多,对应计算能力也较强。以V100为例,每个SM FP32 单元的数量都为FP64单元的两倍,最终V100FP32 算力(15.7 TFLOPS)也近似为FP647.8 TFLOPS)的两倍,类似的规律也可以在各代架构旗舰P100A100 H100中看到。

图片

GPU引入特殊硬件单元加速AI 的核心运算环节。矩阵-矩阵乘法(GEMM)运算是神经网络训练和推理的核心,本质是在网络互连层中将大矩阵输入数据和权重相乘。矩阵乘积的求解过程需要大量的乘积累加操作,FMAFused Multiply–accumulate operation,融合乘加)可以消耗更少的时钟周期来完成这一过程。传统CUDACore执行FMA指令,硬件层面需要将数据按寄存器->ALU->寄存器->ALU->寄存器的方式来回搬运。2017年发布的Volta 架构首度引入了Tensor Core(张量核心),是由NVIDIA 研发的新型处理核心。根据NVIDIA 数据,Volta Tensor Core可以在一GPU时钟周期内执行4×4×4=64 FMA操作,吞吐量是Pascal 架构下CUDA Core12 倍。

图片

Tensor Core 持续迭代提升其加速能力。Volta 架构引入Tensor Core 的改动使GPUAI 算力有了明显提升,后续在每一代的架构升级中,Tensor Core 都有比较大的改进,支持的数据类型也逐渐增多。以A100 H100为例,Tensor Core 3.0 迭代至4.0H100 FP16 Tensor Core 的峰值吞吐量提升至A100 3 倍。同时,H100Tensor Core 支持新的数据类型FP8H100 FP8 Tensor Core 的吞吐量是A100 FP16 Tensor Core 6倍。

图片

Tensor Core 加速下,低精度比特位宽的算力爆发式增长,契合AI计算需要。Tensor Core 的应用使算力快速、高效增长,选取PascalHopper 架构时期每一代的旗舰数据中心显卡,对比经Tensor Core 加速前后的FP16算力指标可以得到:(1)经Tensor Core 加速的FP16 算力明显高于加速之前。(2)每单位Tensor core支持的算力明显高于每单位Cuda Core支持的算力。同时,Tensor Core 2017 年推出以来首先完善了对低精度数据类型的支持,顺应了AI发展的需要。

图片

数据访问支配着计算能力利用率。AI运算涉及到大量数据的存储与处理,根据Cadence数据,与一般工作负载相比,每台AI训练服务器需要6 倍的内存容量。而在过去几十年中,处理器的运行速度随着摩尔定律高速提升,而DRAM 的性能提升速度远远慢于处理器速度。目前DRAM 的性能已经成为了整体计算机性能的一个重要瓶颈,即所谓阻碍性能提升的“内存墙”。除了性能之外,内存对于能效比的限制也成为一个瓶颈,Cadence数据显示,在自然语言类AI 负载中,存储消耗的能量占比达到82%

图片

GPU采用高带宽HBM 降低“内存墙”影响。为防止占用系统内存并提供较高的带宽和较低的延时,GPU均配备有独立的的内存。常规的GDDR 焊接在GPU芯片周边的PCB板上,与处理器之间的数据传输速率慢,并且存储容量小,成为运算速度提升的瓶颈。HBM裸片通过TSV 进行堆叠,然后HBM 整体与GPU核心通过中介层互连,因此HBM获得了极高的带宽,并节省了PCB面积。目前,GDDR 显存仍是消费级GPU的行业标准,HBM则成为数据中心GPU的主流选择。

图片

硬件单元的改进与显存升级增强了单张GPU算力的释放,然而,随着Transformer模型的大规模发展和应用,模型参数量呈爆炸式增长,GPT-3 参数量达到了1750 亿,相比GPT 增长了近1500 倍,预训练数据量更是从5GB 提升到了45TB大模型参数量的指数级增长带来的诸多问题使GPU 集群化运算成为必须:

1)即使最先进的GPU,也不再可能将模型参数拟合到主内存中。

2)即使模型可以安装在单个GPU 中(例如,通过在主机和设备内存之间交换参数),所需的大量计算操作也可能导致在没有并行化的情况下不切实际地延长训练时间。根据NVIDIA 数据,在8 V100 GPU 上训练一个具有1750 亿个参数的GPT-3 模型需要36 年,而在512 V100 GPU上训练需要7个月。

图片

NVIDIA 开发NVLink 技术解决GPU集群通信。在硬件端,GPU 之间稳定、高速的通信是实现集群运算所必须的条件。传统x86服务器的互连通道PCIe的互连带宽由其代际与结构决定,例如x16 PCIe 4.0 双向带宽仅为64GB/s。除此之外,GPU之间通过PCIe 交互还会与总线上的CPU 操作竞争,甚至进一步占用可用带宽。
NVIDIA 为突破PCIe互连的带宽限制,在P100 上搭载了首项高速GPU互连技术NVLink(一种总线及通讯协议),GPU 之间无需再通过PCIe 进行交互。

图片

NVLink 继续与NVIDIA GPU 架构同步发展,每一种新架构都伴随着新一代NVLink第四代NVLink 每个GPU 提供900 GB/s 的双向带宽,比上一代高1.5 倍,比第一代NVLink 5.6 倍。

图片

NVDIA 开发基于NVLink 的芯片NVSwitch,作为GPU 集群数据通信的“枢纽”。NVLink 1.0 技术使用时,一台服务器中的8 GPU 无法全部实现直接互连。同时,当GPU 数量增加时,仅依靠NVLink 技术,需要众多数量的总线。为解决上述问题,NVIDIA NVLink 2.0 时期发布了NVSwitch,实现了NVLink 的全连接。
NVSwitch 是一款GPU 桥接芯片,可提供所需的NVLink 交叉网络,在GPU之间的通信中发挥“枢纽”作用。借助于NVswitch,每颗GPU 都能以相同的延迟和速度访问其它的GPU。就程序来看,16 GPU 都被视为一个GPU,系统效率得到了最大化,大大降低了多GPU系统的优化难度。

图片

图片

通过添加更多NVSwitch 来支持更多GPU,集群分布式运算得以实现。当训练大型语言模型时,NVLink网络也可以提供显著的提升。NVSwitch 已成为高性能计算(HPC)AI 训练应用中不可或缺的一部分。

声明:文章转载自 智能计算芯世界    原文链接https://mp.weixin.qq.com/s/pLMI-VqKG-jl-lWwTNzlLQ

版权声明:我们注重分享,文章、图片、视频来自网络,版权归原作者,如有异议,请告知小编,我们会及时删除。