拓扑对集合通信的影响
关键拓扑指标如何决定算法选择与分层通信策略
核心要点:
- 关键四指标:度 $d$ / 直径 $D$ / Bisection $B_{\text{bis}}$ / 对称性
- Ring 延迟 $O(N)$, Hypercube / Fat-Tree 延迟 $O(\log N)$,带宽项常一致
- 2D Torus 把延迟降到 $O(\sqrt{N})$,适合中等规模无 Fat-Tree 投资场景
- 多层异构拓扑分层策略 (高带宽层内多做) 加速 5×+
- 端口数加倍主要让 Ring 步数减半,Tree / Hypercube 类对端口不敏感
- Topology-Algorithm co-design 是开放方向 (ZCube / SCCL / TACCL)
拓扑关键指标
核心问题:不同原语对拓扑的哪个指标最敏感?
四个核心指标
| 指标 | 对集合通信的意义 |
|---|---|
| 度 $d$ | 节点聚合带宽上限 $d \beta$ |
| 直径 $D$ | Broadcast / Reduce 延迟下界 $D \cdot \alpha$ |
| Bisection $B_{\text{bis}}$ | AllReduce / AllToAll 全局带宽下界 |
| 对称性 | 负载均衡,非对称拓扑某些节点成瓶颈 |
@tbl-cc-topo-metrics 拓扑关键四指标
常见拓扑指标对比
| 拓扑 | 度 $d$ | 直径 $D$ | $B_{\text{bis}}$ | 对称 | 成本 |
|---|---|---|---|---|---|
| Linear | 1–2 | $N - 1$ | $\beta$ | 否 | 最低 |
| Ring | 2 | $\lfloor N / 2 \rfloor$ | $2 \beta$ | 是 | 低 |
| Binary Tree | 1–3 | $2 \log_2 N$ | $\beta$ | 否 | 低 |
| Fat-Tree ($k$-ary) | $k$ | $2 \log_k N$ | $\sim N \beta / 2$ | 层级 | 高 |
| Hypercube | $\log_2 N$ | $\log_2 N$ | $N \beta / 2$ | 是 | 中高 |
| 2D Torus | 4 | $\sqrt{N}$ | $2 \sqrt{N} \beta$ | 是 | 中 |
| 3D Torus | 6 | $\frac{3}{2} N^{1/3}$ | $2 N^{2/3} \beta$ | 是 | 中 |
| Fully-Connected | $N - 1$ | 1 | $N^2 \beta / 4$ | 是 | 极高 |
@tbl-cc-topo-spec-cmp 常见拓扑关键指标
各拓扑上的 AllReduce 性能
核心问题:AllReduce 是对拓扑最敏感的原语,不同拓扑上代价相差多少?
Ring
$$\begin{equation} T_{\text{Ring}} = 2 (N - 1) \alpha + \frac{2 (N - 1)}{N} \cdot \frac{M}{\beta} \label{eq:cc-topo-ring-ar} \end{equation}$$- 带宽利用率接近 100%,实现简单,对称
- 延迟 $O(N)$, $N$ 大延迟爆炸
- 适用规模 $N \le 8 \sim 16$
Hypercube (Halving-Doubling)
$$\begin{equation} T_{\text{Hypercube}} = 2 \log_2 N \cdot \alpha + \frac{2 (N - 1)}{N} \cdot \frac{M}{\beta} \label{eq:cc-topo-hypercube-ar} \end{equation}$$延迟降到 $O(\log N)$,带宽与 Ring 同。代价:度 $O(\log N)$,布线复杂。
2D Torus ($r \times c$)
分层 Ring:先行内 Ring AR ($r$ 节点),后列内 Ring AR ($c$ 节点)。正方形 $r = c = \sqrt{N}$:
$$\begin{equation} T_{\text{2D-Torus}} \approx 4 (\sqrt{N} - 1) \alpha + 4 \cdot \frac{\sqrt{N} - 1}{\sqrt{N}} \cdot \frac{M}{\beta} \label{eq:cc-topo-2dtorus-ar} \end{equation}$$延迟从 $2 (N-1) \alpha$ 降到 $4 (\sqrt{N} - 1) \alpha$,减 $\sqrt{N} / 2$ 倍。$N = 16$ 时:Ring 30 步 vs 2D-Torus 12 步。
Fat-Tree
$k$-ary 直径 $2 \log_k N$, Full bisection 保证带宽:
$$\begin{equation} T_{\text{Fat-Tree}} = 2 \log_k N \cdot \alpha + \frac{2 (N - 1)}{N} \cdot \frac{M}{\beta} \label{eq:cc-topo-fattree-ar} \end{equation}$$延迟和带宽都接近最优,代价:交换机数 $O(N \log N / k)$。
性能对比 ($N = 16$, $M = 1$ MB, $\alpha = 1 \mu s$, $\beta = 64$ GB/s)
| 拓扑 | 算法 | 延迟项 ($\mu s$) | 带宽项 ($\mu s$) | 总 ($\mu s$) |
|---|---|---|---|---|
| Ring | Ring AR | 30 | 29.3 | 59.3 |
| Hypercube | Halving-Doubling | 8 | 29.3 | 37.3 |
| 2D Torus (4×4) | 分层 Ring | 12 | ~47 | ~59 |
| Fully-Connected | all-port RS + AG | 2 | 1.0 | 3.0 |
@tbl-cc-topo-perf-cmp AllReduce 拓扑性能对比 (N=16, M=1 MB)
Fully-Connected 用 all-port RS + AG 各 1 步,每节点同时向 $N - 1$ 个邻居各发 $M / N$:延迟项 $2 \alpha = 2 \mu s$,带宽项 $\frac{M / N}{\beta} \approx 1.0 \mu s$。
端口模型的影响
核心问题:端口数 $k$ 加倍,哪些算法步数减半,哪些不变?
各原语对端口数的敏感度
| 原语 | 算法 | 1-port 步数 | 2-port 步数 | 加速 |
|---|---|---|---|---|
| Broadcast | 链式 | $N - 1$ | $\lceil (N-1) / 2 \rceil$ | ≈ 2× |
| Broadcast | 二叉树 | $\log_2 N$ | $\log_2 N$ | 1× |
| AllGather | Ring | $N - 1$ | $\lceil (N-1) / 2 \rceil$ | ≈ 2× |
| AllReduce | Ring | $2 (N - 1)$ | $\approx N$ | ≈ 2× |
| AllReduce | Halving-Doubling | $2 \log_2 N$ | $2 \log_2 N$ | 1× |
| AllToAll | Pairwise | $N - 1$ | $N - 1$ | 1× |
@tbl-cc-topo-port-sensitivity 各原语对端口数敏感度
关键规律:
- Ring 类从双向最获益,步数减半
- Tree / Hypercube 类对方向性不敏感
- AllToAll Pairwise 已天然双向交换
2-port Ring AllReduce
$N$ chunk 分两半双向传:
$$\begin{equation} T_{\text{2port-Ring}} \approx N \alpha + \frac{M}{\beta} \label{eq:cc-topo-2port-ring} \end{equation}$$半双工的代价
收发必须串行化,Ring 每步时间翻倍:
$$\begin{equation} T_{\text{half-duplex-Ring}} = 2 (N - 1) \cdot 2 \cdot \left( \alpha + \frac{M / N}{\beta} \right) \label{eq:cc-topo-halfduplex-ring} \end{equation}$$带宽利用率降至全双工一半。现代高性能互联极少半双工。
详细端口硬件成本见 4.12 端口模型。
多层级异构拓扑
核心问题:现实集群跨级带宽差 10–100×,如何让算法适配?
现实层级结构
| 层级 | 拓扑 | 带宽 | 延迟 |
|---|---|---|---|
| L2: Chip 内 (多 Die) | D2D Ring / Mesh | 100–900 GB/s | 0.1–0.5 $\mu s$ |
| L3: Board 内 (多 Chip) | NVLink Ring / FC | 64–900 GB/s | 0.5–2 $\mu s$ |
| L4: Rack 内 (多 Board) | PCIe / NVLink / IB | 25–400 GB/s | 2–5 $\mu s$ |
| L5: Rack 间 | InfiniBand / Ethernet | 12.5–100 GB/s | 5–50 $\mu s$ |
@tbl-cc-topo-hierarchy 异构集群层级结构
带宽跨度 L2 → L5 可达 10–100×,延迟跨度 10–500×。
分层 AllReduce (2 层)
核心原则:高带宽层内多做,最小化跨低带宽层的通信量。
$G$ 组 × $L$ 节点 / 组 ($N = G L$):
- Intra-group RS:数据量 $M \to M / L$
- Inter-group AR:跨组数据量 $M / L$ (减 $L$ 倍)
- Intra-group AG:恢复完整结果
数值对比
$G = 4, L = 8, N = 32, M = 100$ MB, $\beta_{\text{intra}} = 450, \beta_{\text{inter}} = 25$ GB/s:
- 直接 Ring (跨组瓶颈):$T_{\text{flat}} \approx 310 + 7750 = 8060 \mu s$
- 分层:$T_{\text{hier}} = 403 + 780 + 403 = 1586 \mu s$
- 加速 ≈ 5.1×
跨组数据量从 100 MB 缩到 12.5 MB,跨组带宽时间从 7750 → 750 $\mu s$。
SCCL 拓扑策略
| 芯片数 | 拓扑 | 算法 |
|---|---|---|
| 2 | 直连 | 直接交换 |
| 4 | Ring | Ring AllReduce |
| 8 | Ring | Ring AllReduce |
| 16 | 2D Torus | 分层 Ring |
@tbl-cc-topo-sccl-strategy SCCL 不同规模拓扑选择
16 芯 2D Torus 由两个 8 芯 Ring 纵向互联,是分层策略典型实例。
拓扑-算法匹配指南
核心问题:给定并行策略和规模,如何根据拓扑特征选择最优集合通信算法?
| 拓扑 | 最佳 AllReduce | 最佳 AllToAll | 最佳 Broadcast |
|---|---|---|---|
| Ring | Ring AR | Ring A2A | 双向链式 |
| Hypercube | Halving-Doubling | Bruck | Binomial Tree |
| 2D Torus | 分层 Ring | 分维 A2A | 分维 Broadcast |
| Fat-Tree | Tree AR | Pairwise | Binomial Tree |
| Fully-Connected | Direct | Pairwise | Binomial Tree |
@tbl-cc-topo-algo-match 拓扑-算法匹配速查
新趋势:拓扑与算法 co-design
核心问题:拓扑设计与集合通信算法是否能联合优化?
历史分工
过去 30 年两条独立脉络:
- 拓扑研究:图论给新拓扑 (Clos / Dragonfly / SlimFly / PolarFly),证几何性质,不考虑具体算法
- 算法研究:针对已有拓扑设计最优算法,拓扑是"输入"不参与优化
万卡 LLM 训练下暴露问题:拓扑为通用 workload 设计,算法在拓扑上"凑合",双方互不知道彼此存在。
ZCube:拓扑由 workload 反向决定
SIGCOMM 2025 论文 ZCube 提出 ATOP (Automated Topology Optimization Pipeline):把拓扑结构编码为超参数,让搜索算法在四目标 (LLM 流量性能 / 集合通信性能 / 容错 / 成本) 下找最优结构。
智谱 GLM-5.1 千卡推理生产数据 (来源):
- 推理吞吐 +15%
- TTFT P99 -40.6%
- 交换机 + 光模块成本 -1/3
SIGCOMM 2025 论文训练仿真:端到端速度比 ROFT / Rail-only / HPN 提升 3–7%,硬件成本节省 26–46%。
局限:真实 testbed 仅 16 GPU 报告 NCCL AR / A2A 吞吐 (与 ROFT 持平),千卡级单原语性能未单独分解。
co-design 的潜力与现状
ATOP 是部分 co-design:搜索时把"集合通信性能"作为目标之一,但算法本身不是搜索变量。评估候选拓扑用 ForestColl 算理论 AG 下界 — 相当于假定每个候选拓扑都能用上理论最优算法,把"算法选择"消去维度。
全联合 co-design (拓扑 + 算法 + 路由 + 并行同搜索) 大规模下被认为是 NP 难。ATOP / TopoOpt 都是工程妥协,不是真正联合。
| 维度 | 现状 | 改进方向 |
|---|---|---|
| 拓扑选择 | 人工 + 经验 (Fat-tree 默认) | 按 workload 自动搜 (ZCube) |
| 算法选择 | NCCL / RCCL 启发式 | 由拓扑搜索统一选定 |
| 端口模型 | 拓扑给定后算法适配 | 搜索时纳入端口配置 |
| 容错策略 | 算法对故障透明 | 拓扑搜索显式建模故障代价 |
@tbl-cc-topo-codesign-status co-design 现状与改进方向
深入思考
新拓扑对算法选择的实际冲击:上节匹配指南隐含假设拓扑能提供多路径 (由 ECMP / AR / packet spraying 负载均衡)。ZCube 用 hand-crafted static optimal routing 为每对 GPU 预选一条路径 (消哈希碰撞),物理上仍有多路径但调度层不用。所有依赖"路径多样性掩盖热点"的算法都失去用武之地,算法库可能需新增"static-routing optimized"档。
co-design 的两难:拓扑硬件投资周期 5–10 年,workload 演化 1–2 年。按当前 workload 搜拓扑,几年后 workload 变了拓扑就过时。真正 co-design 应是"拓扑自适应 workload" (可重构 OCS / SiPh),当前无规模化生产案例。
算法侧同步进化:基于 SMT / MILP 自动合成 AllReduce 调度的工作 (Cai et al., SCCL PPoPP 2021; Shah et al., TACCL NSDI 2023) — 注意此 SCCL (微软算法合成工具) 与上文 SOPHGO 同名互联库不是一回事。算法搜索与拓扑搜索仍各自为政,联合执行无公开生产案例,是接下来 2–3 年值得关注的方向。
Takeaway
| 知识点 | 核心结论 |
|---|---|
| 四指标 | 度 / 直径 / Bisection / 对称性 |
| Ring 适用 | $N \le 16$,大 $N$ 延迟爆炸 |
| Hypercube / Fat-Tree | 延迟 $O(\log N)$ 同时带宽近最优 |
| 2D Torus 折中 | 延迟 $O(\sqrt{N})$,无 Fat-Tree 投资场景 |
| 端口数加倍 | Ring 类步数减半,Tree 类不变 |
| 分层 AR 收益 | 跨慢链路数据量减 $L$ 倍,加速 5×+ |
| 拓扑-算法匹配 | 按拓扑类型选最优算法 |
| co-design 趋势 | ZCube / SCCL / TACCL,但联合搜索仍未成熟 |
@tbl-cc-topo-takeaway 拓扑影响要点
参考资料
- Dally & Towles, "Principles and Practices of Interconnection Networks", Morgan Kaufmann 2003
- Patarasuk & Yuan, "Bandwidth Optimal All-reduce Algorithms", JPDC 2009
- Jia et al., "Optimizing Network Topologies for Large-Scale Distributed Training", NSDI 2023
- SCCL Documentation v1.0 (SOPHGO) — Ring / 2D Torus 实现
- Google TPU v4 Architecture