1 AI算力发展趋势

1.1 人工智能实践:深度学习

人工智能倒退至今并非一帆风顺, 从起步阶段到现今的深度学习阶段,数据、算法和算力形成了人工智能三大基本要素,独特推动人工智能向更高层次的感知、认知倒退。

1.2 第三次人工智能浪潮代表人物

如前所述,以后人工智能凋敝离不开数据、算法和算力的独特倒退,在算法层面,深度学习三巨头Geoffrey Hinton、Yann LeCun和Yoshua Bengio对AI畛域的奉献无人不知、无人不晓,他们围绕神经网络重塑了AI;

数据层面,2007年李飞飞创立了世界上最大的图像识别数据库ImageNet,使人们意识到了数据对深度学习的重要性,也正是因为通过ImageNet辨认大赛,才诞生了AlexNet, VggNet, GoogleNet, ResNet等经典的深度学习算法。

前几次人工智能凋敝后又陷入低谷,一个外围的起因就是算力难以撑持简单的算法,而简略的算法成果又不佳。黄仁勋开办的NVIDIA公司推出的GPU,很好的缓解了深度学习算法的训练瓶颈,开释了人工智能的全新后劲。

1.3 计算力就是生产力

在智慧时代,计算力就是生产力。什么是生产力,就是人类革新天然的能力,就是发明价值的能力。在这个表中,咱们有一个很乏味的发现。

在10年前,寰球市值最高的企业大部分是能源公司、金融企业,市值靠前的IT公司仅仅微软一家,那时候windows如日中天,office独步天下,属于集体PC时代。

到了以后,寰球最值钱的公司简直清一色的信息技术与服务公司,乏味的中央还不在这里,这前几名的公司正好也是寰球洽购服务器最多公司,仅亚马逊一家,2017年便洽购了寰球13%的云服务器。是海量的计算能力在为这些公司发明价值。

对于企业是这样子,对于国家也是如此。计算力之于智慧时代就像是电力之于电气时代,都是生产力的重要模式。

那么,咱们便能够通过计算力的状况,来剖析一个国家的经济倒退状况,就如同克强指数外面的电力可能掂量一个行业的倒退状况相似。据统计,国家GDP的数字与服务器的出货量,GDP与服务器采购额呈现出显著的正线性相关关系。

美国、中两国不仅GDP远远当先于日本和德国,每万亿GDP的服务器数量也远远高于他们,数字经济的奉献占比显著高于他们。

咱们国内各个省得状况,与此齐全相似,北、上、广、浙每万亿GDP的服务器出货量远大于其余省区,因而他们新旧动能转换的就快,倒退品质就跑在了后面。所以咱们能够说计算力曾经成为掂量社会和经济倒退程度的重要指标。

面对指数级增长的计算需要,计算技术、产品与产业也面临着新的挑战。具体来说,体现在以下三个方面,一个是多元化的挑战,也就是计算场景的简单、计算架构的多元;一个是巨量化的挑战,也就是由巨量模型、巨量数据、巨量算力及巨量利用引发的对现有计算机体系结构的挑战;

最初一个则是生态化的挑战,简略来说当初的智算处于群雄并起阶段,自成体系、生态离散,同时产业链上下游脱节。

第一个挑战是多元化。

咱们讲计算最要害的工作就是撑持业务,那么不同的业务类型,势必要求有不同的计算零碎来实现。例如针对传统的地震波模仿等科学计算,数值精度要求高,须要能到64位;而AI训练,则能够应用数值范畴大、精度低的16位浮点类型;对于AI推理,因为推理要求速度、耗能少,则能够在更低的数值精度下进行解决,如4位、甚至2位、1位整数类型。

也就是说AI的利用引入了新计算类型,从推理到训练,跨度更大,同时,数据量也从GB级到TB级、PB级一直晋升,类型从结构化到半结构化、非结构化更加简单多样。

不同数值精度的计算类型对于计算芯片指令集、架构的要求是不一样的,这样就导致之前咱们始终应用的通用CPU芯片曾经无奈满足这种多元化计算场景要求了,这也是计算芯片的品种越来越多的很重要的起因。

第二个挑战是巨量化。巨量化首先体现在模型参数多、训练数据量大。
以自然语言解决为例,基于自监督学习的预训练模型衰亡后,模型精度随着模型尺寸及训练数据的减少而显著晋升。

20年GPT-3模型的参数量首次冲破千亿大关,达到了1750亿。依照以后的发展趋势,23年模型的参数量将冲破百万亿,也就是根本达到人脑神经突触数量,人脑的神经突触数量约125万亿。

巨量模型须要巨量内存。以后一颗GPU的板载高速内存容量为40GB,对于蕴含百万亿参数的巨量模型,仅是将这些参数平均分配到每个GPU内存中,就须要1万块GPU能力装得下。

思考到训练中须要额定的存储,实际上至多须要2万块GPU能力启动训练。现有AI芯片的架构曾经不足以撑持巨量模型的参数存储需要。

同时,巨量模型依赖海量数据的喂养,目前的AI算法实质上还是一种依赖质变的量变,很难从一种量变跳跃到另一种量变,例如最新的巨量模型须要万亿级的词量数据。海量数据须要海量存储。在超大规模集群中同时满足几万块AI芯片的高性能读取,对存储系统是个极大的挑战。

巨量化的第二个体现是计算力需要指数增长

深度学习自2011年衰亡至今,对算力的需要始终呈指数增长。每隔3.4个月,算力需要翻一倍。Petaflops*day代表以1P每秒的算力计算一天所用浮点计算量来度量算力。训练巨量模型须要微小算力:20年GPT-3的算力达到了3640PD,到23年巨量模型的算力需要将达到百万PD。

在当今世界最快的超算零碎上,实现百万PD的计算所需工夫约为2年。不同畛域须要不同类型的巨量模型:GPT-3以解决英文了解工作为主,为了满足不同语言,不同场景的精度要求,也要训练不同的巨量模型,这进一步加剧了对算力的需要。

如此宏大的算力需要给计算技术和产品带来了微小挑战。解决这样的挑战须要从体系结构、系统软件等各个领域发展翻新。

最初咱们来看一下智算面临的生态化的挑战,AI的技术链条、产业链条是脱节的。我想很多人会有这样的疑难,人工智能那么好,然而这货色怎么跟我的业务,跟我的客户利用场景联合起来呢,我想用AI技术做智能化转型,然而发现我这里没人懂算法,懂模型,也短少好用的AI开发平台。同时,那么多算法,模型,如何找到不同算法在利用中的最优组合。

懂这些的人,往往都集中在科研机构或者头部公司。这些中央集中了最优良的AI人才,但短少对传统行业的需要场景、业务法则的深刻了解,也拿不到最要害的业务数据去对模型进行训练,导致技术无用武之地。

埃森哲等咨询机构的调查报告也表明,70%以上的有技术的钻研机构、科技公司缺需要场景、缺畛域常识和数据,70%以上的行业用户缺技术人才、缺AI平台和实际能力。

2 AI减速技术介绍

2.1 AI架构

通常用户对接触到的AI架构相干的信息是申请XX核CPU, XX张CPU卡,XXGB内存等资源,其对应AI架构的计算资源、存储资源和网络资源,理论的AI架构包含计算节点、治理节点、存储节点、计算网络、管理网络和客户端等。

如何进行计算资源的布局呢?秉持的准则是花最低的老本满足需要,同时思考到扩展性,比方有两种以上计算特色的业务,而且规模都不小,那么对应的计算节点类型也应有两种以上;如果极限需要规模远大于其它需要,那么能够缩小计算节点类型数量,以便未来一直扩大。

2.2 AI减速技术

AI对计算的需要十分大,如何减速间接关系到生产效率和老本,上面介绍一下以后最新的一些AI减速技术。

2.2.1 计算

(1)异构计算

在GPU用于AI计算前,都是CPU承当计算工作,然而随着AI计算需要的急剧减少,CPU的计算效率难以满足需要,产生了“CPU+GPU”的异构计算架构,如下图右上角所示。

如下图右下角所示,GPU的计算效率是CPU的几倍~几十倍,为什么CPU和GPU的计算效率会有这么大的差别呢?次要是CPU和GPU的架构存在微小差别,如下图左下角所示,GPU的计算单元数量远远多于CPU的计算单元,所以GPU更适宜于大规模并行计算。

而CPU架构中Control和Cache单元面积则比GPU大得多,所以CPU更实用于不能高度并行的简单计算(比方代码中的if语句等)。

(2)NVLINK通信

随着AI计算规模增大,例如大规模AI训练,须要多卡甚至多个节点同时参加一个工作的计算,其中一个关键点就是如何反对节点内GPU间的高速通信,以便他们能够作为一个微小的加速器相互协作。

尽管PCIe十分规范,然而带宽十分无限,如下图左上角所示,PCIe Gen3的实践带宽是32GB/s,PCIe Gen4的实践带宽是64GB/s,而实测带宽大略别离是24GB/s和48GB/s。

在AI训练中,没实现一轮计算,都要同步更新一次参数,也就是权系数,模型规模越大,参数规模个别也会更大,这样GPU之间通信(P2P)能力对计算效率影响就比拟大,如下图右上角所示,同样是8卡V100, NVLINK2.0架构相比PCIe架构性能晋升26%,NVLINK2.0 Next架构(全互联,任意两张卡间P2P通信带宽都是300GB/s)则相比PCIe架构晋升67%。

NVLINK是NVIDIA开发的一项高速GPU互联技术,当初曾经倒退到第三代(NVLINK3.0),如下图下半局部,从NVLINK1.0(P100)到NVLINK2.0(V100),再到NVLINK3.0(A100),带宽从160GB/s到300GB/s,再到600GB/s,NVLINK1.0和2.0的P2P通信不是全互联,也就是,任意两张GPU卡之间的通信带宽理论没有达到最大带宽,有的甚至还通过PCIe通信,这样节点内GPU P2P通信就产生了台阶。

而NVLINK3.0则实现了P2P全互联通信,任意两张卡之间的通信带宽是600GB/s,极大的晋升了节点内多卡计算效率。

(3)Tensor Core

V100的张量外围是可编程的矩阵乘法和累加单元,能够提供多达125 Tensor TFLOPS的训练和推理利用。V100蕴含640个Tensor Cores。每个张量核提供一个4x4x4矩阵解决数组,它执行操作D=a*B+C,其中a、B、C和D是4×4矩阵,如下图上部所示。矩阵乘法输出A和B是FP16矩阵,而累积矩阵C和D能够是FP16或FP32矩阵。

每个 Tensor 外围每个时钟周期可执行 64 次浮点混合乘加 (FMA) 运算。从而为训练和推理应用程序提供高达 125 TFLOPS 的计算性能。这意味着开发人员能够应用混合精度(FP16 计算应用 FP32 累加)执行深度学习训练,从而实现比上一代产品快 3 倍的性能,并可收敛至网络预期准确度。

Tensor内核提供的GEMM性能是以前硬件的几倍,如下图右下角所示,GP100(Pascal)和GV100(Volta)硬件的比拟性能。

(4)多元算力

随着AI的倒退,产生了各类芯片,比方CPU、GPU、ASIC、FPGA,如下图上部所示,从通用性和性能两个维度去剖析比拟,通用性维度:CPU > GPU > FPGA > ASIC,性能维度则是正好相同。不同的AI工作,对芯片的要求不同,比方训练任务,须要能反对各类框架、模型、算法库等,须要很高的通用性,NVIDIA GPU因为其齐备的生态,具备很高的通用性,从而占据主导地位。

而对于推理工作,则仅需反对某一或某几个框架、模型、算法库等,因为凑近业务,所以对性能和老本的需要更多,于是ASIC芯片则在局部场景的性价比超过NVIDIA GPU,从下图下半所示的IDC统计的各类芯片市场销量能够看进去,在推理市场,NVIDIA GPU尽管依然占据主导,然而其它芯片的仍然能跟上NVIDIA GPU的步调,训练市场,其它芯片仍然停顿迟缓。


(5)低精度

如果能将32位的浮点数压缩到16位,尽管会损失肯定的示意精度,但无论在参数的存储空间上还是在计算量(FPU计算次数)上都会带来极大的改良。

这就是混合精度训练的基本原理。权重的主版本是以FP32模式存储的,在做推理与反向流传运算时先换成FP16在做计算,在做权重更新时,更新的增量(梯度乘以学习率)也是加到以FP32示意的权重上的,如下图上部所示。

如下图所示,在某些场景,低精度不仅带来性能的提,还能够在推理工作重用来解决更简单的模型,从而进步推理工作的精度。

2.2.2 网络

(1)GDR

GDR(GPU Direct RDMA),就是计算机1的GPU能够间接拜访计算机2的GPU内存,如下图上半部所以。理解GDR概念之前,首先理解DMA和RDMA概念。

DMA(Direct Memory Access)间接内存拜访,是Offload CPU负载的一项重要技术。DMA的引入,使得原来设施内存与零碎内存的数据交换必须要CPU参加,变为交给DMA管制来进行数据传输,是一种齐全由硬件执行I/O替换的工作形式。
RDMA能够简略了解为利用相干的硬件和网络技术,服务器1的网卡能够间接读写服务器2的内存,最终达到高带宽、低提早和低资源利用率的成果。

目前RDMA的实现形式次要分为InfiniBand和Ethernet两种传输网络。而在以太网上,又能够依据与以太网交融的协定栈的差别分为IWARP和RoCE(包含RoCEv1和RoCEv2)。

所谓GPUDirect RDMA,就是计算机1的GPU能够间接拜访计算机2的GPU内存。而在没有这项技术之前,GPU须要先将数据从GPU内存搬移到零碎内存,而后再利用RDMA传输到计算机2,计算机2的GPU还要做一次数据从零碎内存到GPU内存的搬移动作。

GPUDirect RDMA技术使得进一步缩小了GPU通信的数据复制次数,通信提早进一步升高。

(2)SHARP

SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)是一种汇合通信网络卸载技术。

在AI训练中,经常有很多汇合类通信,这些汇合类通信因为波及全局,经常对应用程序并行效率产生微小的影响。

针对这种状况,NVIDIA Mellanox从EDR InfiniBand交换机开始引入了SHARP技术,在交换机芯片中集成了计算引擎单元,能够反对16位、32位及64位定点计算或浮点计算,能够反对求和,求最小值,求最大值,求与,求或及异或等计算,能够反对Barrier、Reduce、All-Reduce等操作。

在多交换机组成的机群环境下,Mellanox定义了一整套的可扩大分档次聚合和归约协定(SHARP)卸载机制,由聚合管理器(Aggregation Manager)在物理拓扑中结构一个逻辑的SHARP树,由SHARP树中的多个交换机并行分布式解决汇合类通信操作。

当主机须要进行全局通信例如allreduce时,所有主机把通信数据提交到各自连贯的交换机,第一级交换机收到数据后,会应用内置的引擎对数据进行计算和解决,而后把后果数据提交到SHARP树的上一级交换机,上一级交换机也应用本人的引擎对从若干个交换机收上来后果数据做聚合解决,并持续向SHARP树的上一级递交。

达到SHARP树的根交换机后,根交换机做最初计算并把后果回发给所有的主机节点。通过SHARP形式,能够大幅升高汇合通信的提早,缩小网络拥塞,并晋升机群系统的可扩展性(如下图上半部所示)。
SHARP对于简单模型,简单多层网络成果更加显著,如下图下半部所示,随着集群规模的增大,开启SHARP性能后,提早根本没变动,相比未启用SHARP性能,提早呈线性增长;同样对于最终的性能晋升也是差别比拟大。

(3)IB(INFINIBAND)

InfiniBand Architecture是为大规模数据中心设计的软件定义网络架构,它的设计旨在实现最高效的数据中心互连基础设施。InfiniBand原生地反对SDN、Overlay和虚拟化等网络技术,是一种凋谢规范的高带宽、低时延、高牢靠的网络互连。相比RoCE网络,IB有诸多劣势,如下图上半局部。

当然对于AI训练网络是选用IB还是RoCE,在近期的套餐降级计划中争执的比拟强烈,NVIDIA是主推IB的,他们的论据是除了列出各种性能劣势外,还有近两年互联网企业,如阿里、百度、京东、腾讯等部署的AI集群大都采纳IB网络,然而也拿不出十分让人服气的量化数据,从阿里的维度看,因为有一支专门的RoCE网络优化团队,所以取得了近似IB的性能,同时NVIDIA所列的SHARP等Benchmark性能在理论用户中仅获得3%-5%左右的性能晋升(当初预计是在大模型、三层及以上网络架构效果显著些)。

总的来说,目前阶段的论断是IB是优于RoCE,IB把优化工作做到生态(NCCL/CUDA/…)中,对用户来说,优化工作量十分小,然而对于RoCE,须要有专门的团队,较深的优化积攒,相比较而言,以后抉择IB更适宜,当然老本有所晋升,但如下图下半局部,带来的性能晋升量更大。

当然,在云化的大背景下,除了以太,又多了一套网络架构,对于整体运维和治理带来复杂度晋升,所以,IB&RoCE之争无妨能够再深入分析,列举更多的量化数据,做更多的原理性分析,从而达到对网络的深度认知。

(4)多网卡

后面讲到NVLINK3.0的通信带宽为600GB/s,PCIe4.0的实测通信带宽也达到了48GB/s,而以后的计算网络通常最大是100Gb/s(12.5GB/s),所以对于须要跨节点多机多卡计算的大模型训练任务时,节点间参数通信就会遇到瓶颈,这时有必要采纳多网卡策略,也就是两个节点间不再是连贯1根网线,而是多根,从下图能够看出多网卡对于性能的晋升量显著,因为网络老本占整个计算零碎老本个别为10%左右,所以10%以上的性能晋升对于整个计算零碎来说,性价比是晋升的。

2.2.3 存储

(1)GDS

GDS(GPUDirect Storage),是NVIDIA推出的又一GPUDirect技术,因为GPU计算速度很快,然而随着数据集和模型规模一直减少,应用程序载入数据破费的工夫越来越长,进而影响了应用程序的性能,而且特地是端到端架构,会因为迟缓的I/O使得运算速度日益晋升的GPU无用武之地。

数据从NVMe磁盘传输到GPU內存的规范门路,是应用零碎內存中的回弹缓存(Bounce Buffer)也就是额定的数据拷贝。而GPUDirect存储技术防止应用回弹缓存,以缩小额定的数据正本,并应用间接內存存取引擎(Direct Memory Access,DMA)将数据间接放到GPU內存中,为远端或是本地存储。

诸如NVMe或NVMe over Fabric,和GPU內存之间,建设一个间接传输数据的门路,而这能无效加重CPU I/O的瓶颈,晋升I/O带宽和传输数据的量。

英伟达倒退GPUDirect存储技术,大幅晋升GPU载入大型数据集的速度。英伟达提到,GPUDirect存储技术的次要性能,就是通过这个新的零碎,以间接內存的存取形式,将数据传输至GPU内存上。

当然,倒退到当初GDR落地场景还不是很多,首先是文件系统须要做适配,只有通过NVIDIA认证了能力反对GDR技术,限度了技术的推广;其次,GDR次要还是单机内的技术,而且NVME次要是用来承载内存空间有余,对立存储带宽又偏低的一个中间状态需要,实用的场景较窄,所以业内适配的积极性也不高,但不管怎么说,GDR也为AI架构又提供了一种减速抉择。

(2)Burst Buffer

Burst Buffer技术可能利用计算节点本地SSD硬盘,组成长期高速缓存文件系统。该性能能够通过更快的checkpoint restart进步应用程序可靠性;放慢小块传输和剖析的I/O性能;为外围内部应用程序提供疾速长期存储空间;为须要计算过程中长久疾速存储的大量文件输出计算工作创立暂存区域。

之前在HPC架构中采纳较多,比方世界HPC TOP500榜单排名前10的超算集群,有多套已采纳Burst Buffer技术,在AI架构中,当初也有用户在尝试采纳相似技术,为大规模训练提供超大高速缓存。

2.2.4 并行技术

AI大规模训练中,十分重要的一项技术就是并行技术。在多个计算设施上部署深度学习模型是训练大规模简单模型的一种形式,随着对训练速度和训练频率的要求越来越高,该办法的重要性一直增长。

数据并行化(Data parallelism,DP)是利用最为宽泛的并行策略,但当一张GPU的显存不能放下一个模型时,须要堆模型进行拆分, 将模型分为N个局部,别离加载到不同的N个GPU节点中,模型拆分依照拆分形式不同,又分为张量切片模型并行(层内模型并行)、Pipeline模型并行(层间模型并行)。

如DeepSpeed模型,GPT-3模型等则须要采纳多种并行形式组合,能力残缺装下整个模型。

而对于GPT-3模型来说,其对计算和I/O的需要都十分大,须要综合后面讲到的次要的减速技术,比方NVLINK,Tensor Core、IB、多网卡、GDR、并行形式等,能力高效的实现大模型训练。

2.3总结

后面讲到了各种AI减速技术,其实汇总起来无外乎都是在朝着两个方向致力:计算和I/O,采纳异构计算是为了晋升计算能力,采纳NVLINK、IB、GDR、GDS、BurstBuffer、多网卡等都是为了晋升IO带宽和提早。

因为从GPU 缓存(7TB/s)到显存(1.6TB/s)、CPU内存(90GB/s)、高速缓存(24GB/s)、NVME硬盘(6GB/s)、分布式存储(5GB/s,规模大可到几十上百GB/s)、 冷存货(2GB/s),IO带宽存在台阶,所以AI架构IO减速的方向是在逐渐补救台阶的差别,当然算法上还须要尽可能的利用架构的特点,最大化的利用最快的IO架构。

3 GPT-3模型预训练计算架构剖析

上面以GPT-3模型预训练为例,进行简略的架构剖析。

3.1 GPT-3模型计算特征分析

在进行AI架构方案设计时,首先要弄清楚GPT-3的计算特色,也就是什么样的计算和I/O满足GPT-3模型预训练的极限需要。

个别是通过实践剖析和理论测试两个维度剖析,通过剖析,能够获知,GPT-3的I/O须要靠近100GB/s,对应的网络须要4*HDR 200网络反对,也就是须要4网卡,这次采纳的是Infiniband网络。

其次是计算需要,以A100的算力312TFlops来评估:GPT-2的计算需要约为 10 PetaFlop/s-day, 约等于64个A100 GPU训练1天工夫;GPT-3的计算需要约为3640 PetaFlop/s-day, 约等于64个A100 GPU训练1年工夫。下表是近期业内公布的几个大模型应用的训练计算资源状况。

3.2 GPT-3模型预训练计算架构剖析

如前一节剖析,AI计算架构的计算局部采纳最新的A100 GPU卡,I/O局部采纳4*HDR200 IB网络,GPU之间采纳NVLINK实现600GB/s高速互联。

NVLINK A100 服务器拓扑

下图是对应的网络拓扑:

大模型训练平台架构(140节点)

4 结语

AI算力是人工智能三要素的重要组成部分,AI减速技术围绕计算和I/O正在飞速的倒退,一直晋升AI计算工作的计算效率,咱们增强对于AI架构的了解。

当然AI减速除了配置相应的硬件架构,还须要平台、框架、算法等相干技术人员一起单干,能力最大化的利用以后最新的AI架构。

作者简介

Jason OPPO高级AI架构师

毕业于中科院地质与地球物理研究所,曾任职浪潮高级AI架构师,为AI客户提供AI算力架构选型与优化。

获取更多精彩内容,请扫码关注[OPPO数智技术]公众号