九章智算云

千卡训练的网络拓扑:从 Fat-Tree 到 Dragonfly+

AllReduce 阶段的尾延迟为何随集群规模呈非线性增长?基于 NCCL 拓扑感知重写,我们把 1024 卡集群的训练效率从 71% 提到 89%。

问题

客户做 100B 参数级别的全量预训练,用 1024 张 H100 跑 Megatron-LM,DP=8 / TP=4 / PP=32。初次上线时 MFU(model flops utilization)只有 71%,远低于宣传的 ~85%。profiler 显示 25% 时间花在 AllReduce,且尾延迟 P99 是 P50 的 4 倍。

初步定位

集群是经典 Fat-Tree——上联收敛 1:1,理论上无阻塞。但 NCCL 默认拓扑探测把 32 卡的 pipeline group 直接放到了一个 spine 下,AllReduce 跨 spine 频繁,命中尾延迟。

方案一:拓扑感知 NCCL

手写 NCCL_TOPO_FILE,把 DP / TP / PP 三层映射到 leaf / spine / superspine。NCCL 自动选 ring 内不跨 spine、ring 间分流,AllReduce 时延降到原来的 60%。

  • MFU:71% → 82%
  • 尾延迟 P99/P50:4× → 1.6×

方案二:上 Dragonfly+

继续往 89% 走,光靠 Fat-Tree 不够——再加一层 MPLS 也撑不住 4096+ 卡。九章新建的 IB 集群直接上 Dragonfly+:每个 group 内 24 个 leaf,全互联;group 间通过 high-radix all-to-all。32-pipeline group 全部落进同一个 Dragonfly group:

  • MFU:82% → 89%
  • 线缆减少 40%,机房成本下降明显

结论

千卡及以上规模,网络拓扑直接决定训练效率。建议训练任务上线前:

  1. 压测 AllReduce 尾延迟,对比 P99/P50 比值
  2. NCCL_TOPO_FILE 显式约束
  3. 规划期就把 Dragonfly+ 列入选型,不要等 Fat-Tree 扩到极限

九章 HyperTrain 平台默认开启拓扑感知调度,一键把同 pipeline 组放进同 leaf。

最后更新于

这篇文档对你有帮助吗?

目录