导读:

百度智能云于3月9日对外宣告落地新一代高性能AI打算集群,可供应EFLOPS级算力支持,并发布新一代GPU做事器实例GPU-H5-8NA100-IB01。

3月16日,智东西公开课联合百度智能云、英伟达,策划推出「百度智能云&英伟达新一代高性能AI打算集群」线上分享会,并在B站企业号“百度智能云的朋友们”和“百度智能云”视频号,以及“智猩猩”视频号上成功进行同步直播。

百度智能云的异构打算产品经理玄凌博、资深研发工程师孙鹏、资深系统工程师武正辉,以及英伟达办理方案架构师程帅四位技能专家参与了本次线上分享会,并环绕新一代高性能AI打算集群中的技能方案和运用进行了深入阐发。

直播实录  周全剖析新一代高机能AI计算集群中的技能筹划和应用

GPU云产品体系先容和运用处景分享百度智能云异构打算产品经理玄凌博

从算力维度出发,首先回顾企业在打算方面的发展

按照韶光维度,企业有四个范例的打算发展阶段:1、2006年以前,大多数企业仍因此传统物理机为主的单体IT架构;2、2006年往后,随着企业上云的大趋势,迎来了云打算的时期,并随着云做事器、弹性裸金属等产品的爆发,能够弹性按需的知足企业对IT资源的利用诉求;3、2017年往后,随着云原生技能的成熟,像容器、微做事等技能不断的商业化落地,能够为企业供应极致弹性,云原生运用的开拓架构;4、2020年往后,随着人工智能技能不断的爆发及增长,现在正迎来一个AI原生云的阶段。

企业须要极强的AI算力,来知足各个AI运用干系的开拓及演习。
在这个时期,云做事器厂商须要供应极致弹性且高性能AI算力,是适用于AI运用开拓的云架构。

为了更好的办理人工智能打算的并发问题,常日会利用适用于打算密集且易于并行打算的GPU。

随着打算架构的不断发展,异构打算加速器常日会包含多种打算核心,来更有效率的加速分外数据格式的打算。
以NVIDIA GPU为例,常日CUDA Core是面向通用打算的打算核,能够打算险些所有的数据格式。
RT Core则是面向渲染里做光芒追踪的加速单元,而Tensor Core则是面向人工智能或深度学习里做矩阵向量乘加的核心。
近年来,很多国产的AI芯片也采纳了类似的思路和策略,例如昆仑芯,包含拥有大量的面向矩阵做加速的处理单元。

异构打算是AI原生时期主要的算力底座。
百度内部拥有大量的AI运用处景,多年的AI算力培植履历和技能积累,通过百度智能云对外供应的异构打算云做事,能够赋能千行百业。

云上的异构打算做事紧张分为两种:一种因此BCC异构打算云做事器的形态,供应极致弹性、灵巧、高性价比的算力规格。
而搭配BBC异构打算的弹性裸金属做事器,能够做到算力的零虚拟化丢失、百分百做事于客户业务,供应极高性能的算力,且知足部分客户对安全隔离性的哀求。

百度智能云支持丰富的异构加速卡的型号,支持英伟达最新的安培架构打算卡,也供应自研的加速芯片昆仑芯。
在高性能的异构打算上,用户可以在分钟级创建以往可能花费须要数月来构建的InfiniBand集议论况。

在产品命名上,主力产品的实例规格族和异构卡类型是逐一对应的,比如GN5常日会支持英伟达安培架构的卡,GN3会支持上一代的架构,像V100、T4等。
在实例规格的搭配方面,实例根据GPU的一些物理规格,例如显存、SM等,经由了合理CPU、内存配比。
针对部分的异构打算卡也供应了像vGPU的实例,能够供应更具性价比的打算算力和渲染算力做事。

在面向AI运用爆发的时期,异构打算产品也在不断打磨,推出新的产品特性。
除了业界对云做事的一些通用哀求,像运维及弹性按需之外,百度智能云也深耕GPU虚拟化技能,通过透传、GPU分片以及多容器共享等技能,能够更好的提高客户对资源的利用率。
在硬件层面上,也是百度智能云投入的重点,陆续推出了自研的AI芯片、AI架构做事器,即X-MAN,以及云上高性能的网络组网办法,目的是能够不断提高AI全栈的负载打算效率。

在异构打算卡、做事器和网络等方面,百度智能云的产品能力有哪些?

不同GPU的型号都有不同的定位,面向打算的GPU,比如AI推理、演习或者HPC的型号,常日会在双精度浮点FP64以及半精度FP 16上做一些分外的加强。
有些GPU则会支持更多的运用处景,例如A10,有更多的CUDA Core和RT Core,在渲染场景也有很好的性能,供应更强的单精度算力。

除了打算单元,显存也是一个很主要的参数。
A100和A30都是支持HBM的。
对付一些访问密集型的打算,HBM显存会有更强的性能表现。
此外一点是GPU的P2P能力,PCle这一代在双向带宽上可以做到64GB,而支持NVLink的打算卡,比如A100、V100,能够在GPU P2P上有进一步的能力提升,像最新的NVLink 3.0,可以做到双向600GB的量级。

除了英伟达的卡,昆仑芯也来迎来了第二代。
第二代的昆仑芯在性能上都有了全方位、大幅度的提升,比如在通用性以及各个规格的算力,工艺也从13纳米到了7纳米。
除了性能的提升,也集成了ARM核,可以更好的适用于一些边缘打算场景。
此外,也考虑到了分布式的范例AI运用处景,昆仑芯也可以支持K-Link这种高速P2P能力。
如果客户在云上溘然对虚拟化有一些诉求,昆仑芯可以在物理上支持虚拟化。
在软件的适配性上,供应了更友好的开拓环境,支持C和C++编程。

本次讲解的重点话题是云上的高性能打算集群,以往企业搭建一套高性能打算集群,须要投入极高的人力本钱和数月的韶光本钱。
而大部分客户利用高性能打算,追求的是极高的业务时效性。
利用百度智能云可以分钟级获取到一套高性能的异构打算实例,也便是利用最新发布的高性能H5系列,来组建高性能集群,这套实体也是基于X-MAN架构来对外供应做事。

在打算效率上,数据的访问效率及通信效率都进行了硬件层面的升级与增强;在配置上,标配了业界最高规格的配置,比如英特尔铂金系列CPU,全闪存确当地皮,还有和GPU 1:1配比的InfiniBand网卡;I/O设备可以直连A 100 GPU,这样可以通过GDR、GDS加速GPU读取I/O设备的访问效率。

在集群分布式的AI演习中,每每会有一半的韶光用于GPU节点之间做梯度交流,而在交流时则会造成打算资源的闲置或摧残浪费蹂躏,影响了全体模型的收敛效率。
那RDMA的高性能网络,可以极大的降落节点之间的时延,而InfiniBand作为天然支持RDMA的通信协议,有极强的性能表现。
InfiniBand比拟传统TCP IP协议,对时延有极大的提升。

有集群培植履历的同学可能知道,搭建一个集群并非易事,这个过程会有很多不同的选择,比如单机该如何选,演习卡是什么样,演习卡内部的互联办法是什么样,多机之间又该当如何架设网络担保它们之间能高效通信,网络规模又须要是什么样的,这些都是在集群培植中很关键的问题。

那么如何更有效率的发挥硬件的性能?百度在去年推出了百度百舸·AI异构打算平台,除了高性能H5这些打算实例外,也推出了AI容器、AI存储,进一步能提高GPU事情效率和作业效率,像AI存储可以供应百万级IOPS和百万GB吞吐的能力,可以进一步的提高演习数据读取效率;AI容器则供应多种调度以及GPU增强能力,比如AI作业调度、集群管理能力,并且供应GPU容器虚拟共享。

超大规模AI异构打算集群的设计和优化百度智能云资深研发工程师孙鹏

最近,业界有一个很大的趋势是演习规模越来越大的模型。
从GPT-3开始,模型已经被推到了千亿参数量的维度。
从2020年到现在,各个厂商也在不断推出更大参数量的模型,比如OpenAI的GPT-3、Google的Switch Transformer,百度去年也先后推出了多个大模型,像ERNIE 3.0 Titan,它是环球最大的中文单体模型。

末了一个是专家并行模式或者稠浊专家模式,它要做全卡之间的All2All操作,每张卡在往外发数据的同时,每张卡还要做收数据,这对全体集群哀求非常高,尤其是对网络上的吞吐和整体网络的交流能力,这个也导出了哀求机间高吞吐All2All的需求。

那大模型究竟是个什么样子?该怎么用它呢?文心大模型供应了一个线上试用的地址:https://wenxin.baidu.com/wenxin/ernie,感兴趣的同学可以打开试一试。

文心大模型可以在NLP领域支持多个任务,包括歌词续写、旅行问问、剧本天生、对联续写等。
举个大略例子,输入文本“7月11日准备去青海,该准备怎么样的服装”,文心大模型会根据演习过的模型数据自动天生一段对话:“如果是自己去,要准备好衣服、雨衣、帽子、墨镜、手机、相机,还有一些生活必需品,如腕表、相机、雨衣、防晒霜、太阳伞、洗发液等。
这些是在青海的基本必需品。
”,结果看起来比较符合真实场景,也比较符合人类智能,这便是用大模型的实际感想熏染。

同时,大模型不仅业务效果好,而且对业务还会产生很多的收益,比如随着模型规模越来越大,业务演习过程中的丢失会越来越低,而且呈Power-law的趋势。
并随着参数规模的倍数增长,Test Loss会线性低落,这也带来了一个启示:可以用大模型的办法提升整体业务的演习效果,或整体业务在线上的效果。

除此之外,研究职员还创造大模型可以通过小样本在其他领域取得很好的效果,不须要像原来一样,对每个业务场景都重新演习一遍,而是先拿一个大参数的预演习模型,结合特定领域的小样本做finetune,可以很快完成业务的迭代。
而从一定程度上也反响,它实在是一种更靠近通用智能的办法。

虽然大模型有很多好处,但大模型演习会很难,那究竟多难呢?比如有3000亿条词语,须要1750亿的参数,这样的模型打算量大概是420ZFLOPS,个中1 ZFLOPS是1024 EFLOPS,1 EFLOPS又是1024 PFLOPS,这是一个非常大的数量级。
也有论文剖析,对付这么大的参数、这么多的样本,用1024张A100卡,也须要月级别才能完成演习,这对全体演习和技能架构的寻衅都是非常大的。

百度智能云现在做的便是如何在大规模参数情形下完成高效稳定的持续演习。
模型演习须要这么多的参数,也须要很多的打算资源,因此须要搭建一个集群来支撑全体演习。

有集群培植履历的同学可能知道,搭建一个集群并非易事,这个过程会有很多不同的选择,比如单机该如何选,演习卡是什么样,演习卡内部的互联办法是什么样,多机之间又该当如何架设网络担保它们之间能高效通信,网络规模又须要是什么样的,这些都是在集群培植中很关键的问题。

要解答这些问题,必须深入全体理解大模型演习的过程和模式。
以是接下来会结合现在业界比较主流的几种大模型演习办法,对它进行展开和阐发,看看完全的演习一个大模型须要什么样的打算、通信和过程。

先来看下业界比较主流的稠浊并行的模式,稠浊并行是指什么?先来做一个大略的数学打算题,在当前的大模型下,假设以1000亿参数为例,每个参数须要占4个字节,是FP 32的数据类型,因此仅对付这个参数来说,就须要400G旁边的存储空间。
比拟市情上最大的打算卡,一张卡可能只有80G,像NVIDIA A100,在400G到80G之间存在一个很大的GAP,尤其是包含了其他的一些梯度等中间变量之外,GAP会变得越来越明显,以是无法大略粗暴的像以前一样把一个模型塞到一张卡里,然后通过纵向扩展数据卡来提升演习效率,而是一定要把模型做切分。

目前,大模型常日都是BERT类模型,BERT类模型的特点是不断的堆叠Transformer层,这种堆叠天然的带来一些切分的策略和办法。
业界常日有几种切分策略,如BERT模型中的两个Transformer层,这两个Transformer层之间会有前后的依赖关系,即在第一层打算完之后,把打算结果传送到第二层再开始打算,这就带来了一种切分的可能性,便是按层切分,

把这种每层切分的办法叫做流水线并行,由于层与层之间可以认为是流水线的过程,先把第一层打算完,然后再流水的打算第二层。

除此之外,再不雅观察每一层内部,在大模型的环境下,MatMul参数会特殊大,导致个中的矩阵张量都会很大,在一张卡上打算会比较慢,那如何加速这个过程呢?可以把模型中的张量一分为二,一部分卡卖力个中的一部分打算,它们之间的额外代价须要进行一些通信操作,这种切分由于是把一个张量一分为二,以是这种切分策略常日称为张量切分或模型并行。

有了这样的切分办法之后,模型基本可以做一个完全的演习。
由于样本比较多,这时演习效率会比较低,可以通过传统的数据并行办法,不断的堆叠这些层做数据演习的加速,这便是纵向扩展办法,也是大家比较熟习的数据并行办法。

由于显存占用还是比较紧张的,还有一些减少显存占用的策略和办法,大家比较熟习的是Sharding办法。
这些稠浊策略整合起来,会形成稠浊并行的策略,像百度飞桨提出的4D稠浊并行策略便是将这几种运行策略做了组合。
这个是第一种大模型演习办法,即稠浊并行的模式。

纵然集群搭建好了,但上面的所有软件或模型也不可能一贯安全的运行下去。
除了硬件之外,还要在软件层面做一些软硬结合的联合优化。
百度有8年多的万卡规模EFLOPS算力最佳实践的能力和积累,然后把这些最佳实践统统用到了自研的平台上,下面先容几个比较有特色的:

在百度内部我们对全体演习的模式做了更细微的不雅观察,以及更量化的打算。
如果以1000亿参数的模型为例,对付不同的切分模式、切分策略,在通信的卡数、通信量上以及在通信过程中做打算韶光都会有不同的差异,这就能整体推导出对集群需求会不一样。
比如流水线并行,一样平常会把不同流水线的层放到不同机器上,机器之间须要相互通报末了一层的激活以及反向梯度,这常日是一个标准的Send/Recv操作,而这个数据量大概在MB级别。
这种并行模式对集群的哀求是机间的P2P带宽延迟要非常低,从而只管即便减少对全体模型演习的壅塞。

大家比较常见的数据并行模式,同样也会把它分身分歧的组,然后组内全部卡都要做数据并行的AllReduce操作。
虽然看起来数据通信量很大,但是留给它的打算韶光相对的充裕一些,不过整体上来看,仍旧哀求很高的机间高吞吐AllReduce操作。

末了一个是专家并行模式或者稠浊专家模式,它要做全卡之间的All2All操作,每张卡在往外发数据的同时,每张卡还要做收数据,这对全体集群哀求非常高,尤其是对网络上的吞吐和整体网络的交流能力,这个也导出了哀求机间高吞吐All2All的需求。

结合论文来看,还有一个隐式的需求,比如在英伟达在《Efficient Large-Scale Language Model Training on GPU Clusters》论文中预估过:1750亿参数的模型,在3000亿样本的规模下,纵然是1024卡,也须要演习34天。
掩护过集群或做过分布式学习的同学可能都会知道,这么多卡在这么永劫光之内不涌现故障基本是不可能的,那如何担保在有故障发生的情形下,模型能持续稳定的演习,也是亟需办理的问题。

总之,为了演习一个完全的大模型,要培植一个机内高速通信、机间有低延迟高吞吐能力,同时支持大规模算力的集群,还要担保它能持续稳定的月级别演习。

百度智能云推出的百度百舸·AI异构打算平台,便是基于这样的AI工程能力构建的办理方案。

百度百舸·AI异构打算平台在底层利用了超级AI打算机X-MAN,也基于InfiniBand做了一个大规模网络的培植,同时还合营上自己的高性能存储,办理了数据I/O的问题。
在这之上,还给AI容器做了一些优化,比如有高效的AI作业调度、AI加速引擎,再合营上PaddlePaddle框架、TensorFlow框架、PyTorch框架,可以很方便的给开拓者供应高性能、高效率且稳定的大规模模型演习的平台和场景。

首先,从单机层面看,单机用的是X-MAN 4.0超高性能打算机。
这款打算机上搭载了8块NVIDIA A100 80GB GPU,共供应640G显存,由于须要卡与卡之间的高性能通信,以是启用了NVSwitch,担保机内带宽能做到134GB每秒。
同时,为了能担保机间能做高性能的互联,终极选择了8×200G的网卡,接下来会用IB网络做互联。
这台机器的效果若何呢?在最近发布的MLPerf 1.1单机演习A100 80G规格中,做到了环球TOP 2。

再来看下集群,集群上关注的是规模如何以及集群互联办法是什么样的。
这里选用了一个面向大模型优化过的三层Clos架构,分别是Tor层、Leaf层、Spine层,它最大能支持到16000卡的超大规模集群,这个规模是现阶段全IB网络盒式组网的最大规模。

上面提到在打算过程中会频繁做AllReduce操作,乃至会做All2All操作。
结合这些打算模式,尤其是针对AllReduce需求,做了一个8导轨网络的定制优化,即在同号卡只管即便减少跨网络的跳步数,从而增加网络的稳定性,以及减少对整体网络的冲击。
此外还充分使能了IB网络中的Sharp能力,整体支撑集群的稳定和持续演习。

在网络架构上,结合CPU、 GPU做告终合网络方案,从而高效的供应网络拓扑感知能力。
那这个集群的效果如何?在建完之后做实测,创造集群中的P2P延迟能做到1.4us旁边,网络中均匀时延小于2us。
单机转发延时小于200ns,远低于以太网络的400~500ns。
在96机All-Reduce算法带宽实测为78GB每秒。
同时,为了担保作业能稳定的演习,还特意测试了性能稳定性,性能稳定同等性能做到98%的水平,也便是靠近一个一贯在稳定通信的状态。
有了这样的集群就可以让算力发挥的更好,从而让演习韶光变得更短。

首先是自研的异构凑集通信库ECCL。
由于内部有很多不同代的GPU,还有昆仑芯平分歧的异构芯片,如何把所有的芯片都高效使能起来,是要办理的一个关键问题。
同时,在大规模上还须要办理一些拓扑探测、拓扑感知的问题,以是也把它放在通信库中。

在此有这么多资源,还须要做一个比较好或比较科学的调度和管理,包括AI作业调度、硬件感知,及在演习过程中创造的故障节点和慢节点的感知,放到了集群资源管理层中。

百度自研的PaddlePaddle框架,供应了从框架到集群再到通信联合优化的可能性。

下面会为分享一些详细的case。
先从通信来看,自研的异构凑集通信库ECCL是为理解决现在集群中同时存在多类芯片,但集群中的容错能力有限,而且有一些慢节点业务感知不到,逐步的拖慢了演习效率。
为理解决这些问题,设计了一款自研高性能凑集通信库,它首先是面向超大规模设计的,专门为这些弹性能力做了一些考虑。
此外,还供应了一些拓扑探测、通信算法的高性能实现,加上刚才提到的在演习过程中很敏感的故障感知,供应了部分的自愈能力,这些都在大集群中做过验证。
除此之外,还具备异构多芯的特点,能支持GPU和CPU之间、GPU和昆仑之间的高性能通信。
总之,它便是为了加速卡与卡之间AllReduce等级流动性操作而设计。

异构芯片通信通过联合GPU、昆仑团队,把传统须要通过CPU中转、CPU过滤转发进行通信的办法,通过Direct RDMA的办法直接进行实现,这样可以有效减少数据拷贝的次数,提升通信性能。

IB网络中也有很多故意思的能力,比如做AllReduce操作时,为了担保网络吞吐尽可能发挥,会在算法层做一些AllReduce实现。
AllReduce本身会进行两次操作,比如同一块数据要做两份,但会给集群带来的是数据要在全体网络和集群中进行两次。
IB有一个很故意思的特点叫Sharp,即把全体打算卸载到交流机中,对付用户来说,只须要把数据传给交流机,交流机就可以把AllReduce打算完的结果再反馈给我,全体过程能使数据通信的带宽降落、减半,也能使算法翻倍。
同时,由于减少跳步之间的次数,可以让通信延迟更加稳定,这也是在大集群中跟英伟达联合使能的一个事情。

同时 ,X-MAN在新技能方面,也在不断的探索和考试测验,比如散热方面,从最早的风冷逐渐过渡到冷背技能,而冷背技能在X-MAN 2.0上已经大规模的运用,在数据中央已经运用了长达2~3年,而且非常的稳定。
随着GPU功耗和性能的不断提升,在未来的某个时候内,会创造冷背的散热技能已经知足不了GPU的需求,以是会采纳浸没的散热办法彻底办理GPU散热问题,提高GPU的性能。

在集群资源的管理层面也做了很多事情,包括面向AI演习作业的特点,供应了一些Gang调度、优先级资源管理的能力。
还结合硬件的特点,尤其是结合通信中供应的拓扑能力、组网能力,做了一些干系的拓扑感知,以及TOR亲和、TOR反亲和之类的调度策略,从而更好的支撑做演习。
联合框架进行了一些弹性扩缩容,包括故障容错、慢节点巡检等,都是在集群调度层面去实现的。

接下来分享下端到端自适应演习框架,众所周知,在演习过程中常常会发生故障,发生故障之后有几种做法,一种是做容错的更换,还有一种可以做弹性的扩缩容。
无论是更换还是扩缩容,由于参与打算的节点所在位置发生了变革,它们之间的通信模式大概不是最优,也容许以通过作业重新排布、调度,在更好的放置来提升整体演习作业的效率。

这个过程中联合PaddlePaddle框架,整体供应了端到端自适应演习框架的能力。
详细来说,当发生节点更换时,无论是由于容错还是节点扩缩容,都会重新做一个预跑,在小节点上去看这个模型须要什么样的打算办法和通信办法,然后结合集群拓扑探测出来的集群性能,再结合打算需求和通信需求,整体做了一个重新的映射。
这是一个别系性、全生命周期的优化,在端到端上实测有2.1倍的性能提升。

映射和拓扑是两部分信息,一部分是框架见告模型该怎么演习,或模型有哪些切分办法,切分之后打算模式是什么样的,它们之间的通信模式什么样。
另一部分是结合自己在通信库中做的拓扑探测和拓扑感知,会探知出一个集群中的单节点和集群之间的打算、通信模式和能力,形成集群拓扑通信图。

这两个图之间会结合一些图算法,做最优映射,再将映射结果交由框架,再借助调度器的策略调度能力,做终极的硬件拓扑调度以及作业的重放置。
通过这种办法,实现了一个框架调度通信库的联合优化,从而端到真个提升整体的演习效率。

终极的效果建立了一个完全的EFLPOS级算力的集群,真正的实现了月级别千卡大模型的演习。
在演习过程中,全体GPU的利用率一贯坚持在95%以上,很好的发挥了硬件能力,千卡规模的加速倍也做到了90%以上,全体业务演习的吞吐结合业务实测大概有3.87倍的提升,这个集群也真实的支撑了像ERNIE 3.0 Titan等多个大模型的持续迭代。

超级AI打算机X-MAN技能揭秘百度智能云资深系统工程师武正辉

GPU进入数据中央约有8~10年,这些年内GPU显存的容量、GPU P2P带宽、GPU性能都在不断提升。
据不完备统计,每年GPU显存大约有一倍的变革, P2P带宽有1.5倍到2倍的变革,而且性能变革更多。

由于性能的变革,会引起GPU功耗的变革, GPU功耗变革从最早的40瓦一贯到现在的400瓦、500瓦,以及到未来的700瓦等等,这种变革会引起算力提升。

由于业务模型的需求,算力的提升推动了硬件在全体性能方面的不断迭代。
模型的变革大约在3~4个月会有一次迭代更新,每年大约有3~4次的迭代,而近几年硬件的变革速率明显低于模型的变革,这对全体硬件系统在设计过程中带来了极大寻衅,紧张表现在以下5方面:

1、算力寻衅,紧张表现在GPU的算力方面和全体系统的算力;2、存储寻衅,紧张是GPU和存储之间通信的带宽和通信速率的寻衅。
3、通信寻衅,紧张是GPU和GPU之间或者打算节点和打算机节之间的寻衅4、散热寻衅,GPU 功耗增加散热的寻衅越来越明显。
5、供电寻衅,最早是12V的供电,近几年逐渐发展到54V供电,目的是为理解决大功率密度GPU在供电过程中的高功耗问题。

X-MAN 4.0的设计恰好办理了上面提到的几个痛点。
算力问题上,由于全体设计是一个硬件解耦的设计,采取了GPU资源池化的办理方案,同时是一个模块化的设计,兼容了OAI和OAM;由于X-MAN 4.0设计有一个灵巧的、拓扑的I/O,能够支持I/O扩展和多网卡的性能;在整体散热上,采取了风冷兼容液冷的设计,能够很好的发挥GPU的性能;供电上,采取了54V供电,相较于12V供电,系统更加稳定可靠,而且适宜于大功率密度的GPU运用处景。

在全体硬件架构设计方面,采取了领悟架构,即AI和HPC架构领悟,整机柜和标准机架构领悟,同时把存储靠近GPU,实现GPU和存储之间访问时延最短;

硬件解耦是GPU和打算节点完备分离,而且可以灵巧支持不同的CPU,比如Intel 平台、ARM平台、AMD平台等;还有灵巧分布的I/O,而且I/O可以扩展;GPU和网卡之间的配比关系可以实现1:1;在全体散热的过程中,有风冷和液冷共存;

其余,支持资源池化和模块化的设计。
X-MAN 4.0在相同硬件配置下,它的MLperf结果在环球名列第二。

由于X-MAN 4.0具有I/O灵巧的扩展性,以是对付超大规模集群来说,它有一个很好的组网能力。
由于在全体集群的组网过程中,采取了200G的IB网络,实现了上行网络和下行网络的1:1的带宽。
在全体的集群设计过程中,采取了Ethernet和IB共存的模式,实现了存储和GPU之间高带宽通信,实现了GPU和存储的池化。

除X-MAN 4.0之外,也看到了一些其他的产品,比如X-MAN 1.0、X-MAN 2.0、X-MAN 3.0,还有正在开拓的X-MAN 5.0。
对付每一代产品都有不同的产品形态和架构设计, X-MAN 1.0采取的是一个16卡的PCIe卡架构,这种架构设计当时是为理解决多机和单机处理不同任务时,可以给一个机器分配多个任务,或者把一个任务分配给多个机器,好处是可以充分利用GPU资源,从而实现 GPU资源的最大利用。

从X-MAN 1.0到X-MAN 2.0,实现了 GPU P2P带宽的提升,从PCIe 3.0提升到NVLink 2.0,而且在X-MAN 2.0时,具有灵巧I/O雏形。

在X-MAN 2.0到X-MAN 3.0之后,全体网络实现了100G RDMA的通信,同时全体架构上的设计,可以支持单机内的大模型,从而在GPU和GPU之间通信采取了NVLink 3.0技能。

从X-MAN 3.0到X-MAN 4.0,全体架构发生了一些变革,即有了更丰富的I/O,能够支持更多的网卡,而且能够实现节点和节点之间的高速互联和灵巧组网,支持100G网络和200G网络以及更高的一些网络。

X-MAN还能够结合4路CPU的打算节点,办理一些行业内运用的问题。

从全体架构上来看,

X-MAN是硬件的解耦,而且能够灵巧匹配不同的硬件平台,比如Intel平台,AMD平台,ARM平台。
其余,在全体设计过程中,采取资源池化的设计思路,即可以把一个机箱里的GPU看做一个资源池,按照业务需求去分配。
同时,机内的网络能够支持Fabric任务架构,动态的对GPU资源进行分配。

在全体设计过程中,是模块化设计,可以把全体架构分为4个模块:网络交流模块, GPU模块,存储模块和供电模块,以及打算模块。
全体网络模块从X-MAN1.0、X-MAN2.0、X-MAN3.0、X-MAN4.0发生了重大的变革,而且全体时延在不断减小,网络带宽在逐渐提升。

X-MAN架构还引领了 OAI和OAM标准,由于它有一个丰富的I/O,能够实现灵巧扩展,而且适宜于匹配不同的打算节点,或适宜于组成不同的网络和集群。

同时 ,X-MAN在新技能方面,也在不断的探索和考试测验,比如散热方面,从最早的风冷逐渐过渡到冷背技能,而冷背技能在X-MAN 2.0上已经大规模的运用,在数据中央已经运用了长达2~3年,而且非常的稳定。
随着GPU功耗和性能的不断提升,在未来的某个时候内,会创造冷背的散热技能已经知足不了GPU的需求,以是会采纳浸没的散热办法彻底办理GPU散热问题,提高GPU的性能。

未来随着模型的发展,可以看到芯片的设计越来越大,而且需求的带宽和时延越来越低,这样可能会形成一个芯片在未来代表一个集群,这种设计的好处是时延低、带宽大。
但对付系统设计来说,散热是一个寻衅。
其余,还须要有一些非常高速的带宽网络知足节点和节点之间的通信需求。

不管在学术界还是工业界,有很多采取SuperPOD构建自己的AI数据中央,在加速自己领域的一些AI研究。

随着技能的发展,未来全体系统架构的设计,模块化的领悟设计。
而对付运用处景来看,须要精准的匹配不同运用,来知足不同运用处景和业务需求。

随着芯片技能的不断发展和全体行业互联技能的发展,从底层的芯片到做事器节点内部,CPU和GPU之间互联技能的带宽比原来越来越高,大约有2~3倍的提升,而时延在不断的降落,节点之间和Rack之间的带宽也越来越高。
以是,未来全体通信方面或互联技能方面,须要更高的Ethernet或IB网络支持全体节点和节点之间的通信,或Rack和Rack之间的通信。

随着技能发展,不仅仅有IB网络和以太网,还有其他的网络用于节点或集群之间的通信,可能有其余一种低时延、高利用率的网络涌现,来知足像HPC或者AI集群的通讯需求。

NVIDIA SuperPOD赋能AI数据中央英伟达办理方案架构师程帅

AI数据中央的趋势和寻衅

在数据中央里,不管是数据集还是模型大小,近几年都呈现出爆炸式的增长。
从数据的角度来看,数据已经非常靠近100+Zettabytes量级,更恐怖的是这里面数据,90%是在过去两年的韶光内产生的,这也得益于智好手机、智能终端以及消费互联网的遍及,使得每个终端每时每刻都在产生大量的数据。

其余,可以看到一个趋势是AI+HPC的领悟,在科学领域可以看到它的数据集在不同打算领域里也呈现非常大的增长,比如正在经历的新冠病毒,如何剖析它对人类细胞的攻击变革,可能须要几百T的数据量;比如做地球景象的仿照,每天会产生200+T的数据量,这些数据都是非常大的量级。
对大数据更好的洞察和解析其本身内在的一些模式,由此引出须要更大的模型来处理和剖析这么多的数据。

在过去三年,以Transformer为代表的措辞模型,参数量已经提升了3个数量级。
2020年,GPT-3有175B的参数量,达到了千亿级别。
那这样的数据爆炸及模型爆炸趋势,对打算、通信和根本架构带来什么样寻衅?

首先,以GPT-3为例,从打算量来看,做了一个干系的评测。
根据英伟达的《Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM》论文中的Lower bounder of each iteration公式对GPT-3模型进行解析,可以创造GPT-3最小须要的打算量和batch size、sequence length、Transformer网络层数、hidden size以及词汇表的大小有关。
在实际运用中,batch size可以选为1536,通过对Lower bounder of each iteration公式打算,一个迭代步骤的打算量大概是4.5ExaFLOPS。
其余,在我们的实践中,大概须要有9万多次迭代,以是总的打算量430 ZettaFLOPS。

这个打算量有多大呢?以A100 312TFLOPS的FP 16打算能力来看,须要16000张A100算一天的规模,而且还没有考虑打算过程中效率的损耗。
在实际演习中,这个大模型大概须要在1000多张卡,打算演习34天。

模型变革对底层的通信也有非常大的寻衅。
过去, AI模型并不大,可以在单卡GPU中放下一个模型,更多是做纯数据并行的加速、迭代。
在这个过程中,只须要在模型后向时去做一次AllReduce通信,把梯度全部规约一遍。
而且在很多实际优化中,通信的AllReduce有很大机率会和打算重叠,有很好的一个优化效果,以是这种模式是比较大略的。

当模型大时,须要加上Tensor模型并行,即一个GPU已经放不下大模型了,必须把模型切分开。
它是把一个网络层切开,每个层的第一部分可以放在第一个GPU上,第二部分放在第二个GPU上。
这样做给打算和通信都带来一个寻衅,即每次前向及后向打算时,每走一遍网络都要做一次通信,通信量非常大。
通信常日也是AllReduce类型,以是针对这种打算通信特点,最好把模型并行的划分限定在节点内,利用NVLink以及NVSwitch的高速带宽来缓解这一变革带来的通信压力。

如果模型大到一定程度时,单机8卡的规模也放不下一个模型,则须要做其余一种划分,即网络层之间的划分,是Pipeline并行。
它的特点是在相邻划分点的前向及后向打算时都会有通信,通信的类型每每是P2P通信。
每次P2P通信的打算量可能不是很大,但通信的点非常多,最好的情形是每一个GPU和相邻节点通讯时,有一个最近的网卡和它合营,这样可以利用到GPU DirectRDMA的功能。
这种划分的寻衅是须要多网卡来加速通信。

总之,建一个数据中央大概有三方面的寻衅:第一,怎么设计一个可扩展的演习平台,它可以更好的支撑不同打算特色的业务,而且还要担保它的可扩展性,以及AI模型变革带来打算特色变革的预期;第二,一个分布式的集群系统非常繁芜,它须要很长的支配过程,是否有一种方案可以快速支配搭建起来;第三,支配完之后,若何让业务部门、云客户更快的利用起来,以及自身如何做到可持续的掩护。

为什么须要GPU SuperPOD

为办理上面三个寻衅,英伟达推出了SuperPOD架构。
大家知道英伟达做了很多AI研究,像自动驾驶、措辞模型等,它也有自己的数据中央。
结合过去四五年的韶光,英伟达在数据中央的迭代、运维掩护以及培植履历,总结出来一套方案叫DGX SuperPOD,DGX SuperPOD分为3块,一块有一套标准化的支配流程,可以帮你快速支配;第二块是架构有最优的设计,只要参考这个架构,就可以在AI演习里面达到更好的效果;第三块有一套完全的运营流程。
DGX SuperPOD可以帮用户快速的搭建、利用和可持续运维。

对一样平常用户可以有两个选择,一种可以直接采取NVIDIA DGX SuperPOD架构搭建自己的平台,另一种正如今天的主题,百度参考了这样的架构培植X-MAN SuperPOD。
用户可以通过百度智能云灵巧、按需的利用SuperPOD架构,加速自己的AI业务。

英伟达基于自己的SuperPOD架构,建了集群NVIDIA Selene。
NVIDIA Selene由560台8卡打算机组成,有4000多块A100 GPU,850台 InfiniBand交流机搭建的集群,存储搭配了14PB的分布式高性能存储,打算能力可以达到2.8 EFLPOS的AI打算能力。

这个集群的性能如何呢?在MLPerf 1.1版本中,以收敛到一定程度最快的韶光来看,采取分布式演习的办法加速评测中的8个任务,包括目标检测、语音、推举系统等,可以看到在所有的任务中,NVIDIA SuperPOD架构的韶光是最快的,这也足以证明了NVIDIA SuperPOD架构的可扩展性和有效性。

NVIDIA SuperPOD最新参考架构解析

SuperPOD架构的设计理念是什么呢?首先,它是一个模块化的理念,它由140台的A100做事器,即1120张A100 GPU组成,它的网络采取打算网络和存储网络相隔离的办法,打算由8张200G的InfiniBand搭建起来,存储由1个或2个200G的InfiniBand搭建起来,这样可以担保打算和存储互不滋扰。
其余,不管是打算网络还是存储网络,都是采取了一个胖树互联的办法,而且是无壅塞的,这样可以达到更好的扩展和低延时。
而且里面可以用到InfiniBand的自适应路由,以及SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)卸载的功能。

SuperPOD的可扩展单元简称为SU,每个SU有20台的规模。
对付打算网来说,由于每台机器有8个200G的打算网,每个网卡都会连到Leaf层的相应位置,每台机器的第1个卡连到第1个Leaf,第2个卡连到第2个Leaf,以这样的互联办法。
从Leaf层到Spine层,须要有4台Spine层交流机,然后均分的连接起来。
好处是可以担保到相同位置GPU在通信时都在一个交流机上,可以减少延迟跳数;其余,可以很好的去用到网络卸载,相同位置的GPU以及相应位置的网卡通信时,用SHARP卸载功能加速这个过程。

基于1个SU的拓扑,可以去扩展到2个SU,乃至标准的7个SU。
7个SU的拓扑比较于1个SU多加了一层交流机。
从打算节点到Leaf层连接,和1个SU的理念一样。
从Leaf层到Spine层,每个SU里相应位置的Leaf层交流机连到相应的一个SG组,一共是有8个SG组,80台的交流机。
从Spine层到Core层分成两个组,CG1和CG2,Spine层奇数位置的交流机连到 CG1,偶数位置的交流机连到CG2,通过这样的互联办法达到扩展。

总之,SuperPOD是一个可以是任意扩容的设计理念,可以基于1个SU乃至半个SU扩展,可以扩展到2个、4个、7个,乃至像百度一样可以扩展到上千台的规模。

其余,SuperPOD里可以用到优化好的一个软件镜像NGC,即NVIDIA GPU Cloud。
这个Cloud是一个软件观点,它里面包含了很多针对不同框架优化好的镜像,这些镜像可以很快启动起来,担保性能更优。
其余,NGC里也放了很多预演习模型。
除此之外,针对不同的行业,还有一些开拓好的方案,比如针对医疗有Clara,针对聪慧城市有Metropolis方案,针对自主机器人有Isaac,这些都已经放在NGC里利用,这些镜像可以支持不同的云、裸金属、稠浊云或终端,在x86、ARM以及POWER上都有很好的支持。

分布式演习很大的一个寻衅是通信,英伟达有NCCL(NVIDIA Collective Communication Library)通信库,它是GPU之间通信优化的库,也已经成为了一个工业标准。
NCCL可以支持不同节点内的拓扑,也支持不同节点间的拓扑,它可以自适应的选择最优的Ring或Tree以及相应的协议,让通信最快。

同样,交流机卸载的功能叫Sharp,即可扩展的分层聚合和规约协议,大略来说便是把在CPU或GPU上的通信放到交流机上,一方面开释CPU和GPU资源,另一方面延迟和带宽是最好的。
Sharp和NCCL可以无缝结合起来,只须要通过一个插件库就可以把这个功能用起来。

NVIDIA SuperPOD加速环球AI数据中央案例

不管在学术界还是工业界,有很多采取SuperPOD构建自己的AI数据中央,在加速自己领域的一些AI研究。

第一是Meta,这也是在国外最大的一个AI数据中央, Meta用DGX SuperPOD搭建的一个平台,支撑Meta研究院里300多人的研究。
Meta的研究涵盖各种前沿AI领域,比如会话系统、推举系统、大措辞模型。
Meta会在今年会培植成由2000台DGX A100组成的SuperPOD,达到了16000张 A100 GPU的规模。

最早采取SuperPOD做模型加速的是微软,微软和OpenAI做了一个有上万卡的规模,这个集群当时也加速催生了GPT-3模型的出身。

韩国最大的搜索引擎公司NAVER,用DGX SuperPOD建立了一个AI数据中央,演习一些会话模型用于呼叫中央。
由140台DGX SuperPOD组成的集群,比较于原来传统的集群在会话系统根本模型的演习上,可以达到2.7倍的加速效果。

其余,我们也谈了很多AI科学领域,这也是AI和HPC结合比较好的一个方向。
佛罗里达大学在这领域深耕了很多年,一贯在探索去用AI如何领悟到一些跨学科、跨学界的加速。
基于DGX SuperPOD,搭建了一个针对医疗领域的模型剖析,即利用一些措辞模型剖析病人的临床数据,在39亿模型参数下,之前的演习大概须要几周韶光,现在只须要不到一周的韶光就可以完成。
比较于之前的演习效率可以达到10倍以上的提升。

其余一个领域是自动驾驶,特斯拉是自动驾驶行业开启比较早的一个家企业,也是用 CV办理自动驾驶问题非常坚实的拥簇者。
特斯拉针对感知这块,有四五十个DNN模型,每天都要做演习,基于SuperPOD架构搭建了一个5000多卡的集群,支撑它每天上百位AI科学家,进行几十个模型的演习迭代。

汽车行业比较领先的大陆集团,基于DGX SuperPOD搭建了一个集群,用于AI演习、仿照和虚拟数据的天生。
搭建的集群性能名列在Top500里面。

末了,用MLPerf 数据做下总结,在过去一年半的韶光里,MLPerf迭代了三个版本:MLPerf 0.7、MLPerf1.0和MLPerf 1.1。
在MLPerf 1.1与MLPerf 0.7的性能比拟中可以看到,基于一些软件和分布式技能的优化,同样是A100安培架构的GPU,可以看到在同样的任务里面,最快有5.3倍的性能提升;单机性能的比拟,可以看到基于软件优化,在同样的A100 GPU里最高也有2倍的性能提升。
这表明只要购买了A100 GPU,只须要通过软件升级就可以得到持续加速的效果,这也是英伟达软件栈持续优化带来的好处。

总之,SuperPOD是一个非常高效的架构,它用在大规模的分布式演习里,不管是直接采取NVIDIA DGX SuperPOD,还是采取百度智能云上的SuperPOD,都可以享用SuperPOD架构带来的好处。

SuperPOD架构可以帮助在AI领域做快速迭代,开拓更智能的AI模型,它是把产品更快上线非常关键的一个环节。
不管是在CV、NLP、语音、推举系统、AI+科学等领域,还是做搜索、CTR、AV感知等各种各样的场景,都可以用SuperPOD架构做加速。
如果你想要用SuperPOD架构,上百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

AI领域做快速迭代,开拓更智能的AI模型,它是把产品更快上线非常关键的一个环节。
不管是在CV、NLP、语音、推举系统、AI+科学等领域,还是做搜索、CTR、AV感知等各种各样的场景,都可以用SuperPOD架构做加速。
如果你想要用SuperPOD架构,上百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

各样的场景,都可以用SuperPOD架构做加速。
如果你想要用SuperPOD架构,上百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

智能云,即刻享用SuperPOD带来的好处。

刻享用SuperPOD带来的好处。

百度智能云,即刻享用SuperPOD带来的好处。

智能云,即刻享用SuperPOD带来的好处。