英伟达安培新架构,牛在哪里?
2020-05-28 17:10

英伟达安培新架构,牛在哪里?

本文来自微信公众号:芯东西(ID:aichip001),作者:心缘,原标题《深扒英伟达安培新架构,五大技术新招刀刀见血》,头图来自NVIDIA


两周前,英伟达(NVIDIA)厨房里的发布会吸引了全球AI领域的目光。联合创始人兼CEO黄仁勋对着一张砧板,密集释放一系列硬核新品。



最强GPU、最强AI系统、比肩世界最强超算的AI集群、从嵌入式到边缘服务器的边缘AI产品……不愧是“财大气粗”又“技多不压身”的AI芯片霸主,这么多重磅产品一次性全部抛出,换作是其他公司,估计够开十场发布会了。


而这些性能彪悍的AI黑科技背后,核心功臣正是NVIDIA第八代GPU架构——安培(Ampere)


昨日,我们远程连线NVIDIA GPU工程高级副总裁Jonah Alben、NVIDIA加速计算产品管理总监Paresh Kharya,进一步加深对NVIDIA全新安培GPU架构完整面貌的理解。


在此,我们将基于83页的《NVIDIA A100 Tensor Core GPU Architecture》白皮书及采访信息,提炼安培GPU架构在计算和内存层次结构的关键创新与改进,深度解析这一全新架构怎样实现NVIDIA迄今为止最大的性能飞跃。


A100在计算和内存结构上的创新与提升


一、三年一剑!“安培”出鞘


从NVIDIA计算架构的进化历程来看,NVIDIA计算卡的迭代时间并没有很固定。


NVIDIA计算卡进化历程


M40 GPU与K40间隔两年,P100与M40间隔半年,V100与P100间隔一年,A100又与V100间隔三年。


“憋”了三年的大招一出场,果然不同凡响,新A100 GPU、AI系统、AI超算均成绩斐然。


A100同时可提供训练、推理和数据分析,把AI训练和推理的算力提升到上一代V100的20倍,把HPC性能提升到V100的2.5倍。


NVIDIA A100 GPU


A100由基于安培架构的GA100 GPU提供支持,具有高度可扩展的特性,支持在单GPU和多GPU工作站、服务器、集群、云数据中心、边缘系统和超级计算机中为GPU计算和深度学习应用提供超强加速能力。


以多GPU配置的集成底板形式出现的服务器构建块HGX A100最高可以组成拥有10 PFLOPS算力的超大型8-GPU服务器。


集成了8个A100的AI系统DGX A100单节点算力达5 PFLOPS,售价19.9万美元。


140个DGX A100系统组成的DGX SuperPOD集群,AI算力达700 PFLOPS,跻身世界上最快的20台AI超级计算机之列。


NVIDIA自家的超算SATURNV在添加4个DGX SuperPOD后,总算力从1.8 ExaFLOPS增至4.6 ExaFLOPS,增涨155%有余。


这些奔着突破算力极限而去的性能参数,离不开以NVIDIA新一代安培架构为核心的五大关键技术的支持。



(1)安培架构:全球最大7nm芯片,拥有542亿个晶体管,采用40GB三星HBM2,内存带宽可达到1.6 Tbps。


高带宽的HBM2内存和更大、更快的缓存为增加的CUDA Core和Tensor Core提供数据。


(2)第三代Tensor Core:处理速度更快、更灵活,TF32精度可将AI性能提升20倍。


(3)结构化稀疏:进一步将AI推理性能提升2倍。


(4)多实例GPU:每个GPU可分成7个并发实例,优化GPU利用率。


(5)第三代NVLink和NVSwitch:高效可扩展,带宽较上一代提升2倍有余。


黄仁勋介绍说,这是第一次能在一个平台上实现加速工作负载的横向扩展(scale out)和纵向扩展(scale up)


NVIDIA A100 GPU架构不仅可以加速大型复杂的工作负载,还可以有效地加速许多较小的工作负载,既能支持构建数据中心,同时可提供细粒度工作负载供应、更高的GPU利用率和改进的TCO。


二、GA100架构:内存容量更大、带宽更快


要在GPU上获得极致性能,对于CUDA人员来说可能更感兴趣的是GPU中的SM和内存子系统。我们可以从新一代GA100架构图中看到硬件结构的变化。


GA100完整架构


图中上方是PCIe 4.0,带宽较PCIe 3.0增加1倍,使得GPU与CPU的通信速度更快。下方是12个高速连接NVLink。


中间是SM和L2 Cache。可以看到,与V100不同,A100中L2 Cache被分为两块,能提供的带宽也是V100的两倍。


中间其他部分为计算和调度单元,包含8个GPC,每个GPC内部有8个TPC,每个TPC含两个SM。因此一个完整的GA100架构GPU有8x8x2=128个SM。每个SM中含有4个第三代Tensor Core,即完整GA100架构GPU有512个Tensor Core。


A100 GPU并不是完整版GA100架构芯片,包含了108个SM、432个Tensor Core。后期随着良品率的提升,我们或将看到更加完整的GA100架构GPU。与Volta、Turing架构相比,安培架构中每SM的计算能力增加了2倍。


GA100 Streaming Multiprocessor(SM)


为了确保计算引擎得到充分利用,则需要更好的存储能力。GA100架构图左右两侧有6个HBM2内存模块,每个HBM2内存模块对应两个512-bit内存控制器。


A100 GPU中有5个高速HBM2内存模块、10个内存控制器,容量达40GB,显存带宽达到1.555 TB/s,较上一代高出近70%。


A100的片上存储空间也变得更大,包括40MB的L2 cache,较上一代大7倍。



A100 L2 cache可提供的读取带宽是V100的2.3倍,因而能以比从HBM2内存读写高得多的速度缓存和重复访问更大的数据集和模型。L2 cache residency control被用于优化容量利用率,可以管理数据以保存或从缓存中删除数据。


为了提高效率和增强可扩展性,A100增加了计算数据压缩,可节省高达4倍的DRAM读/写带宽、4倍的L2读带宽和2倍的L2容量。


此外,NVIDIA通过将L1 cache和shared memory单元结合到一个内存块的方式来提高内存访问的性能,同时简化了编程和调优步骤,并降低软件的复杂性。


每个SM中的L1 cache和shared memory单元总容量达192 KB,是此前V100的1.5倍。



CUDA 11中还包含一个新的异步复制指令,可选择绕过L1 cache和寄存器文件(RF),直接将数据从global memory异步复制加载到shared memory中,从而显著提高内存复制性能,有效利用内存带宽并降低功耗。



三、AI算力提升20倍是怎么实现的?


AI和HPC算力提升,主要归功于安培架构中采用的第三代Tensor Core。


NVIDIA第三代Tensor Core除了支持FP32和FP16外,通过引入新的精度TF32和FP64以加速AI及HPC应用,并支持混合精度BF16/FP16以及INT8、INT4、Binary。


借由第三代Tensor Core的三类新特性,A100 GPU的单精度AI训练和AI推理峰值算力均为上一代的20倍,HPC峰值算力为上一代的2.5倍。


A100 vs V100峰值性能


1、TF32和混合精度BF16/FP16


TensorFloat-32(TF32)是NVIDIA A100中用于处理矩阵数学(即张量运算)的新数值格式,矩阵数学在AI及部分HPC运算中很常用。


随着AI网络和数据集持续扩张,算力需求与日俱增,研究人员尝试用较低精度的数学计算来提升性能,但此前这样做需要调整一些代码,而新精度TF32既做到性能提升,同时又无需更改任务代码。


新精度TF32与FP32一样都拥有8个指数位,能支持相同的数字范围;尾数位和FP16一样是10个,精度水平高于AI工作负载要求。



FP32是当前深度学习训练和推理中最常用的格式,而TF32的工作方式与FP32相似,TF32 Tensor Core根据FP32数据的输入转换成TF32格式后进行运算,最后输出FP32格式的结果。


借助于NVIDIA库,使用TF32 Tensor Core将A100单精度训练峰值算力提升至156 TFLOPS,即V100 FP32的10倍。


为了获得更好的性能,A100还可使用FP16/BF16自动混合精度(AMP)训练,只需修改几行代码,就能将TF32性能再提高2倍,达到312 TFLOPS。



NVIDIA正与开发AI框架的开源社区合作,致力于使TF32成为A100 GPU上的默认训练模式。


今年6月份,开发人员将可以在NGC的NVIDIA GPU加速软件列表中获取支持TF32的PyTorch版本和TensorFlow版本。


2、结构化稀疏


要实现A100 TF32运行速度提升20倍,还需用到第三代Tensor Core的另一个关键特性——结构化稀疏。


稀疏方法对于算法工程师来说不算陌生,通过从神经网络中提取尽可能多不需要的参数,来压缩神经网络计算量。其难点在于如何兼顾更快的速度和足够的准确率。


而安培架构中利用稀疏Tensor Core,即做到了提供高达2倍的峰值吞吐量,同时不会牺牲深度学习核心矩阵乘法累加作业的准确率。


这是少有的通过硬件对密集计算进行稀疏优化的方法。



该方法首先使用密集的权重训练网络,然后引入2:4细粒度结构稀疏模式进行剪枝,最后重新训练,然后重复训练步骤,采用和之前训练相同的超参数、初始化权重和零模式。


具体压缩方式是限定只做50%稀疏,要求每相邻4个元素中最多有两个非零值,有index数据结构指示哪两个数据不被置零。


权重经压缩后,可有效将数学运算速度提高2倍。


为什么理想性能上限可以提升2倍呢?如下图所示,矩阵A是一个16x16稀疏矩阵,稀疏性为50%,遵循2:4稀疏结构,而矩阵B是一个只有A一半大小的16x8密集矩阵。



标准的矩阵乘积累加(MMA)操作不会跳过零值,而是计算整个16x8x16矩阵乘N个周期的结果。


而使用稀疏MMA指令,矩阵A中每一行只有非零值的元素与矩阵B相应元素匹配,这将计算转换成一个更小的密集矩阵乘法,实现2倍的加速。


在跨视觉、目标检测、分割、自然语言建模和翻译等数十种神经网络的评估中,该方法的推理准确率几乎没有损失。


经结构化稀疏的A100 TF32 Tensor Core深度学习训练算力最高达到312 TFLOPS,是V100 INT8峰值训练速度15.7 TFLOPS的20倍。


经结构化稀疏的A100 INT8 Tensor Core执行深度学习推理速度最高达到1248 TOPS,是V100 INT8峰值推理速度62 TOPS的20倍。



3、双精度FP64


TF32主要用于加速AI运算,而HPC吞吐量的提升主要源自引入对经过IEEE认证的FP64精度的支持。


A100上的双精度矩阵乘法加法指令取代了V100上的8条DFMA指令,减少了指令取用、调度开销、寄存器读取、数据路径功率和shared memory读取带宽。


支持IEEE FP64精度后,A100 Tensor Core峰值算力可达19.5 TFLOPS,是V100 FP64  DFMA的2.5倍。



四、多实例GPU:将A100一分为七


A100是第一个内置弹性计算技术的多实例GPU(MIG,Multi-Instance GPU)


MIG可以把GPU做物理切割,由于A100上有7个GPU,加之考虑到资源调度情况,A100最多可分割成7个独立的GPU实例。


如果将A100分成7个GPU实例,1个GPU实例的算力约等同于一颗V100,也就是说A100能提供相当于V100的7倍的计算资源。



MIG的核心价值是可以为不同类型的工作负载灵活提供规模适配的GPU资源。


如果不使用MIG,同一GPU上运行的不同任务可能会争用相同的资源,挤占其他任务的资源,导致多项任务无法并行完成。


而使用MIG后,不同任务可以在不同的GPU实例上并行运行,每个实例都拥有各自专用的SM、内存、L2缓存和带宽,从而实现可预测的性能,并尽可能提升GPU利用率。



这为工作负载提供稳定可靠的服务质量和有效的故障隔离,假设某一实例上运行的应用出现故障,不会影响到其他实例上运行的任务。


管理人员还可动态地重新配置MIG实例,比如白天用7个MIG实例做低吞吐量推理,夜间将其重新配置成一个大型MIG实例做AI训练。


这对拥有多租户用例的云服务提供商尤其有益,资源调度更加灵活,运行任务不会彼此影响,进一步增强安全性。



此外,CUDA编程模式没有变化,容器中的AI模型和HPC应用可通过NVIDIA Container Runtime直接在MIG实例上运行。


五、第三代互联技术:让GPU互联再提速


MIG是scale-out的主要驱动力,而实现scale-up则需要更好的通信技术,即GPU与GPU之间的“高速公路”——NVLink和NVSwitch。


标准PCIe连接因带宽有限,在多GPU系统中通常会造成瓶颈,高速、直接的GPU到GPU互联技术NVLink应运而生。


NVLink可将多个NVIDIA GPU连成一个巨型GPU来运行,从而在服务器上提供高效的性能扩展,A100使用NVLink的GPU到GPU带宽比PCIe快得多。



A100中有12个第三代NVLink连接,每个差分信号线的速率可达到50 Gb/s,几乎是V100的2倍。


每个NVLink链路在每个方向上有4对差分信号线,因此单向通信能力是50x4÷8=25 GB/s,双向即50 GB/s。12个第三代NVLink的总带宽则可达到600 GB/s,即V100的两倍。


相比之下,上一代V100中有6个NVLink,每个NVLink每个方向上有8对差分信号线,总带宽为300 GB/s。


每个GPU上的NVLink可高速连接到其他GPU和交换机,为了扩展到更大的系统,则需要NVIDIA NVSwitch将多个NVLink加以整合。


NVIDIA NVSwitch是以NVLink先进的通信能力为基础的节点交换架构,可在单个服务器节点中支持8到16个全互联GPU,使得AI性能足以更高效地扩展到多个GPU。



第三代NVSwitch是一颗7nm芯片,包含60亿晶体管,有36个端口,是V100端口数目的2倍;总聚合带宽达9.6 TB/s,是V100总聚合带宽的2倍。


NVLink和NVSwitch技术可提供更高带宽、更多链路,并提升多GPU系统配置的可扩展性,在搭载NVIDIA GPU的一系列板卡、服务器、超算产品中功绩斐然。


新NVIDIA DGX、HGX和EGX系统中的多个A100 GPU间均由第三代NVIDIA NVLink和NVSwitch实现高速通信。


以DGX A100为例,该设备中采用AMD Rome CPU、8颗A100 GPU、6颗NVSwitch芯片,9个Mellanox ConnectX-6 200Gb/s网络接口。



通过NVIDIA NVLink、NVSwitch及Mellanox最新InfiniBand和以太网解决方案连接,基于A100的系统可以扩展到数十、数百或数千个A100,用于计算集群、云实例或超大型超级计算机,从而满足多种类型的应用程序和工作负载的加速需求。


六、结语:走向计算的下一纪元


从上一代被誉为“地表最强AI芯片”的V100,到新发布的安培架构GPU,我们可以看到NVIDIA AI硬件思维逐渐向专用化方向倾斜。


尤其是GA100架构中的计算单元结构优化,包括支持新精度和结构化稀疏,本质上是在围绕AI和HPC的特性在做文章。


正如NVIDIA近年来所强调的,它已从一家纯粹的显卡公司进化为一系列AI与HPC计算解决方案的提供商。无论是计算与内存结构的升级,还是互联技术的迭代进化,都与NVIDIA积累的强大研究和工程能力密不可分。


这些技术进步所带来的更强算力,将催化AI、5G、数据科学、机器人、基因组学、金融分析等诸多领域的创新研究与应用进程。


当许多公司还以超越NVIDIA V100算力为目标时,NVIDIA已经冲向计算的下一个纪元。


本文来自微信公众号:芯东西(ID:aichip001),作者:心缘

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定