过去几年,大模型训练使用的算力从千卡增长到了十万卡。业界预测,未来 5 到 10 年,通用人工智能(AGI)在庞大的算力支撑下成为现实。然而,随着算力需求的急剧膨胀,园区物理资源的瓶颈问题正日益凸显。
在最新一代大模型的训练中,谷歌、微软和 Meta 等行业巨头均采用高性能网络,互联多个园区整合了十万量级的 H100。与此同时,国内企业在积极对标 GPT-5 或 Llama4 等国际领先模型时,面临着高端 GPU 禁运的严峻挑战。根据预估,完成单任务训练可能需要数十万卡 GPU 的支持。跨园区扩展 GPU 集群或将成为国内企业实现技术追赶的必由之路。此外,当前的 GPU 集群普遍存在“孤岛”现象,各集群之间缺乏有效整合,导致算力资源无法得到充分利用。如何打破这种孤立状态,实现算力的池化管理,以支持更多并发任务,成为了业界亟待攻克的关键难题。
为什么不能用现有的 DCI?
当谈及跨园区互联,现有的 DCI(数据中心互联)网络是首要被考虑的方案。为了承载跨域流量,DCI 网络先后发展了 MPLS(多协议标签交换)、SDN(软件定义网络)以及 SR-MPLS/SRv6(段路由)等技术,提高了网络的可用性和服务能力,降低了单比特成本。近年来,DCI 带宽规模稳步拓展,服务质量也在不断提升,以满足日益增长的跨园区互联需求,推动各行业数字化转型与协同发展。
在数据中心互联领域,传统 DCI 与高性能网络的业务特性存在显著差异。从承载流量类型来看,传统 DCI 主要负责承载 CPU 服务器的 TCP 流量。受限于 CPU 单核处理能力、 TCP 协议的慢启动机制以及 10ms - 40ms 的往返时延(RTT),导致单流数据传输速率通常小于 1Gbps,最高也不超过 10Gbps 。高性能网络主要承载 GPU 服务器的 RDMA 流量,RDMA 具备线速启动的特性,大多数流量都在 10Gbps 以上,形成所谓的大象流。在传输性能方面,传统 DCI 的 “温和” TCP 流特性,使其在单端口速率、拥塞控制和负载均衡等方面面临的挑战相对较小。目前,传统 DCI 的主流方案仍采用 100GbE 端口速率,在拥塞控制上多依赖纯端侧的 Cubic 或 BBR 算法,负载均衡则基于五元组的随机 hash 策略。相比之下,专为大模型训练打造的高性能网络已演进至 400GbE 端口速率,拥有更为先进的端网协同拥塞控制机制,能够实现逐流路径预规划,甚至可以做到逐包负载均衡,极大提升了网络传输的效率与稳定性。
GPU 互联,我们需要从零出发,打造一张全新的长距高性能网络。
图 1 TCP 和 RDMA 的典型流量
长距高性能实验网
在 2024 年 9 月,为有效满足业务对于 H800 和 H20 多模态混训的探索需求,一张长距高性能实验网正式建成。该实验网通过 120km 的光纤,搭配具备 400GbE 大端口、大缓存特性的交换机(DR),实现了 3.2T 带宽,成功连接了两个 GPU 园区。
为降低园区内拥塞发生的概率,在网络规划阶段,规划了 12.8T 的 DR-GPULC 互联带宽,确保了出园区的流量能够高效、顺畅地抵达 DR,将最关键的拥塞控制问题集中交由 DR 处理,最大程度地减少了跨园区流量对园区内流量的干扰,为多模态混训业务提供了稳定、高效的网络环境。
图 2 实验网架构
算力损失的理论建模
由于单台高端 GPU 服务器成本通常高达百万以上,使得 GPU 利用率成为业务中最关注的运营指标之一。跨园区网络与园区内网络相比,存在显著差异。其带宽相对更低,往返时延(RTT)更大,并且链路中断的概率更高。在业务的迭代过程中,这些特性导致通信时间在整个处理流程中的占比增加。由于 GPU 在通信等待期间处于闲置状态,从而使得 GPU 利用率下降,相对于单园区的运营模式,产生了所谓的算力损失。
实践表明,跨园区对计算时间、数据加载时间、园区内通信时间的影响微乎其微,所以算力损失的“罪魁祸首”就是跨园区通信时间,计算公式如下:
其中 msgSize 是一次跨园区通信需要传输的数据量大小,pair_crossDci 是同时跨园区通信的 GPU 对的数量,RTT 为往返延迟,每 100km 为 1ms。因为大家共享 bw_DR(实验网中为 3.2T)带宽,所以分摊到单卡的带宽为 bw_DR/pari_crossDci。举个例子,100 对 GPU 同时通信,单卡的带宽(假定负载绝对均衡)只有 30Gbps,而园区内这个数值是 400Gbps,高了 10 倍以上。
另外两个参数 k 和 𝛼_𝐿𝐵 与所采用的网络技术相关。k=1,2, … 反映了传输次数,由发送窗口大小、重传次数和集合通信的缓存大小决定,𝛼_𝐿𝐵≤1 反映了不同 GPU 卡间负载不均的程度。公式揭示了网络优化减少算力损失的几乎所有技术路线:优化发送窗口大小,优化集合通信的缓存,避免拥塞、链路中断导致的丢包(无损 lossless)使得 k 尽可能小,完美的负载均衡使得 𝛼_𝐿𝐵 尽可能接近 1。
小规模和千卡测试
在交付给业务方评估跨园区所带来的算力损失之前,运用 NcclTest 工具对常用的集合通信展开测试。结果显示,在 120km 的长距链路环境下,DCN 相关参数表现欠佳。对于 1MB 以上的消息,均被分割成更小的数据块进行传输,导致消息传输延迟至少增加了 1 个 RTT(约 1.3ms)。而当消息大小达到 256MB 以上时,传输延迟的增加幅度更是超过 100 倍 RTT。
通过优化 channel 数,chunksize 和 buffersize,16MB 消息在 120km 链路上的传输延迟降低了 7 倍,256MB 大消息的传输延迟降低了 20 倍。随后的业务测试,也证明了网络优化的效果:7B dense 模型 PP 分割下跨园区的算力损失从 9%降到了 2%以内。
图 3 消息传输延迟的优化效果
在分布式训练领域,对于 PP(Pipeline Parallelism,流水线并行)分割和 DP(Data Parallelism,数据并行)分割,业界通常认为 DP 分割由于跨园区通信次数较少,其算力损失会相对更小。然而,在小规模 DP 分割测试(此时带宽并非瓶颈因素)中,得到的结果却与传统认知相悖。测试数据显示,DP 分割的算力损失超过了 10%,远高于 PP 分割。其“始作俑者”是训练框架 DeepSpeed 引入的显存优化技术 Zero。非 Zero 模式(图中 baseline),不同 DP 组的 GPU 需要存储相同的优化器状态(os),梯度(g)和模型参数(p),占用了很高的显存。Zero 将这些变量分拆到不同 GPU 上,前向计算时通过跨园区网络同步模型参数造成了通信时长的显著增加。如何避免 Zero 的同步消息跨园区是框架下一步需要解决的问题。
图 4 ZeRO 的实现原理
(来源:“ZeRO: memory optimizations toward training trillion parameter models” ,Microsoft)
业务通过 DP 扩展进行了千卡测试。上百对 GPU 同时通信,跨园区通信时长由于单卡带宽的降低而增加,使得理论的算力损失(𝛼_𝐿𝐵=1 且零丢包)超过了 2%,而负载不均和拥塞丢包使得算力损失进一步恶化了约 1%。DR 的端口中有近一半出现了丢包,且端口的负载不均高达 20%。如何提升 DR 端口的负载均衡度和避免丢包成为了网络下一步需要解决的问题。
结论
由于带宽受限和 RTT 的增加,长距高性能网络互联不同园区的 GPU 集群会产生算力损失(相对于园区内)。现网测试和理论分析表明:
1.带宽和距离的影响。在框架和网络都充分优化的前提下,距离(对应 RTT)和互联带宽是影响算力损失的主要因素。以实验网(120km)为例,在算力损失不超过 2%的目标下,典型千卡 LLM 训练任务(7B dense)采用 PP 分割所需带宽不超过 5Tbps;理论建模表明,PP 分割的算力损失随着距离增加而增加,长距离(数百到数千公里)不宜采用。同等条件下,DP 分割对带宽的需求不超过 PP 分隔的一半,且对距离不敏感。
2.框架技术的影响。DeepSpeed 的显存优化技术 Zero(主要是 stage 3,stage1/2 没有此问题)会产生大量跨园区的模型参数同步消息,使得 DP 分割的算力损失远超预期。
3.网络技术的影响。优化发送窗口大小,优化集合通信的缓存,避免拥塞、链路中断导致的丢包,完美的负载均衡可以降低算力损失。通过优化发送窗口,16MB 消息在 120km 链路上的传输延迟可以降低 7 倍,256MB 大消息的传输延迟可以降低 20 倍;拥塞控制方面,传统的端到端 CNP 在 100km 的链路上丝毫不会减少丢包,原因是反馈延迟超过了 1ms。只有 DR 直接产生 CNP 在 50us 内通知发端降速才能解决长距拥塞的问题。
关于 MegaScaleOut
在智算网络技术飞速发展的当下,长距高性能网络对于推动人工智能、大数据等前沿领域的进步起着关键作用。为积极推动长距高性能网络标准的制定与技术的落地应用,进一步提升智算网络的整体效能,腾讯、中国信息通信研究院、中国移动、光迅、华为、锐捷等多家在通信及网络技术领域极具影响力的单位,于 ODCC 网络工作组共同发起成立了 MegaScaleOut 项目。
MegaScaleOut 项目聚焦于长距高性能网络的核心技术研究与标准体系构建,旨在整合各方资源,通过产学研用的深度融合,攻克技术难题,促进长距高性能网络技术的广泛应用。欢迎有志于智算网络新技术的服务提供商、设备厂商和芯片厂商积极加入 MegaScaleOut 项目。
附录-关于 PP 分割和 DP 分割
PP 分割指的将一个模型的流水线分成两部分,分别部署在两个园区的 GPU 卡上。每处理一个数据样本,会有一次前向计算和一次反向计算的 PP 通信跨园区。每次通信传输的是隐藏层变量,msgSize 通常只有几十 MB。当跨园区带宽足够大时,其相对于 DCN 迭代时间的增量可估算为,其中为单个模型一次迭代处理的数据样本数,典型值 100~200。
DP 分割指所有的模型被分成了两部分,分别部署在两个园区,但同一个模型的 GPU 卡均位于同一个园区。前向和反向计算的 PP 通信均在园区内,只有 DP allreduce 通信跨园区,msgSize 为,其中为模型参数量,以 chatGPT3 为例,。当跨园区带宽足够大时,其相对于 DCN 迭代时间的增量可估算为,其中为跨园区传输的次数。
图 5 PP/DP 分割示意图
原文链接 https://mp.weixin.qq.com/s/P1...
扩展阅读:《企业存储技术》文章分类索引更新(微信公众号合集标签)
END
作者:ODCC
原文:企业存储技术
推荐阅读
欢迎关注企业存储技术极术专栏,欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。