网络级DMA技术需求白皮书ODCC-2023-0500C 1 [编号ODCC-2023-0500C] 网络级DMA技术需求白皮书 开放数据中心委员会2023-09发布 网络级DMA技术需求白皮书ODCC-2023-0500C 版权声明 ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,编制单位共同享有著作权。 转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明来源:“开放数据中心委员会ODCC”。 对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位的配合与支持。 I 网络级DMA技术需求白皮书ODCC-2023-0500C 编写组 项目经理: 吕云屏华为技术有限公司 工作组长: 郭亮中国信息通信研究院 贡献专家: 吴美希中国信息通信研究院 温小振中国信息通信研究院王瑞雪中国移动研究院 秦凤伟中国移动研究院 盛曦珠海星云智联科技有限公司 唐毓虎珠海星云智联科技有限公司 黄楚生珠海星云智联科技有限公司 王军珠海星云智联科技有限公司何宗应BroadcomInc 成伟苏州盛科通信股份有限公司 王俊杰苏州盛科通信股份有限公司张君逸华为技术有限公司 王巧灵华为技术有限公司 庄艳华为技术有限公司 II 网络级DMA技术需求白皮书ODCC-2023-0500C 前言 数字化经济时代,全球算力需求急剧增加,算力系统的军备竞争也日益激烈。算力已不仅是一个技术维度的概念,更成为了一种全新的社会生产力,对整个经济社会发挥着越来越重要的作用。HPC超算系统的算力几乎按照摩尔定律在提升,从G级到现在的E级,并正在向10E级演进。AI智算系统在大模型的应用激发下,需要具备千亿甚至万亿、百万亿的参数量处理能力。单个计算机或服务器的处理能力已远远不能满足计算任务的要求,需要在数据中心中部署高性能分布式系统,突破单机算力和存储的限制,提供高并发高可用的计算服务。随着算力需求的增长,分布式系统规模同步扩张,以承载起大规模算力任务的需求。 集合通信被广泛应用于分布式计算/存储系统,应用通过调用集合通信推进计算任务,因此通信的完成效率决定了分布式系统整体的性能上限。集合通信中除了一对一的通信模式外,还包含大量的多对多通信模式,如AI中常见的AllReduce、HPC中调用的Bcast。而业界主流的实现是使用点对点传输,如RDMARC模式,来完成多对多集合通信,这必然带来系统资源浪费、通信性能下降的问题,尤其是在分布式系统通信规模日益扩大的情况下,点对点传输的可扩展性缺陷更加凸显。因此,亟需改进现有支持集合通信的传输机制,从而最优化集合通信效率,提升分布式系统性能。 III 网络级DMA技术需求白皮书ODCC-2023-0500C 本研究报告在分析了分布式系统中集合通信特征的基础上,列举了当前业界主要的技术路线以及在大规模系统中面对的关键挑战,提出了面向集合通信的原生传输框架网络级DMA(NDMA)。相对于服务器内DMA技术、本地和远程服务器间RDMA技术,NDMA着重于面向网络中的一组节点进行内存直读、直写操作,通过端网协同机制,将应用的通信逻辑下沉到网络,最优化分布式系统传输性能,在HPC/AI/存储等多种分布式系统场景都具备明确的应用价值。 IV 网络级DMA技术需求白皮书ODCC-2023-0500C 目录 版权声明I 编写组II 前言III 一、高性能分布式系统承载大规模算力需求1 (一)全球算力高速增长1 (二)分布式系统承载大规模高复杂度算力任务2 (三)通信效率影响分布式系统性能4 二、分布式系统以多对多集合通信为主4 (一)什么是集合通信及其原语5 (二)分布式系统中集合通信的调用6 三、大规模集合通信面临性能挑战6 (一)集合通信实现现状7 (二)高性能传输协议的发展及其挑战8 (三)在网计算的发展及其挑战11 四、NDMA应对大规模集合通信需求14 (一)NDMA概念14 (二)NDMA的基本模式和应用价值15 1.网络组播及典型应用15 2.网络聚播及典型应用16 3.网络任播及典型应用18 (三)NDMA技术架构20 1.整体框架20 V 网络级DMA技术需求白皮书ODCC-2023-0500C 2.关键技术22 (四)NDMA原型验证26 1.OSUBenchmark验证计算场景MPI_bcast任务完成时间26 2.SPDK验证存储场景IOPS(单位时间完成请求数量)27 五、总结和展望28 VI 网络级DMA技术需求白皮书ODCC-2023-0500C 网络级DMA技术需求白皮书 一、高性能分布式系统承载大规模算力需求 (一)全球算力高速增长 全球算力的高速增长是当今数字时代的一个显著特征。从最初的单机计算到现在的云计算、分布式计算等技术,全球算力已经达到了惊人的规模。算力已不仅是一个技术维度的概念,更成为了一种全新的社会生产力,对整个经济社会发挥着越来越重要的作用。从图1中看到,人均算力水平和国家的人均GDP强相关,是衡量一个国家一个地区发达程度的重要指标。高算力国家,包括美国、新加坡等,人均算力都在1000GFOLP以上,我国人均算力在553GFLOPS,与发达国家仍有一定差距。 图1:世界各国人均算力水平,来源于《泛在算力:智能社会的基石》 未来,随着全球智能化进程的加速,人工智能、云计算、大数据等技术持续发展和应用,对于算力的需求更会急剧增大。据统计,全球算力每年以惊人的速度增长,预计到2030年,全球算力规模达到56ZFlops,平均年增速达到65%,其中基础算力达到3.3ZFlops, 1 网络级DMA技术需求白皮书ODCC-2023-0500C 平均年增速达27%;智能算力达到52.5ZFlops,平均年增速超过80%;超算算力达到0.2ZFlops,平均年增速超多34%。(数据来源: 《中国算力发展指数白皮书(2022年)》) (二)分布式系统承载大规模高复杂度算力任务 算力需求的高速增长,使得算力任务的规模越来越大,复杂度越来越高。 在年增长速度最快的人工智能领域,随着ChatGPT的诞生,AI大模型再次受到业界的关注。AI大模型是指由大量参数组成的深度学习模型,通常包含数百万到数十亿个参数。这些模型可以通过大规模的数据训练,以实现各种复杂的任务,如图像识别、语音识别、自然语言处理等。AI大模型的规模逐年快速增长,如图2所示。2018年GPT-1参数量为1.17亿,2019年GPT-2参数量为15亿, 2020年GPT-3达到1750亿个参数,而OpenAI最新发布的GPT-4模型参数量大约超过100万亿个。AI大模型由于其复杂性和规模,需要大量的计算资源和存储空间来进行训练和部署。 图2:AI大模型演进,来源于https://developer.nvidia.com 2 网络级DMA技术需求白皮书ODCC-2023-0500C 超算算力年增长速度仅次于人工智能。超算系统通常由数以万计的处理器核心组成,能够在极短的时间内完成大规模的科学计算、数据分析和模拟等任务,广泛应用于科学研究、工程设计、天气预报、金融分析等领域。图3是世界最强超算算力TOP500给出的自1990年起超算算力的进步趋势,并进行了线性回归。图中的三条线 分别是上榜超算的总算力,榜单冠军的算力以及榜单第500名超算的算力。可以看到,超算算力几乎按照摩尔定律在提升,从G级到现在的E级,未来还将向10E级演进。 图3:TOP500性能发展,来源于https://top500.org 不管是人工智能还是超算,其算力任务都呈现出规模扩大、复杂度提升的趋势,远超单个计算机或服务器的处理能力。因此,需要高性能分布式系统,通过网络连接提供海量计算、存储资源,从而承载大规模算力任务,突破单机算力和存储的限制,提供高并发高可用的计算服务,加快任务完成速度。 3 网络级DMA技术需求白皮书ODCC-2023-0500C (三)通信效率影响分布式系统性能 系统的加速比体现了分布式系统的性能。根据阿姆达尔定律,可以计算出系统的加速比。阿姆达尔定律是一个计算机科学界的经验法则,它代表了处理器并行运算之后效率提升的能力,其计算公式表述如下。其中,S为系统加速比,p为并行度占比,s为并行节点数。增加并行节点数,可以提升系统加速比,而当s→∞时,并 行度占比越大则系统加速比越高。 S=1p 1−p+s 分布式系统中无法通过100%的并行处理完成计算任务。图4以简化的形式展现了了计算任务执行的基本过程。图中,蓝色部分是节点并行计算的过程,当并行阶段结束后,进入串行通信的过程,即并行阶段的输出发送到其他节点作为下一并行阶段的输入,只有当通信完成,各节点获得相应输入后,才能将计算任务向前推进,进入下一并行阶段。 图4:计算任务执行过程 二、分布式系统以多对多集合通信为主 4 网络级DMA技术需求白皮书ODCC-2023-0500C (一)什么是集合通信及其原语 集合通信是一种通信方式,它将多个通信对象(如进程、线程等)组合在一起,以实现一次调用实现向多个对象发送数据,或从多个对象接收数据。集合通信常用于分布式系统并行计算中,协助参与同一任务的多个计算进程完成数据交互。 常见的集合通信可以进一步抽象为广播、散布、聚集等操作。其中,广播操作将数据发送给所有通信对象;散布操作将数据分散给多个通信对象;聚集操作将多个通信对象的数据合并到一个对象中。 集合通信通常以集合通信原语作为调用接口。 MPI是常见的用于并行计算的通信框架,它定义了多种集合通信原语,AI场景中经常使用的AllReduce就是一种MPI通信原语,如图5所示,经过AllReduce操作后,原先各节点上A、B、C、D的子集被进行了聚合或归一化,最终各节点均获取到A、B、C、D各子集聚合后的结果。 图5:AllReduce 5 网络级DMA技术需求白皮书ODCC-2023-0500C (二)分布式系统中集合通信的调用 应用通过调用集合通信,在进程或线程间完成数据交互,从而向前推进分布式系统任务。除了点对点的通信外,很大一部分的交互发生在多点和多点之间,包括1对多、多对1以及多对多的情况。 以超算系统为例,集合通信原语的调用统计如图6所示(数据来源:CharacterizationofMPIUsageonaProductionSupercomputer,SudheerChunduri,ScottParker,PavanBalaji,KevinHarmsandKalyanKumaran,ArgonneNationalLaboratory),1对1的通信占比为34%,而其余的 66%都为多对多的通信方式。 因此,提升多对多集合通信的传输效率对分布式系统性能的整 体提升有着极其重要的作用。 图6:集合通信原语调用统计 三、大规模集合通信面临性能挑战 6 网络级DMA技术需求白皮书ODCC-2023-0500C (一)集合通信实现现状 应用调用集合通信原语后,网络完成数据的传输,实现集合通信操作。应用不感知网络的动作行为,集合通信原语可以有多种实现方式。由于目前常用的传输层协议仅支持点到点传输,对于多对多的通信,通常都是在网络上转换成点到点通信,即应用一次集合通信原语的调用由网络多次的点对点传输转发来完成。 以组播为例,一种实现方式为单节点分别和多个目的节点通信,如图7所示。这种方式可以应用于AIParameterServer结果分发,存储系统多副本写等。源节点将同一份消息依次发送给多个目的节点,实质上是一种带宽资源的浪费,易形成带宽瓶颈链路。另一种为中间节点协助转发,可以用于在HPL计算中的链式组播,如图8所示。这种方式虽然减少了带宽瓶颈,但每个中间节点在进行转发时,都需要网络层与应用层交互,引入额外CPU处理带来的延迟开销。这两种方式下,都会引入了与通信规模线性相关的额外开销,且无法通过优化下层网络