总览
本章节范围:分布式 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 路由核心原语 |
| Broadcast | Root 向所有节点发相同内容 |
| Scatter | Root 向所有节点发不同分片 |
| 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 |
| NVLS | NVLink SHARP, NVSwitch 内置规约引擎 → 4.10 NVLS |
| SHARP | NVIDIA 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 P2P | Send / Recv 语义,单跳与多跳代价,流水线与并发 |
| 4.4 一对多 | Broadcast / Scatter:二叉树 / binomial tree 算法 |
| 4.5 多对一 | Reduce / Gather:对偶性,root 瓶颈规避 |
| 4.6 ReduceScatter | 与 AllGather 的对偶关系,Ring 实现 |
| 4.7 AllGather | Ring 实现,ZeRO / SP 用法 |
| 4.8 AllReduce | Ring / Double Binary Tree / Halving-Doubling 对比与选型 |
| 4.9 AllToAll | 矩阵转置语义,Pairwise / Ring / Bruck 算法,MoE 建模 |
| 4.10 NVLS | NVSwitch 网内规约:突破软件下界的机制与建模 |
| 4.11 拓扑对集合通信的影响 | Ring / Torus / Fat-Tree 等拓扑对原语性能的系统性影响 |
| 4.12 端口模型 | $k$-port 模型的硬件实现,端口增加成本与收益递减 |
| 4.13 Distributed Top-K | Top-K 选择的分布式实现,与 AllReduce 的关系 |
| 4.14 不规则与流水化 AllToAll | AllToAllV:不等长消息的代价模型,MoE 实际场景 |
| 4.15 SHARP | NVIDIA Quantum / Spectrum-X 在网聚合协议演进与性能 |
@tbl-cc-overview-index 子文档索引