NVIDIA取消了今年的GTC 2020大会,改为线上发布。和所有人期待的一样,在这次会议上,NVIDIA推出了全新的Ampere架构和全新的A100 GPU。和之前很多人预料的有所不同的是,Ampere架构和旗下的GPU产品似乎完全不是定位于游戏和民用市场的,它专门面向AI计算和云计算,毕竟这个市场正在快速变大,而且还会越来越大。

打开网易新闻 查看更多图片

▲NVIDIA正式发布了安培架构和A100 Tensor Core GPU

专为计算设计

NVIDIA正式发布A100 Tensor Core GPU

NVIDIA进入计算市场是从G80 GPU开始的,当时统一渲染架构的出现带给NVIDIA在计算市场上崭露头角的机会。随后的多代处理器产品包括代号为GT200、费米、开普勒、麦克斯韦等架构都在努力向计算市场迈进,甚至一度称自己为“视觉计算”企业。不过这一切在AI计算、云计算兴起之后发生了改变,包括开普勒、麦克斯韦、帕斯卡架构的GPU都被广泛使用在AI的深度学习计算中,再加上数据中心和云计算对GPU越来越大的需求,NVIDIA在产品路线上开始分裂——一方面要牢牢占据游戏产品市场,另一方面高增长、高利润的数据中心和AI计算市场也绝对不能放弃。

这样一来,NVIDIA的产品路线就分为了计算和图形两个路径。我们看到的第一个更偏向于计算的GPU产品架构是伏打架构,其典型产品为Tesla V100、TITAN V等,在民用图形卡方面几乎没有太多建树。同代(或者稍晚一些)推出的更偏向于图形的产品是图灵架构,衍生出了多款民用GPU图形卡,并且带来了RTX品牌和全新的光线追踪技术。

值得一提的是,考虑到这款显卡出色的性能和性价比,也有不少专业用户选择它进行计算工作,毕竟TITAN V昂贵的价格并不是所有人都可以承受的。从时间上来看,伏打架构和相关产品发布于2017年6月,图灵架构和相关产品发布于2018年8月,根据NVIDIA一代计算产品、一代游戏产品发布的前例来看的话,刚刚发布的Ampere(下文全部称为“安培”)架构极大概率会被定义为计算产品,和游戏玩家关系不大。

虽然这一切看起来顺理成章,图形和计算两条路并行不悖,但是在今年网络发布会后的媒体采访上,NVIDIA CEO黄仁勋又提到,安培架构和随后即将推出的图形加速产品在架构上存在“巨大的重叠”,并且将最终替换掉图灵架构和伏打架构,成为NVIDIA在计算和图形市场上的唯一架构。实际上,从现有的安培架构的情况来看,现在发布的产品是彻彻底底针对计算市场的,不但大幅度加强了有关计算方面的内容、加入了大量特殊格式的计算加速、采用了全新设计的张量核心,还加强了双精度计算的功能并且没有提供任何光线追踪加速的内容。这样一来,未来安培架构图形产品的情况就显得颇为扑朔迷离了。

当然,图形和计算,在应用端看起来似乎是两个路径,但是在最终GPU中计算时,都会转化为数据和相应的路径。也有一种可能是安培架构本身大幅度加强了计算效能,这些计算效能的提升也会在图形应用中带来不错的效果,当然最终的情况会怎么样,还得看后续产品发布的相关内容了。

另外值得一提的是,从本代计算产品开始,NVIDIA首发产品没有使用诸如Tesla的商标,而是直接以NVIDIA A100 Tensor Core GPU命名。一些消息显示,由于NVIDIA旗下的Tesla计算卡在商标问题上和埃隆马斯克的特斯拉(Tesla)汽车存在一定的重叠和关联,因此NVIDIA彻底停用了Tesla品牌。目前在NVIDIA全球网站上,Tesla品牌已经彻底消失不见,比如之前的Telsa T4加速卡,目前被改成了NVIDIA T4,其余之前冠之以Tesla品牌的产品现在都改成了NVIDIA品牌。

中国官网上,Tesla品牌在部分产品中依旧可见,应该是网站信息更新延迟的问题。停用了Tesla品牌之后,新的命名方法显然是凸显了NVIDIA在产品中的地位。另外,新产品的全新的命名突出了Tensor Core也就是张量核心,这是NVIDIA在伏打架构上首次推出的、专门用于加速AI深度学习的计算核心。产品命名中对张量核心的突出显示,也表示出这款GPU的用途更偏向于计算加速而不是传统的图形。

架构方面,A100使用了最新的安培架构,NVIDIA宣称新的架构和产品是基于之前的伏打架构的Tesla V100(下简称“V100”)的功能构建,但增加了大量的新功能,并显著提高了包括HPC、AI和数据分析工作负载的性能。新的架构也能够为使用单GPU和多GPU组建的工作站、服务器、群集和云数据中心、边缘计算系统和超级计算机中运行的GPU计算和深度学习应用程序提供强大的扩扎能力,并且A100支持弹性构建、多功能和高吞吐量的数据中心。总的来说,作为NVIDIA“三年磨一剑”的全新产品,A100和安培架构引入了大量的新功能和特性,值得一一道来。

安培架构的具象

GA100芯片的工艺和成本

任何一个产品架构最终都必须依托于某个具体产品才存在现实意义。在这一点上,安培架构的芯片产物是GA100 GPU,对应的成品被称为A100 Tensor Core GPU。

GA100 GPU是现有民用产品中晶体管数量最多、计算能最强大的单个完整芯片。工艺方面,GA100 GPU采用的是台积电的7nm工艺。整个GA100 GPU中包含了542亿个晶体管,封装面积为826平方毫米,每平方毫米晶体管数量约0.656亿个,即65.6MTr/平方毫米。

从数据来看,7N工艺的晶体管密度数据极为接近台积电7nm HP工艺的65MTr/平方毫米。7nm HP工艺的其他的参数还包括金属层76nm、鳍片高度为30nm、栅极间距为64nm、采用了7.5T库等。从台积电的相关信息来看,7nm HP工艺是专门面向高性能计算、高频率处理器的工艺,其优势在于出色的电气性能和能达到较高的频率,劣势则在于,相比同期推出的、采用6T库的台积电7nm HD工艺,7nm HP工艺密度比较低。7nm HD工艺密度可达91.2Mtr/平方毫米,相比7nm HP大了约50%,属于成本优先的选择。

使用7nm HD工艺制造的产品就有大名鼎鼎的AMD Zen 2架构的计算核心,目前来看其性能和成本得到了很好的平衡。NVIDIA在这里选择了7nm HP工艺,应该是综合考虑了GA100 GPU的目标市场对成本不敏感、大型计算设备的采购预算往往比较高等原因,简单来说就是市场优先。

那么,究竟GA100的成本和A100 GPU加速卡的成本在怎样的水平呢?NVIDIA没有给出太多资料,但是我们可以通过业内的一些消息来进行合理的推测。官方数据显示GA100 GPU的封装面积达到了826平方毫米,相比之下,上代GV100 GPU的核心面积为815平方毫米,之前帕斯卡架构的GP100的核心面积仅为610平方毫米。从这一点来看,一张12英寸的晶圆直径为300平方毫米,面积为70685平方毫米,按照芯片实际晶圆面积为封装面积的90%计算,一张12英寸的晶元只能最多切割出大约80个芯片。

目前台积电7nm工艺制造报价一张12英寸晶元大约是1万美元。在不考虑良率的情况下,单个GA100 GPU的物理制造成本至少为125美元,考虑到如此大的芯片在定制和设计上的困难,可能还会更高一些。良率方面,如此巨大的芯片晶元上一般都只有部分核心可用(一般在30%~50%之间),那么单个GA100芯片的成本在400美元左右也是可以理解的(即使采用了屏蔽部分核心提高良率的方法)。

另外,GA100 GPU与之相配的HBM2显存和封装也需要高昂的成本,甚至不低于芯片本身,可以毛估为GPU搭配HBM2显存1000美元以内,其余物料成本包括PCB、各种接口、控制芯片和散热器等,按照高值估计应该在200美元以内,这样一个A100 GPU加速卡的硬件成本可以控制在1200美元以内。

从实际销售产品价格来看的话,目前NVIDIA出货的DGX A100产品拥有8个GPU核心和CPU、其他配件等,售价约20万美元。以GPU部分占整个成本的3/4计算,单个A100 GPU计算卡的售价应该定在1.8万~2万美元左右,折合人民币约为12~14万元。按照比例来看,硬件成本∶销售价格大约是1:15~18,就按照1∶15计算,虽然看起来是“一分本、十四分利”利润高昂,但并没有考虑到无形成本:作为智力密集和技术密集型产业的芯片研发和设计企业,其绝大部分成本实际上是人工成本和企业运营成本,甚至数倍于物料成本。

一般来说,诸如英特尔、NVIDIA、AMD这样的企业,企业毛利率维持在60%以上的话,是一种比较健康的发展状态,这证明企业拥有充足的资金进行技术开发和拓展,如果低于40%甚至低于30%的话,证明企业技术落后且失去了竞争力。而较高的毛利率,都需要从晶元销售中获得,GA100这种面相商业计算的产品,销量肯定不如普通图形GPU那么大,并且还可能存在大批采购折扣价格、后期维护和软件支持等,因此目前的定价也存在一定的合理性。

当然,作为一款如此昂贵的GPU产品,绝大部分用户是不需要考虑其购买意义的。因为这款产品实际上是作为生产力工具来定义的,和绝大部分尤其是所有的图形用户基本没什么关系,因此价格上大家甚至无需特别关注了。

无敌就是寂寞

深入GA100架构的内部

宏观:拥有8192个FP32 CUDA核心的怪物

GA100 GPU是安培架构的具体实现。因此,需要了解安培架构的特性和信息,最方便的方法是结合GPU本身架构设计一起观察。在这里,NVIDIA给出了GA100 GPU的宏观架构信息,具体如下:

★ 一个完整的GA100 GPU由8个GPC(GPU处理集群)组成,每个GPC中又包含了8个TPC(材质处理集群)、每个TPC包含了2个SM(流式多处理器模块)和一个HBM2内存控制器组成。

★ 每个SM单元中,包含了64个FP32 CUDA内核。一个完整的GA 100 GPU中一共有8192个FP32 CUDA内核。

★ 一个SM中还包含了4个第三代张量计算核心,因此一个完整的GA100 GPU中拥有512个第三代张量计算核心。

★ 一个完整的GA100 GPU拥有6个HBM2堆栈存储控制器,总计为12个512bit位宽的存储控制器,提供6144bit的总位宽。

上文反复强调“一个完整的GA100”核心,是因为目前NVIDIA在A100 GPU加速设备中所使用的GA100 GPU核心并不是完整的版本,而是屏蔽了一部分核心的产物。屏蔽一部分核心的原因也很好理解,一是良率较低,通过屏蔽部分核心来提高良率。二是功耗控制不佳,必须屏蔽部分核心来降低功耗。三是现在没有竞争对手,屏蔽部分核心后,可以布局在未来发布新的更高规格产品,重新激活市场购买升级欲望等。

目前在售的A100 GPU加速产品,只启用了7个GPC,并且每个GPC中可能只拥有7个TPC,也就是仅拥有6912个FP32 CUDA内核和432个第三代张量核心,内存控制器上也只启用了其中5个,这样内存方面只有10个512bit位宽被启用,总位宽仅为5120bit。对比完整版本的GA100,A100 GPU加速产品的FP32 CUDA内核数量、存储位宽分别只有完整版本的84%、83%,性能自然也大概只有完整版本的80%左右了。即使只启用了80%的核心,目前A100 GPU频率也仅仅达到了1.4GHz,TDP功耗却高达400W。

可想而知,如果是完整版本的GPU,功耗将会更加恐怖。不过从宏观架构来看,完整规格的GA100是非常恐怖甚至夸张的,其传统用于衡量GPU计算效能的FP32 CUDA Core竟然高达8192个,根据Steam硬件调查,NVIDIA最近两代最受欢迎的GTX 1060和RTX 2060 SUPER等GPU产品,CUDA核心的数量也仅仅分别为1280个和2176个,即使是目前计算性能最出色的TITAN V,CUDA核心数量也仅为5120个,这还不算GA100中加入的FP64核心、第三代张量核心等。从这个角度来看,GA100和其代表的安培架构,规模之恐怖着实令人震惊。

最后还有一句题外话,本次A100 GPU完全为HPC、AI等计算加速而来,因此没有显示模块、没有光线追踪模块和NVEMC视频编码器,也就是说不可以当作游戏显卡来使用。

全新的SM单元

新的第三代张量核心

A100 GPU的首个亮点就是全新的第三代张量核心,相比V100,新的张量核心大幅度提升了数据吞吐量,还增加了全新的多种专用于深度学习和HPC数据类型的支持,以及加强的稀疏计算增强功能。

根据NVIDIA给出的示意图,一个完整的SM单元包含了一个共享的L1指令缓存和四个计算模块。每个计算模块的都拥有自己的L0指令缓存、每周期可以发送32个线程的Warp排序单元、每周期32个线程的调度单元、16384x32bit的寄存器以及后端的LD/ST单元、特殊功能单元(Special Function Unit,简称SFU)。除了这些功能单元外,每个计算模块中最重要的部分自然是计算单元了。每个计算模块拥有16个INT 32单元、16个FP32单元、8个FP64单元以及1个第三代张量核心。最终1个完整的SM单元包含了64个INT 32单元、16个FP32单元(也就是CUDA核心)以及32个FP64单元、4个第三代张量核心。

在整个SM单元的后端,NVIDIA还布置了192KB的L1数据缓存或者共享缓存,4个Tex单元。值得注意的是,相比之前伏打架构的SM单元,安培架构的SM单元中,张量核心的数量只有4个,但是前代伏打架构和图灵架构的每SM均有8个。不过由于新的第三代张量核心使用了全新的设计,其计算能力反而大幅度提升。

安培架构SM单元的特性总结

1.全新的第三代张量核心

★ 全新的第三代张量核心现在可以加速所有类型的数据,无论是FP16、BF16、TF32、FP64、INT8、INT4还是二进制数据,都能够使用第三代张量核心进行加速。

★ 第三代张量核心新加入可以利用深度学习网络中的细粒度结构稀疏性和新加入的稀疏功能,使得标准张量核心的操作的性能翻倍。

★ 安培架构中的张量核心在计算TF32数据时,可以通过特有的路径来加速深度学习框架和HPC计算中FP32的输入输出数据,这种计算比之前的伏打架构的V100 FP32 FMA操作快10倍,如果原始数据有稀疏性,那么可以快20倍。

★ 在操作混合精度的FP16和FP32的深度学习计算时,安培架构的第三代张量核心运行速度比之前的伏打架构的V100的张量核心快了2.5倍,如果原始数据具有稀疏性那么可以提高至5倍。

★ BF16/FP32混合精度操作和常见的FP16/FP32混合精度速度一样。

★ 第三代张量核心能够进行FP64操作,在HPC计算中比较常见,其速度是伏打架构的V100 FP64 DFMA操作的2.5倍。

★ 第三代张量核心在计算拥有稀疏性的INT8数据时,其速度是伏打架构V100 INT8操作的20倍。

2.加大的L1数据缓存/共享缓存,容量是伏打架构的1.5倍。

3.新的异步复制指令支持将数据直接从全局存储器加载至共享存储器中,可以绕过L1高速缓存且不需要使用中间寄存器文件。

4.和异步复制指令一起使用的、基于共享内存的新的异步屏障单元。

5.L2缓存管理和驻留控制得到了改善。

6.CUDA组支持新的warp-level降低指令。

7.可编程性的改进。

NVIDIA还给出了一些对比用于比较新的第三代张量核心和安培架构在数据处理方面相比之前的伏打架构的优势。比如FP16、FP32、FP64和INT8稀疏操作等。其中,A100 GPU相比V100在上述操作中获得了5倍、20倍、2.5倍和20倍的性能优势。

在FT32数据格式方面,NVIDIA进一步解释道,目前AI训练方面默认的数据格式是FP32,并且不能进行张量核心加速。NVIDIA在安培架构上引入了TF32架构,这样一来AI训练在默认状态下就可以使用张量核心加速了,并且不需要用户手动配置,当然非张量的操作继续使用FP32数据路径进行计算。TF32张量内核将读取FP32数据并且使用和FP32相同的范围,但是内部会处理自动降低精度,然后生成标准的IEEE FP32输出。TF32包含一个8位指数(和FP32)相同,10位尾数(和FP16相同)以及1个符号位。NVIDIA反复强调,张量核心有关TF32的加速方面,不需要用户额外付出劳动成本,一切都是自动的。

在传统的INT 32和FP32操作方面,安培架构和A100 GPU和之前发伏打、图灵架构类似,都采用了独立的FP32和INT32内核,支持以全吞吐量同时执行FP32和INT 32操作,并且还提高了指令的吞吐量。另外,对一些有内部循环的应用程序而言,这些循环可以同时执行指针算术(整数存储器地址计算)并结合浮点计算,这也是FP32和INT32独立计算带来的优势之一。在这种计算中,循环的每个迭代都可以更新地址并为下一个迭代加载数据,同时在FP32中计算现有的数据,效率显著提升。

除了有关深度学习计算加速的内容外,在HPC所需要的高精度计算方面,安培架构的第三代张量核心也带来了出色的效果。目前安培架构的第三代张量核心支持符合IEEE标准的FP64计算,其FP64张量核心计算性能是之前伏打架构V100 GPU的2.5倍。在架构改进上,安培架构采用了新的双精度矩阵乘加指令取代了之前V100上的8条DFMA指令,从而减少了指令提取、调度的开销以及寄存器的读取、数据路径功率和共享存储器的读取带宽等。现在,安培架构A100 GPU中每个SM每时钟周期可以计算64个FP64 FMA操作,或者128个FP64操作,这两个数据都是V100的2倍。具有108个SM的A100 GPU的双精度数据吞吐量是19.5TFLOPS,这个数值达到了V100的2.5倍。

说道吞吐量,就不得不提及计算能力了。NVIDIA给出了一张表用于展示不同数据格式下新的A100 GPU的计算能力。表中所有的计算数据均基于GPU的峰值频率。此外,在除了FP64 Tensor Core计算之外的所有Tensor Core计算力方面,NVIDIA还分别给出了传统计算和加入稀疏性优化后的两种性能数据,比如INT4 Tensor Core计算方面,在不启用/启用稀疏性优化的情况下,计算能力分别是1248 TOPS和2496 TOPS,后者带来了翻倍的计算性能。

无论是吞吐量的增加,还是新的数据加速格式的支持,都可以用于加速HPC的工作负载,包括迭代求解器和各种新的AI算法等。

架构优化

全新引入的细粒度的结构稀疏性

安培架构为AI计算做出了多样化的优化,在这里,全新引入的细粒度结构稀疏性就能够将深度神经网络的吞吐量提高一倍。

在深度学习计算中,稀疏性是可能存在的,因为在深度学习的计算过程中,个体的权重在不断地变化,在最终网络训练结束的时候,只有一部分权重能够体现有意义的价值,剩余的权重则失去了意义不再需要。

细粒度的结构化稀疏性则是对允许的稀疏性模式增加了约束条件,使得硬件可以更有效对输入操作数进行必要的对齐。由于深度学习网络能够根据训练过程反馈调整权重,因此NVIDIA的工程师们发现,一般而言,结构的约束并不会影响深度学习网络的准确性。因此,这使得利用稀疏性对推理计算进行加速成为可能。

在具体的执行中,NVIDIA通过新的2:4稀疏矩阵定义强制性的执行结构,该定义在每个四项向量中允许2个非零的值,A100 GPU支持行上2:4的结构化稀疏性。由于矩阵的定义非常明确,因此可以对其进行压缩,并将内存存储量和带宽要求减少2倍。

在计算方面,NVIDIA也开发了一种简单而通用的方法,使用这种2:4的结构稀疏模式对深层次的神经网络进行稀疏化处理。比如首先使用密集的权重值对网络进行训练,然后用细粒度的结构化“修剪”数据,最终使用其他训练步骤对剩余的非零权重进行微调。在NVIDIA的评估中,这种方法通过了跨视觉、对象检测、分割、自然语言建模、翻译等数十个深度学习网络的评估,这种计算方法几乎不会导致推理准确性的损失。

在硬件架构方面,A100 GPU也引入了新的稀疏张量核心指令,该指令会跳过具有零值的条目的计算,从而使得张量核心的计算、吞吐量翻倍。

存储系统

缓存的改进和40GB的HBM2内存

由于芯片规模越来越庞大,因此NVIDIA需要改善整个架构体系的存储系统。现在,安培架构和A100芯片的L1、L2以及内存体系(或者显存体系,本文统一称之为内存)都得到了加强。

先来看L1缓存。在之前伏打架构的V100上,NVIDIA首次引入了L1数据高速缓存和共享内存子体系结构,这带来了性能的显著提高,并且简化了编程,减少了达到或者接近峰值应用程序性能所需要的调整。将数据缓存和共享内存功能组合在一起,可以为两种类型的内存访问都提供最佳的性能。在安培架构和A100 GPU上,NVIDIA大幅度提升了L1缓存的容量至每个SM单元192KB,使其达到了前代伏打架构的1.5倍,容量更充裕了。

接下来再看L2。A100 GPU目前包含40MB的L2缓存,这个容量是之前V100的6.7倍。A100的L2分为两个分区,以实现更高的带宽和更低的延迟。每个L2分区都会进行本地化并且缓存数据,以方便直接连接到该分区的GPC中的SM进行数据访问。这种结构使得A100的缓存带宽相比V100增加了2.3倍。硬件的缓存一致性将在整个GPU范围内维护CUDA编程环境,并且应用程序会自动更新以利用L2缓存的带宽和延迟优势。

L2缓存属于GPC和SM的共享资源,本身被放置在GPC之外。现有情况可以看出,安培架构和A100 GPU的L2缓存容量大幅度增加显著改善了很多HPC和AI工作负载的性能。这是因为那些需要被充分可访问的数据集和模型,都不用频繁地去HBM2内存中读取和写入了,现在直接可以在L2中存取。另外,受到DRAM带宽限制的部分工作负载,比如使用较小的batch尺寸的深度神经网络,将充分受益于更大的L2。

在L2数据控制和优化方面,安培架构带来了L2缓存驻留控件,借助于这个控件,用户可以在L2缓存中永久保留一部分数据,也可以自定义哪些数据需要进入L2保存、哪些不需要。举例来说,对于深度学习推理的工作负载,一种被称为“乒乓”的缓冲区可以持久驻留在L2缓存中,不但可以实现更快的数据访问,同时还避免了回写到DRAM浪费时间和功耗。另外,在深度学习培训中心发现的一些“生产者-消费者”链路,L2缓存的控制可以跨越读写关系来对其进行优化。在LSTM网络中,L2缓存中可以重点考虑启用循环权重以提高效能。

L2部分最后再来了解一下有关安培架构的计算数据压缩功能,这个功能可以用于加速非结构化稀疏性和其他可压缩数据模式。L2中的压缩使得DRAM读/写带宽相对提高了4倍,L2读带宽相对提高了4倍,L2容量相对提高了2倍。

最后再来看看40GB的HBM2缓存。由于现代计算任务的数据量越来越庞大、对数据传输的要求也越来越高,再加上GPU吞吐量也日渐上升,为了满足这些需求,传统的GDDR内存逐渐显得力不从心,而更强大的HBM2内存能更好地适应计算任务的需求,因此,A100 GPU使用了HBM2内存,其容量为40GB,带宽高达1555GB/s,相比V100计算卡增加了73%。

第三代NVLink总线

NVIDIA在安培架构的A100 GPU中启用了第三代NVLink总线。初代NVLink总线使用在NVIDIAP100计算卡上,带宽水平大约在100GB/s的级别。第二代NVLink总线使用在V100 GPU上时总性能达到了300GB/s,也就是PCIe 3.0总线的大约10倍。在A100 GPU上,NVIDIA又引入了第三代NVLink总线,新总线每个信号对的数据速率达到了50Gb/s,几乎达到了V100中25.78 Gbit/s速率的两倍。并且新总线的每个链路在每个方向上使用4个(差分)信号对(4个通道),而Volta中则使用8个信号对(8个通道)。与Volta GPU相似,新的NVLink单个链路在每个方向上提供25 GB /秒的带宽,但与Volta相比仅使用一半的信号。NVLink链接的总数在A100中增加到12条,而在V100中仅为6条,最终整个A100的总带宽高达600GB /秒。

目前在多GPU系统的构建中,NVIDIA通过NVLink总线和NVSWITCH切换器来进行数据的传输和切换,更大带宽的NVLink总线和NVSwitch有助于多芯片协同工作和任务分配传输的高效率。目前,每一个A100 GPU支持最多12条NVLink总线启用,这样一来搭配6个NVSwitch芯片,能够实现最多16个GPU互联,大幅度提高了单个设备的计算能力。

另外,安培架构的GPU正式支持了PCIe 4.0总线规范,未来NVIDIA所有新的GPU都将全面支持PCIe 4.0总线规范。

专为云计算设计

多实例GPU功能(Multi-Instance GPU)

新的多实例GPU功能简称MIG,这是一项针对云服务提供商的功能。当配置为MIG时,系统中GPU的利用率可以得到很大的提升,包括无须任何额外成本就可以执行多达7倍的GPU实例。单个GPU还可以进行分区使用并支持故障隔离。

从实际应用来看,进关许多数据中心的工作量在规模和复杂程度上都持续提升,但是依旧存在一些任务并不需要太多计算资源就可以完成,比如早期开发或者一些小批量的训练的简单模型。对于一个数据中心来说,最好的状态是所有设备都满载,保持高的资源利用率,因此数据中心一方面需要越来越大,另一方面也要很好的运行这些较小的工作负载。

但是,在传统的不支持虚拟化的GPU上,一个较小的工作负载就会占据整个GPU资源。这对整个系统来说是极为浪费的。部分GPU可以实现虚拟化,并提供2个虚拟实例,但是对于A100这样的拥有极高算力的GPU来说,2个虚拟实例依旧不能很好地解决这类问题。因此,NVIDIA带来了新的多实例GPU功能,简称为MIG,这个功能能够将每个A100 GPU加速设备划分为7个虚拟的GPU实例,从而进一步提高资源利用率,并有效的扩展每个用户和应用程序的访问权限。

NVIDIA提供了一些对比图,用于对比没有MIG配置和拥有MIG配置的设备运行应用程序的差异。在诸如伏打架构的V100 GPU上,多个应用程序在单独的GPU执行资源也就是SM上同时执行,但是由于内存系统资源是在所有应用程序中共享的,因此如果一个应用程序对DRAM带宽有很高的要求或者其请求超出了L2缓存的容量,那么可能会干扰其他应用程序的运行。

在安培架构的A100 GPU中,运行的情况发生了变化。A100 GPU可以通过MIG功能将单个GPU划分为多个GPU分区,这种划分出来的分区被称作GPU实例。每个实例的SM具有贯穿整个内存系统的单独且隔离的路径,包括片上交叉开关的端口、L2缓存库、内存控制器和DRAM地址总线,都可以唯一分配给单个实例。这样可以确保单个用户的工作负载能够以可预测的吞吐量和延迟运行,并且具有相同的二级缓存分配和一样的DRAM带宽,即使其他任务需要更高的缓存或者DRAM带宽也不会产生负面影响。

不仅如此,在使用MIG功能经过对可用的GPU计算资源的分区后,系统可以为不同的客户端(或者虚拟机、容器、进程等)提供故障鼓励,从而提供定义的服务质量QoS。MIG使得多个GPU实例可以在只拥有单个GPU的A100 GPU设备上运行,并且用户无须对现有的CUDA编程模型进行更改,以最大限度地减少编程工作。

对于云服务商(CSP)而言,MIG功能提高GPU了利用率并且无须任何成本。MIG支持CSP所需的必要QoS和隔离保证,以确保一个客户端不会影响到另一个客户端的工作或者调度。在这里,CSP通常会根据客户使用模式对硬件进行分区,当且仅当系统硬件资源提供了一致的带宽、适当的隔离和良好的性能是,分区才有效的运行。

在管理方面,借助安培架构和A100 GPU,用户可以在虚拟的GPU上查看工作任务并进行相关调度,甚至可以直接视作其为物理GPU。MIG功能现在可以和Linux系统以及其管理程序一起使用,用户可以使用诸如Docker Engine软件,并且很快支持使用Kubernetes进行虚拟GPU的容器管理。

除了上述内容外,安培架构和A100 GPU还带来了包括错误和故障检测、控制和隔离等功能。比如远程GPU的错误会通过NVLink回传至源GPU。此外,CUDA 11在安培架构的适配上也做出了很多新的工作,比如对第三代张量核心的应用适配等。这些更详细的内容,NVIDIA将会发布在随后推出的A100 Tensor Core GPU体系结构白皮书中。有需要的读者可以自行下载阅读。

性能

A100相比V100大幅度提升

在现有的相关资料中,NVIDIA还展示了一些A100对比V100的计算能力的提升,同时加入对比的还有NVIDIA首个专门为AI计算和HPC加速而生的产品Tesla T4。从NVIDIA的数据来看,在综合HPC加速计算中,A100大约性能是V100的1.78倍左右,其中性能倍数最高的部分是物理模拟,大约为2.0~2.1倍,最少的分子动力学模拟也能带来至少50%的速度提升,其余的包括工程计算、地球科学计算的性能倍数大约在1.7~1.9倍之间。

单芯片并行计算的巅峰

本文对安培架构和A100 GPU的介绍就到此为止了。受限于篇幅,本文只介绍了一部分特色的新功能,实际上这款史上最大的GPU产品还有大量的内容值得探索,目前NVIDIA也在官网上放出了A100 GPU和安培架构的白皮书,有兴趣的读者可以自行搜索下载。

在本文的最后,我们还是惊讶于这款GPU的强大,高达540亿晶体管,全新的第三代张量核心、新的MIG特性以及40GB HBM2内存。略有遗憾的是,如果不是功耗和芯片制造的限制,它还可能更为强大。当然,硬件的规格是一方面,从目前的情况来看,NVIDIA还在不断地通过软件的改进,充分释放这540亿晶体管蕴藏的强大算力。无论怎样,安培架构和A100 GPU,堪称单芯片算力的巅峰,也是迄今为止人类设计的最复杂的芯片(可以没有之一),这也是并行计算登峰造极的一刻,值得铭记和赞叹。