马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
随着AI技术的爆发,大模型参数规模呈指数级增长:百度文心一言拥有2600亿参数,GPT-4参数量更是突破万亿级。然而,单卡GPU的显存容量成为明显瓶颈——即使配备80GB显存的A800 GPU,扣除训练中间变量后,实际仅能存储10-20亿参数。若要训练2600亿参数的模型,需100-200块GPU协同工作。因此,需要联合多张GPU甚至多台服务器协同工作,分布式训练成为大模型开发的必然选择。 分布式训练的核心挑战在于多设备间的数据通信效率。以典型的图像分类模型为例,单卡训练时计算与通信时间比约为9:1,而在8卡集群中这一比例可能逆转至1:9。因此,构建低延迟、高带宽的互联网络,成为释放分布式算力的关键。
概述
网络互联在分布式系统中至关重要。在分布式系统中,网络提供必要的连接,可分为单卡、多卡和多机互联。单卡内的网络用于计算神经网络,而多卡之间的互联(即 GPU 互联)通常采用 PCIe 或各种高带宽通信网络。多机之间的互联(即服务器互联)通常采用远程直接内存访问(RDMA)网络。如下图所示:
注:超节点,英文名叫SuperPod,是英伟达公司最先提出的概念,不是本文讨论的重点。
单机多卡-PCIe协议
总线是数据通信的必备通道,PCIe 是应用最广泛的总线协议。 总线是服务器主板上不同硬件组件之间进行数据传输的通道,在决定数据传输速度方面起着关键作用。目前最普遍的总线协议是英特尔于 2001 年推出的PCIe(PCI-Express)。PCIe主要用于连接CPU与其他高速设备,如GPU、固态硬盘(SSD)、网卡和显卡等。自 2003 年发布PCIe 1.0 版本以来,后续版本大约每三年更新一次。最新的PCIe 6.0版本传输速率高达64GT/s,16通道的带宽达到256GB/s,性能和可扩展性不断提升。 PCIe的树形拓扑结构和点对点传输方式限制了连接的数量和速度,促使PCIe交换机出现。 PCIe采用点对点数据传输链路,PCIe链路的两端各自只能连接一个设备。无法满足存在大量设备连接需求或需要高速数据传输场景的要求。因此,PCIe交换机应运而生。PCIe交换机具备连接和交换双重功能,使单个PCIe端口能够识别并连接多个设备,解决通道数量不足的问题。还能将多条PCIe总线相互连接,形成一个高速网络,实现多设备之间的通信。简而言之,PCIe交换机相当于PCIe连接的扩展器。
单机多卡:替代PCIe
GPU互联的带宽通常需要超过数百GB/s,而PCIe的数据传输速率却成了瓶颈,链路接口的串并转换会引入网络延迟,影响 GPU 并行计算的效率。此外,GPU 发出的信号需要经过PCIe交换机,由于数据处理,进一步增加了网络延迟。再者,PCIe总线与内存地址分离,每次内存访问都会加剧网络延迟。因此,PCIe协议在GPU多卡通信中的效率并不高。为了提高总线通信效率并降低延迟,各家公司推出替代协议: (1)CAPI协议 最初由IBM推出,后来演变为Open CAPI,是在现有高速输入/输出(I/O)标准之上的一种应用扩展。增加了缓存一致性和更低延迟等特性。然而,由于IBM服务器市场份额持续下降,CAPI协议缺乏用户基础,未能得到广泛应用。 (2)GenZ协议 GenZ是一个独立于任何芯片平台的开放性组织。涉及众多制造商,包括AMD、ARM、IBM、英伟达、赛灵思等。GenZ 将总线协议拓展成交换式网络,并引入 GenZ交换机来提高可扩展性。 (3)CXL协议 兼并上述两个协议,英特尔于2019年推出,其思路与CAPI协议类似。2021年底,CXL吸收GenZ协议进行联合开发,并在2022年与Open CAPI协议合并。CXL具备内存接口,已逐渐发展成为设备互连标准的主要协议之一。 (4)CCIX协议 ARM参与的另一个开放协议,功能与GenZ类似,但未被上述合并所涵盖。 (5)NVLink 英伟达提出的一种高速GPU互联协议。
(6)HCCS HCCS是华为自研的一款高速互联总线,主要用于昇腾系列AI处理器之间的互联。提供一种高效、可靠的数据传输方式,使得多个昇腾处理器能够协同工作,共同完成大规模的AI计算任务。HCCS采用对等拓扑,单链路的最大带宽是56GB/s。昇腾910B中的HCCS采用点对点拓扑,单链路的最大带宽是56GB/s。 (7)Infinity Fabric infinity fabric是AMD链接不同功能模块的总线,是AMD的专利技术,由传输数据的Infinity Scalable Data Fabric(SDF)和负责控制的Infinity Scalable Control Fabric(SCF)两个系统组成。Infinity Fabric连接了on-die和off-die以及多路CPU间的通信,但AMD没有把Infinity Fabric用的节点间的通信中。
其他的AI芯片厂家也有定义自己的芯片间高速互联技术,如寒武纪MLU-LINK、燧原GCU-LARE、壁仞B-LINK等
单机多卡-NVLink
英伟达提出的一种高速GPU互联协议。与传统的PCIe总线协议相比,NVLink 主要在三个方面做出了重大改变: 1)支持网状拓扑结构,以解决通道有限的问题; 2)统一内存,允许GPU共享一个公共内存池,减少 GPU 之间复制数据的需求,从而提高效率; 3)直接内存访问,无需 CPU 参与,GPU 可直接访问彼此的内存,进而降低网络延迟。 此外,为解决GPU之间通信不均衡的问题,英伟达推出NVSwitch,这是一种类似于交换机专用集成电路(ASIC)的物理芯片。NVSwitch通过 NVLink 接口连接多个 GPU,创建高带宽的多节点 GPU 集群。2023 年 5 月 29 日,英伟达推出了 AI 超级计算机 DGX GH200,它通过 NVLink 和 NVSwitch 连接 256 个 GH200 芯片,所有 GPU 相互连接并协同工作,可访问的内存超过 100TB。
多机互联-RDMA
在多设备的分布式训练中,远程直接内存访问(RDMA)网络已成为首选,其中包括Infiniband(IB)网络和以太网。传统的 TCP/IP 网络通信需要通过内核发送消息,涉及到数据移动和复制,因此不适用于高性能计算、大数据分析以及其他需要高并发I/O和低延迟的场景。RDMA 是一种计算机网络技术,它允许在无需内核干预和不占用CPU资源的情况下,直接远程访问内存数据。这显著提高了数据传输性能并降低了延迟。因此,RDMA 更适合大规模并行计算集群的网络需求。 目前,有三种类型的RDMA:Infiniband、RoCE(融合以太网上的 RDMA)和iWARP(互联网广域RDMA协议),后两者是基于以太网的技术。
(1)Infiniband 专门为RDMA设计的网络,从硬件层面保证可靠传输,具备更高的带宽和更低的时延。然而,其成本高昂,需要配套的Infiniband网卡和交换机。 (2)RoCE 基于以太网实现RDMA,可使用标准以太网交换机,成本较低。不过,需要支持RoCE的网卡。 (3)iWARP 基于TCP的RDMA网络,利用TCP实现可靠传输。与RoCE相比,在大型网络中,iWARP大量的TCP连接会消耗显著的内存资源,对系统规格要求更高,可以使用标准以太网交换机,但需要支持iWARP的网卡。
多机互联-UEC-正在制定
超以太网联盟 (Ultra Ethernet Consortium,UEC),以优化高性能网络的以太网标准为目标。由 AMD、Arista、Broadcom、Cisco、Eviden、HPE、Intel、Meta 和 Microsoft 等行业领导者组成,旨在完善以太网标准,寻求在远程直接数据存取(RDMA)基础上进一步升级,以更好地支持人工智能、机器学习和高性能计算不断增长的需求。 超以太网传输(Ultra Ethernet Transport,UET)是下一代应用于AI超算和HPC的网络协议。对于AI超算和HPC,通信网络必须又快又准地将数据包传送到对应节点,UET提出在有损网络下的针对队头堵塞和堵塞扩散的解决方案:保留IP协议,因此UET本质还是开放协议:多路径+数据包喷洒(packet-spraying)技术,充分利用高带宽通信网络,无需负载平衡算法;播送管理机制,减少掉线;支持对API进行无序数据包发送,提升网络并发性能;支持百万数量级端口,满足AI超算和HPC集群所需的交换规模。 直到目前UCE的规范还在制定中。
|