QYJS    前沿技术
前沿技术
AI集群的Scale-out与Scale-up:
解构“万卡互联”与“超节点”的网络架构
文 | 新华三集团解决方案部 郑上闽

摘要

本文系统阐述了AI算力集群中Scale-up与Scale-out网络技术的发展现状、技术特点及应用场景。分析大语言模型对算力的需求呈指数级增长,推动算力加速卡性能提升及多卡互联技术的演进。Scale-up网络通过高速直连(如NVLink、SUE、UALink等)实现节点内多卡协同,具备高带宽、低时延和内存语义访问能力,但规模受限;Scale-out网络则通过IB或RoCE技术将多节点组成大规模集群(如Spine-Leaf拓扑),支持万卡级扩展。文章进一步分析了不同并行策略的流量特征,以及结合Scale-up和Scale-out域的网络设计及优化技术。并指出未来,超节点、增强型RoCE协议及统一互联协议将是算力网络的重要发展方向。

关键词

Scale-up网络;Scale-out网络;AI算力集群;大语言模型;并行训练;算力集群网络拓扑;RoCE;NVLink

2022年11月30日,OpenAI正式发布ChatGPT3.5模型,标志着自然语言处理技术取得重大突破。该基于Transformer架构的大语言模型展现出卓越的对话能力,首次实现了人机交互的自然流畅体验。它的出现,开启了生成式AI领域的新篇章。

自此,大语言模型出现了爆发式增长,2022年之后发布的模型数量明显增加。而同时模型训练所需算力成几何级数增长。按照epoch.ai的统计,进入深度学习时代,平均每个模型训练所需的算力每年增长3.2倍。

与之相适应,用于模型训练的加速卡的算力,也呈成指数型增长。同样来自epoch.ai的统计数据,算力加速卡的算力以平均每年1.6倍的速率增长。

明显的,单块算力加速卡性能的提升,无法满足模型训练所需算力的增加。因此将多块算力加速卡连接在一起,也就是对算力进行扩展,提供更大的算力能力。

一旦多块加速卡对同一个模型进行训练、推理,就涉及到采用不同的并行策略,将一个模型进行切割并部署于不同的加速卡。这样模型训练、推理过程每一步都需要在加速卡之间高速、低时延传输大量数据。数据传输所消耗的时间,会直接影响模型训练推理的性能。数据传输类型既包含一次传输数十GB的大象流,也包括仅传输数十字节的老鼠流。无论哪种情况,均为毫秒乃至微秒级的瞬时微突发的流量模型。

1 Scale-up网络

对于具体的算力扩展方式,首先想到的是增加一个算力节点内的算力加速卡数量,使得单节点能够提供更大的算力。这就是所谓的纵向扩展,也就是Scale-up。

当一个节点内加速卡的数量由一块增加到8块时,单节点提供的算力也就扩展为原来的8倍。

如果只是将算力卡简单的插入节点,算力卡之间并无法协同对外提供整体的算力,因此需要将加速卡通过高速互联链路连接起来。Scale-up网络连接起来的加速卡组成一个High Bandwidth Domain( HBD,高带宽域 )。一般来讲,纵向扩展互联( Scale-up )有以下特点。

高带宽:一直是Scale-up网络的最基础需求。从NVIDIA的NVLink可以看出,16年到24年,8年期间Scale-up带宽增长十倍以上,从160GB/s增长到1800GB/s。到26年更是预计会再度翻番,达到3600GB/s。为了达到更高的带宽,一般每块算力加速卡会出多个端口为Scale-up带宽进行横向扩展。

低时延:在大语言模型推理过程,模型层之间的数据传递为高频相对小数据量,尤其是在Decode阶段,会有大量载荷仅有数十字节的数据进行传输。而推理过程的顺序性,数据是逐个顺序产生和处理,同一个请求的数据无法汇聚或平行。因此数据传输时延对推理性能影响非常大,这就要求Scale-up能够提供<1us的端到端超低时延数据传输能力。为了有效降低时延,Scale-up的链路一般采用加速卡直出的方式。

内存语义访问:指的是一块加速卡访问另一块加速卡内存数据时,对于另一块加速卡的虚拟地址,通过Load/Store等内存指令进行访问。这就需要通过MMU、Scale-up网络等组件能够将Scale-up域内的加速卡的地址进行统一编址管理和映射。

这种编程方式使用跨加速卡数据时,可以不必考虑中间的通信过程,直接使用内存数据即可,可以极大简化程序编码。

使用内存语义还可以通过利用加速卡的各级缓存,加速数据访问速度,提高数据处理性能。不过对于较大规模HBD来讲,尤其是HBD跨节点的情况,硬件支持的全局缓存一致性实现复杂度较大,执行效率较低,因此一般不会支持硬件的缓存一致性。这种情况下,跨加速卡的缓存管理,需要由软件来实现。

Scale-up网络拓扑分为直接互联与交换互联两大类。

其中直接互联分为全互联以及混合全互联方式,采用加速卡之间直接互联方式。目前国产加速卡的实现以这种互联方式为主。这种连接方式由于没有互联交换机,因此具有成本低、功耗低、路径规划简单等优势。但是同时也有规模有限,扩展性差,故障冗余性差等缺点,越来越无法满足Scale-up新的扩展需求。因此Scale-up连接都逐步向交换互联的技术发展。

交换互联的方式为加速卡的Scale-up口按照多轨方式连接到多台Scale-up交换机上。这种连接方式既可以支持单节点内加速卡互联,也可以支持将Scale-up交换机从节点内拉出,实现跨节点的互联,甚至支持Scale-up交换机两层组网,从而实现从8卡到千卡的HBD域连接。

随着模型参数规模越来越大,需要通过Scale-up连接的加速卡数量越来越大,单节点的空间、散热等已经无法满足HBD扩大的需求。因此出现了超节点的新形态,将多个节点(超节点场景下称作计算Tray)通过Scale-up组成更大的HBD,实现更大的扩展规模。

Scale-up连接技术发展路径包括以下几类:加速卡厂家为主导,一般会自成体系,如NVLink;整机厂家、加速卡厂家、网络厂家组成的联盟,如UALink;由网络厂家主导,如SUE。当前主要Scale-up技术如表1。

表1 主流Scal e-up技术对比


Scale-up互联虽然性能高、时延短,能够实现跨加速卡的内存语义访问等优点,但是能够接入的加速卡规模有限。Scale-up连接的HBD虽然各厂家都在规划数百卡甚至千卡的规模,当前除华为Matrix384之外,大部分在百卡以内。这是因为一旦HBD超过一定规模,Scale-up技术带来的时延、带宽等优势将会递减,而功耗、成本、流控、可靠性等限制会凸显。一些研究和仿真表明,当HBD的规模恰好能够容纳一个模型实例时训练效果最优。这个规模无法满足大模型的预训练需求。比如2025年初,OpenAI透露ChatGPT 4.5的训练集群规模达到10万卡。

2 Scale-out网络

为了满足更大规模的训练算力需求,需要将多个节点通过Scale-out网络组成万卡甚至十万卡的算力集群。

图1 Scal e-up与Scale-out网络架构示意

一般来讲,Scale-out网络具有以下特点。

规模大::通过Scale-out网络可以将更大规模的加速卡进行连接,目前OpenAI、Tesla、微软、Meta、字节、腾讯等都已经建设或正在建设万卡乃至十万卡集群。

组网灵活:可支持从数十卡到十万卡不同规模集群的组网。

网络和加速卡解耦:Scale-up网络具有高度的标准化,可以支持加速卡与网络采用不同厂家的设备。目前Scale-up网络主流技术采用IB(InfiniBand)和RoCE(RDMA over Converged Ethernet),均以RDMA技术为基础。其中IB最早用于HPC领域,以其技术成熟,配置管理简单,转发时延短等特点,也被广泛应用于AI场景。IB主要提供商为NVIDIA。RoCE使用以太网承载RDMA协议,具备更好的标准化,更开放的生态,更低的成本等优势逐渐成为AI集群Scale-out组网的主流技术。经过Tesla等十万卡集群的实践,证明了RoCE已经具备超大规模算力集群组网的能力。

AI训练集群的很多通信技术均发展自HPC集群通信,因此Scale-out组网也能看到HPC组网的影响。比如在HPC广泛应用的Clos/FatTree/Spine-Leaf,Torus,DragonFly/DragonFly+等组网拓扑。

Torus:是一种经典的高性能计算网络拓扑,由多维网格在各维度上首尾相连构成。它具有规则的结构、固定的节点度和较短的平均路径长度,适用于通信局部性强的科学计算应用。但是具有布线复杂,路由协议复杂等问题。

DragonFly/DragonFly+:Dragonfly是一种面向高性能计算的层次化网络拓扑,通过将系统划分为多个组,组内高密度互连、组间稀疏直连,实现任意节点间最多3跳通信。其增强版Dragonfly+ 通过优化组间连接与自适应路由,缓解全局链路争用,在超大规模下保持低延迟,并在带宽、成本与延迟间取得良好平衡。然而,该架构对带宽分配有限,难以高效支撑AI训练中常见的All-to-All或高突发同步通信模式;同时,其路由复杂性较高,对网络协议栈和拥塞控制机制提出更高要求。

Clos/FatTree/Spine-Leaf:Spine-Leaf本质上是一种简化的、非严格对称的Clos网络,而Fat-Tree是Clos在特定参数下的对称实现。在现代网络中,“Spine-Leaf” 已成为Fat-Tree思想的实用演进版本,牺牲部分理论完美性,换取部署灵活性和成本效益。具备以下特点:可实现无阻塞组网,组网简单,路由算法简单。因此当前在AI算力集群中,主要使用的网络拓扑为Spine-Leaf架构。

Spine-Leaf架构还具备非常出色的规模适应性,不但可以支持从十几卡的极小规模组网到十万卡以上的超大规模组网,还可以非常方便的对网络规模的进行扩容,支持集群规模的不断“长大”,实现算力集群的“随建随用”。

图2 Sp ine-Leaf架构组网示意

前面说过在模型训练和推理过程会有大量微突发,为了避免在Spine-Leaf之间出现因为带宽不足,造成网络成为瓶颈,现在的主流设计为对于Leaf的上行与下行之间的比例,也就是收敛比为1:1。这个时候就需要每个Leaf有一半的端口下行连接GPU,一半端口上行连接Spine。以H3C的S9827交换机为例,最大支持128个400Gbps的端口,也就是作为Leaf时上行会有64个端口连接到Spine。这个时候就涉及到一个报文从Leaf转发到Spine时,选择Leaf的哪个端口上行的问题。

最直接的选择是通过等价路由(ECMP,Equal-Cost Multi-Pathrouting)的方式,也就是Leaf会根据报文特征,比如报文源目的地址、端口号、协议类型等,计算一个Hash值,并根据这个Hash值计算选择某个上行端口。这个方法选路的优势在于相同流会走相同路径,不会出现报文乱序的问题。但是可能会造成选路负载不均的问题。图2为一个640卡GPU进行All Reduce测试时,不同上行端口的报文发送分布,可以看出非常明显的不均匀。

图3 640卡G PU进行All Red uce测试结果

这种不均匀会出现虽然总的带宽足够,但是部分链路因为拥塞造成整体网络性能下降的情况。严重的时候,网络性能会只有理想情况的60%左右。

因此,如何解决Hash不均带来的网络性能下降,是大规模Scale-out网络要解决的关键问题之一。目前采用的主流技术包括以下三种。

SDN路径导航:考虑到模型训练的集合通信,固定的周期性过程。因此集合通信库在建立通信连接的时候,将连接关系上报到SDN控制器,由控制器进行全局的路径计算,避免不同通信连接不均匀的分不到不同物理路径上。H3C已经支持NVIDIA卡的路径导航,并与一些国产卡进行合作,在其集合通信库中支持该方案。经过路径导航调优,All Reduce带宽可提升带宽利用率50%,几乎达到理想带宽。这个方案的优点是路径规划效率高,可适配几乎所有国芯、商芯交换机。缺点是需要集合通信库支持。

逐包负载( Link Spray ):交换机根据每个上行端口的负载情况,选择负载最小的链路进行转发。这样由于同一条流的报文可能选择不同的路径,因此出现报文乱序的问题。为了解决这个问题需要利用RDMA的技术特点。RDMA的基本原理是将源的一段地址数据搬运到目的端一段地址中,在这个搬运过程结束前,目的地址的内容是不可使用的。也就是RDMA并不是一个类似TCP的流协议,而是一个块协议。逐包负载正式利用这个特点,搬运这段地址的每个报文都加上目的地址。这样及时报文在搬运过程,也就是网络传输过程出现乱序,也能在目的端知道这个报文所承载的数据应该保存在哪个地址中。从而避免在目的端网卡的重组,造成网卡缓存的占用。这个技术优势是对于上层实现简单,但是需要网卡与交换机均能支持。

DDC( Diversified Dynamic-Connectivity,多元动态联接):是一种创新的网络架构设计。在物理层面,DDC可看作将一台庞大的机框结构分解为多台盒式交换机,实现了。在数据转发层面,多台盒式交换机NCP设备向NCF设备转发时,将单个报文切分为大小一致的Cell(信元)进行转发。每个信元根据路径负载独立选路,实现不同路径的负载均衡。当NCP收到信元后,将报文进行重组。DDC的最大优势在于不需要端侧任何改造的情况下,实现高度均匀的网络的负载均衡。

下面将对Spine-Leaf组网的设计思路进行详细的说明。

加速卡接入部分:按照前面的说明,一个算力服务器(节点)会部署多块加速卡通过Scale-up的方式进行算力扩展。现在比较常见的是8卡服务器。为了保证每块加速卡的节点间通信性能,会等量配置高性能的IB或RoCE网卡,用于Scale-out扩展。目前网卡的带宽已经可达到400Gbps甚至800Gbps。

服务器内部将加速卡与网卡连接到同一个PCIe Switch上。集合通信库在进行跨节点的通信时,会根据内部拓扑,优先使用同一个PCIeSwitch的网卡进行通信。并通过RDMA、GDR等技术实现跨节点的加速卡之间通信数据面直接由加速卡经过网卡进行,避免经过主机内存以及CPU带来的时延和性能损耗。

3 Scale-up和Scale-out网络应用场景

一个节点的若干张网卡如何接入Leaf交换机会更优?目前接入主流拓扑有以下两种。

单轨接入:将一台服务器的所有网卡接入到同一个Leaf。这样组网连线短,可以用低成本的电缆接入,可以有效降低组网成本。这种组网拓扑,同一Leaf接入的是同一节点的加速卡,因此同节点的加速卡之间通信可以只经过Leaf一跳即可达。但是从接入拓扑可以发现,这种接入方式相当于Scale-out最优流量路径与Scale-up的HBD重叠。由于Scale-up的带宽远高于Scale-out网路,时延也更低,集合通信库在选路的时候,会优先选择Scale-up网络。也就是Scale-out网络中通往同Leaf的最优路径不会被选中,而被浪费。

多轨接入:将若干服务器同号网卡接入同一台Leaf,这种拓扑连线会比较长,因此一般只能使用光纤接入,造成组网成本较高。不过这种组网与单轨接入最大不同在于Scale-out的最优路径与Scale-up的HBD是正交的,能够充分发挥Scale-up和Scale-out网络的最优性能。

下面再从模型训练过程的流量分析两种组网的优劣。

在分析模型训练对网络要求之前,先从模型分割也就是并行策略角度分析一下模型训练流量特征。组成算力集群的目的就是为了通过算力扩展,支持更大模型、更多数据量的训练。这需要通过张量并行(TP)、流水并行(PP)、数据并行(DP) 等并行策略对模型和数据进行分割。

张量并行(TP):将模型中的大矩阵拆分到服务器内的不同GPU中运行,通过AllReduce同步计算结果。单次通信量较大,通信频率非常高,对通信吞吐和时延要求都非常高。基本均通过Scale-up网络通信,这也是为什么Scale-up网络吞吐和时延要求非常高的原因。

流水并行(PP):将模型中不同的层放在不同服务器上计算,通过P2P同步计算结果。单次数据量小,通信频率较高,对吞吐要求较低。可能会有跨节点通信的场景,为流水线上前一个节点中最后一块加速卡与后一个节点中第一块加速卡之间通信。

数据并行(DP):将样本数据拆分到不同的模型副本上计算,通过AllReduce同步计算结果。单次通信量非常大,但每次迭代(Iteration)只完成一次通信,通信频率低,对通信吞吐要求非常高。跨节点部署DP时,一般为不同节点的同号加速卡之间的通信。

而且模型训练过程中的流量特征为周期性,强同步。周期性是指模型每个迭代周期,均会产生相同特征的流量。强同步指的是同一阶段的通信,为整个集群相关加速卡同时启动和结束,通信效率取决于性能最差的一个。因此考虑到DP流量的极大通信量的特点,需要尽量保证通信吞吐,并尽量避免不同加速卡的通信路径互相隔离,以减少冲突和相互影响。在Spine-Leaf组网拓扑下,DP流量能够在同一个Leaf下完成是最优。考虑到前面所述,DP通信为同卡号的加速卡之间,也就是同卡号的加速卡接入到相同Leaf对于大吞吐需求的DP最优。这就是为什么要采用多轨接入的原因。

不过这些技术只能解决Spine-Leaf之间负载不均的问题,还需要解决集合通信实现上的多个加速卡向一个加速卡发送数据时,流量模型多打一引起的拥塞问题。分别以All Reduce和All to All进行说明。

All Reduce算子操作将不同加速卡的数据进行汇总和在所有卡间进行同步。汇总的操作可以为add、max、min、avg等。跨节点的AllReduce操作一个最常用的场景是DP训练进行梯度同步过程的梯度变化数据操作。一般为同轨通信。

NVIDIA的NCCL实现了AllReduce多种算法,包括Tree、Ring、NVLS、NVLS Tree、CollNet Direct、CollNet Chain。由于本文不是要分析这些算法的实现,而是要说明不同算法对网络流量模型的影响,因此这里只简单分析和对比一下Tree和Ring的算法。

Tree算法分为两个阶段,首先会将通过Reduce算子,将所有数据汇总到根,再通过Broadcast将汇总的数据同步到整个通信域。

图4 T ree算法通信过程示意

在Reduce阶段,除了最后一次,每次都是两个加速卡,将数据汇总到一个加速卡的过程。这个明显有一个二打一的情况。因此会在加速卡的入侧会产生拥塞,而且集群规模越大,操作的数据越大,拥塞越严重。在实际情况中,我们可以通过查看链路中产生的ECN报文数量,定性的判断拥塞程度。在一次实测中,480卡NCCLTest采用Tree算法的All Reduce过程一台Leaf交换机上被标记了ECN的报文数量为1471971个;同一个组网下640卡测试过程,被标记了ECN的报文数量为3177502个。可以看出随着集群规模增加,ECN报文数量有非常明显的增加。

对应着640卡的测试结果中4GB数据量的busbw带宽只有480卡的60%左右。着充分说明了大数据量操作时,集群规模更大的时候使用Tree算法,在加速卡接入端产生拥塞的概率增加,会对AllReduce性能产生非常大的影响。

NCCL还实现了如图5所示的Ring算法。这个算法将All-Reduce过程分为ReduceScatter和AllGather两个阶段。每个阶段都是将通信域的加速卡串成一个环,从而避免Tree算法因为二打一引入的拥塞。从ECN数量看,已经非常少,甚至完全消除。也就意味着通过算法实现消除了操作过程的拥塞问题。同时,640卡的集群测试获得4GB数据busbw可达物理带宽的95%。

图5 Ri ng算法过程示意

这并不意味着Ring算法完全优于Tree算法。从上面的操作过程看,同样规模集群Ring算法操作步骤为2N-1,明显多于Tree算法的2(log2N)。因此在操作的数据量比较小的时候,Tree算法的时延明显小于Ring算法。但是随着数据量增加,高吞吐带来的收益明显增加。图6是480卡实测不同算法的时延,其中横坐标是数据量,纵坐标为对数坐标的时延。可以明显看到小数据量时,Tree的实现明显小于Ring的时延。也就是说实际上不同算法会适用不同场景,具体算法选择还是要根据场景进行选择。

图6 不同算法480卡实测的时延对比

随着DeepSeekV3将MoE模型的实际工程落地,越来越多的模型采用MoE架构。MoE模型的训练和推理过程会产生大量的跨节点的All-to-All流量。All to All流量特点有两个:大量的跨轨加速卡之间的通信;大量的多打一的流量。

为了优化这种流量的路径,NVIDIA引入了PXN( PCIe X NVLink )技术。也就是先将跨节点流量通过高性能的Scale-up网络转发到同节点的同轨加速卡上,再通过同轨路径进行跨节点转发。按照NVIDIA的数据,采用PXN技术可以减少All to All通信时延大约50%。同样的,PXN技术也是在多轨接入的组网下,才能更好的发挥作用。

单张算力加速卡决定着单一AI任务所能使用的算力下限,通过Scale技术组成的集群决定着上限。为了不断扩展算力集群上限,业界投入了大量的力量发展算力联接技术,呈现的技术也是日新月异,主要发展方向主要包括以下三种。

超节点技术:将HBD从单节点扩展到多节点,组成超节点。

增强Scale-out协议和技术:包括进一步提升带宽从400Gbps到800Gbps,乃至更高的1.6Tbps。通过开发新型拥塞控制,支持原生多路径,支持硬件卸载与确定性低延迟,提供更强的可观测性等对RoCE网络。

统一Scale-up和Scale-out协议:避免跨域通信需要占用中继算力单元带来的算力消耗和时延增加。

总之,随着Scale-up和Scale-out互联技术的不断发展,将提供更大规模、更高互联性能、更稳定运行环境的AI算力集群。为高速发展和演进的模型训练、推理提供坚实的支撑。

关闭