跳到主要内容

总览

本章节范围:分布式 LLM 训推中加速器间数据交换的语义、算法与代价模型 目标读者:选型 / 建模 TP / DP / EP 通信策略的系统工程师,评估互联拓扑对训推时延影响的架构师

范围与边界 (Scope)

包含

  • 集合通信原语的语义(谁向谁发什么、最终每个节点持有什么)
  • 经典算法(Ring / Tree / Halving-Doubling / Bruck)
  • 理论下界(延迟 / 带宽 / bisection)
  • 拓扑 × 原语 × 算法适配
  • 硬件加速(NVLS / SHARP)
  • MoE dispatch / combine 的 AllToAll 建模

不包含

名词定义

本章节所有文档默认下表名词已定义,不再重复。各概念型文档只 inline 解释本文新引入的名词。

通信语义

名词定义
集合通信 (Collective Communication)多节点协同完成的数据交换操作,定义"谁向谁发什么、每节点最终持有什么"
节点 (Node / Rank)参与通信的一个加速器,用 rank 编号标识
Root 节点一对多 / 多对一操作中作为源或汇聚点的特定节点
分片 (Shard / Chunk)完整数据按节点数均分后每节点负责的一份,大小 $M / N$
规约 (Reduce 操作)对多份等形状数据按元素执行可交换可结合运算 (SUM / MAX / MIN),输出一份合并结果
步数 (Step Count)完成一次集合通信所需通信轮次。带宽型算法步数多 / 利用率高,延迟型算法步数少 / 利用率低

代价模型

名词定义
延迟下界完成一次集合通信不可压缩的串行步数 × $\alpha$,由拓扑直径和原语语义共同决定
带宽下界即使 $\alpha = 0$,传输必需数据量在 $\beta$ 上至少耗时多少。注意是"带宽决定的时间下界",不是"带宽的下界"
带宽利用率算法实际有效传输量与理论带宽下界之比。Ring AllReduce 利用率 $(N-1)/N$,趋近 1
Bisection 带宽把拓扑划分成两半时,切割边的总带宽。AllToAll 的下界由此决定

原语

名词定义
AllReduce规约后每节点都持有完整结果,等价于 ReduceScatter + AllGather。TP / DP 核心原语
ReduceScatter全局规约后按分片分发,每节点保留 $1 / N$。ZeRO 优化器 / SP 序列并行基础
AllGather每节点贡献一片,完成后每节点持有完整拼接。与 ReduceScatter 对偶
AllToAll每节点向每个其他节点发不同数据,等价于 $N \times N$ 矩阵转置。EP / MoE 路由核心原语
BroadcastRoot 向所有节点发相同内容
ScatterRoot 向所有节点发不同分片
Reduce所有节点向 root 汇聚并规约
Gather所有节点向 root 汇聚并拼接

硬件 / 模型

名词定义
端口 (Port)节点上一个独立 DMA 引擎,可独立发起一次传输。详见 4.12 端口模型
$k$-port 模型每节点每步可同时发起 $k$ 次 send + $k$ 次 recv (Chan et al., 2007)
节点度 $d$物理直连链路数。有效并行度 $p = \min(k, d)$
网内计算 (In-network Computing)在交换机芯片内执行规约,而非在终端节点做软件规约。代表:NVLS, SHARP
NVLSNVLink SHARP, NVSwitch 内置规约引擎 → 4.10 NVLS
SHARPNVIDIA Quantum / Spectrum-X 交换机的在网聚合协议 → 4.15 SHARP

符号

符号含义单位
$N$参与通信的节点数--
$M$总消息大小Byte
$\alpha$启动延迟 (单次通信固定开销)$\mu s$
$\beta$单链路带宽GB/s
$d$节点度 (物理直连链路数)--
$D$拓扑直径 (最长最短路径跳数)hops
$T$通信总时间$\mu s$
$\oplus$规约运算符 (SUM / MAX / MIN / MUL)--
$k$端口数 (节点独立 DMA 引擎数)--
$p$有效并行端口数,$p = \min(k, d)$--
$B_{\text{bisection}}$Bisection 带宽GB/s

原语速览

集合通信原语按数据流向分五类:

  • P2P (点对点):Send / Recv,是所有集合操作的原子构建块
  • 一对多:Broadcast (相同内容) / Scatter (不同分片),root 向 all
  • 多对一:Reduce (规约) / Gather (拼接),all 向 root
  • 全局对称:AllReduce / ReduceScatter / AllGather,每节点既发又收,最终状态对等
  • 全交换:AllToAll, $N \times N$ 数据矩阵转置

各原语在 1-port 全双工 / 高 bisection 拓扑下的带宽下界:

原语每节点带宽下界典型应用拓扑要求
P2P$M / \beta$PP 流水线阶段间激活两端直连或低跳数
Broadcast$M / \beta$参数广播 / 初始化同步低直径,tree 或 switch
Scatter$(N-1)M / (N\beta)$数据分发 / 初始 token 分片同 Broadcast
Reduce$M / \beta$梯度汇总 (非 DP 主流)同 Broadcast
Gather$(N-1)M / (N\beta)$结果收集同 Broadcast
AllReduce$2(N-1)M / (N\beta)$DP 梯度同步 / TP 激活同步高 bisection, ring 或 switch
ReduceScatter$(N-1)M / (N\beta)$ZeRO 优化器 / SP 序列并行高 bisection
AllGather$(N-1)M / (N\beta)$ZeRO 参数重建 / SP 序列并行高 bisection
AllToAll$(N-1)M / (N\beta)$EP / MoE 路由全连通或低阻塞 Fat-tree
NVLS AllReduce$M / \beta$ (硬件)TP / DP, NVSwitch 域内必须接入 NVSwitch

@tbl-cc-overview-primitives 原语速览

子文档索引 (Index)

文档内容
4.2 理论下界延迟 / 带宽 / bisection 下界推导,最优算法判据
4.3 P2PSend / Recv 语义,单跳与多跳代价,流水线与并发
4.4 一对多Broadcast / Scatter:二叉树 / binomial tree 算法
4.5 多对一Reduce / Gather:对偶性,root 瓶颈规避
4.6 ReduceScatter与 AllGather 的对偶关系,Ring 实现
4.7 AllGatherRing 实现,ZeRO / SP 用法
4.8 AllReduceRing / Double Binary Tree / Halving-Doubling 对比与选型
4.9 AllToAll矩阵转置语义,Pairwise / Ring / Bruck 算法,MoE 建模
4.10 NVLSNVSwitch 网内规约:突破软件下界的机制与建模
4.11 拓扑对集合通信的影响Ring / Torus / Fat-Tree 等拓扑对原语性能的系统性影响
4.12 端口模型$k$-port 模型的硬件实现,端口增加成本与收益递减
4.13 Distributed Top-KTop-K 选择的分布式实现,与 AllReduce 的关系
4.14 不规则与流水化 AllToAllAllToAllV:不等长消息的代价模型,MoE 实际场景
4.15 SHARPNVIDIA Quantum / Spectrum-X 在网聚合协议演进与性能

@tbl-cc-overview-index 子文档索引