多跳拓扑建模
AI 集群的互联网络是分层的——NVLink(节点内)、InfiniBand 或以太网(节点间)、光纤(机柜间)构成多层级链路。不同并行策略的集合通信在不同层级链路上运行,需要分层建模才能得到准确的延迟预测。
多跳 $\alpha$ 累加
点对点通信经过 $H$ 跳时,每一跳都贡献独立的启动延迟和传播延迟:
$T_{\text{multihop}} = \sum_{i=1}^{H} \left(\alpha_i + \frac{M}{\beta_i}\right)$
其中 $\alpha_i$ 和 $\beta_i$ 分别是第 $i$ 跳的启动延迟和带宽。
在 cut-through 交换模式下(当前数据包的第一个 flit 到达时即开始转发),可以优化为:
$T_{\text{cutthrough}} = \alpha_1 + \frac{M}{\beta_{\min}} + \sum_{i=2}^{H} \alpha_i$
其中 $\beta_{\min}$ 为路径上的瓶颈带宽,后续跳的 $\alpha$ 与上一跳传输部分重叠。
简化形式:当各跳带宽差异不大时,可近似为:
$T_{\text{multihop}} \approx \alpha_{\text{total}} + \frac{M}{\beta_{\text{bottleneck}}}$
其中 $\alpha_{\text{total}} = \sum_i \alpha_i$ 为各跳启动延迟之和,$\beta_{\text{bottleneck}}$ 为路径最窄带宽。
$\alpha$ 的物理分解(各跳来源):
$\alpha = \alpha_{\text{sw}} + \alpha_{\text{NoC}} + \alpha_{\text{DMA}} + \alpha_{\text{PHY}} + \alpha_{\text{link}} + \sum_{j} \alpha_{\text{switch}_j} + \alpha_{\text{mem}}$
| 分量 | 物理来源 | 典型值 |
|---|---|---|
| $\alpha_{\text{sw}}$ | 通信库调用 + 描述符准备(NCCL kernel launch) | 1–5 $\mu s$ |
| $\alpha_{\text{NoC}}$ | 片上网络路由(计算核 → DMA 引擎) | 0.05–0.5 $\mu s$ |
| $\alpha_{\text{DMA}}$ | DMA 引擎启动 + IOMMU 地址翻译 | 0.2–1 $\mu s$ |
| $\alpha_{\text{PHY}}$ | SerDes 编解码 + PLL 锁定 | 0.005–0.02 $\mu s$ |
| $\alpha_{\text{link}}$ | 物理链路传播(电/光,$d/v$) | 0.005–5 $\mu s$ |
| $\alpha_{\text{switch}}$ | 交换机转发延迟(查表 + 缓冲 + 仲裁) | 0.1–1 $\mu s$ |
| $\alpha_{\text{mem}}$ | 目的端内存写入首次延迟 | 0.03–0.08 $\mu s$ |
两层拓扑分层公式
AI 集群中最常见的两层拓扑:节点内高带宽互联(NVLink/C2C)+ 节点间低带宽互联(InfiniBand/Ethernet)。
两层拓扑的根本差异:NVLink 带宽约 300–900 GB/s,跨节点 IB/RoCE 带宽约 25–100 GB/s,差异 9–36 倍。若用统一的 $\beta$ 参数建模,误差高达数十倍。
分层 AllReduce 公式(以 $N_g$ 个节点、每节点 $G_s$ 个 GPU 为例,NCCL 三阶段串行):
$T = T_1 + T_2 + T_3 + T_{sw}$
三个阶段串行执行(Phase 2 的输入依赖 Phase 1 的输出):
Phase 1 — 节点内 ReduceScatter($G_s - 1$ 步,走 NVLink):
$T_1 = \frac{G_s - 1}{G_s} \cdot \frac{M}{\beta_{NV}} + \alpha_{nv}$
Phase 2 — 节点间 AllReduce(仅传 $M/G_s$,走 IB):
$T_2 = \frac{2(N_g - 1)}{N_g} \cdot \frac{M/G_s}{\beta_{IB}} + \alpha_{ib}$
$T_2$ 只传 $M/G_s$ 的原因:Phase 1 完成后每个 GPU 仅保留 $1/G_s$ 的数据分片,跨节点只需同步该部分,IB 流量压缩 $G_s$ 倍。
Phase 3 — 节点内 AllGather($G_s - 1$ 步,走 NVLink):
$T_3 = \frac{G_s - 1}{G_s} \cdot \frac{M}{\beta_{NV}} + \alpha_{nv}$
合并后的闭合公式:
$\boxed{T = \underbrace{2\alpha_{nv} + \alpha_{ib} + T_{sw}}_{C} + M \cdot \left(\frac{7/4}{\beta_{NV}} + \frac{1/8}{\beta_{IB}}\right)}$
(以 $N_g = 2$,$G_s = 8$ 为例,其中系数 $7/4 = 2 \times (G_s-1)/G_s = 2 \times 7/8$,$1/8 = 1/G_s$)
分层与单层拓扑的带宽贡献对比($G_s = 8$):
| 阶段 | 带宽参数 | 系数 | 说明 |
|---|---|---|---|
| NVLink(两趟) | $\beta_{NV} \approx 360\ \text{GB/s}$ | $7/4 = 1.75$ | ReduceScatter + AllGather 各 7/8 |
| IB(一趟) | $\beta_{IB} \approx 22\ \text{GB/s}$ | $1/8 = 0.125$ | 仅传 $M/8$,流量压缩后系数小 |
NVLink 阶段贡献约 $1.75 \times M / 360 = M/206$,IB 阶段贡献约 $0.125 \times M / 22 = M/176$,两者量级相近——尽管 IB 带宽是 NVLink 的 1/16,但 IB 阶段的传输量也仅为 $M/8$,大大减轻了 IB 的负担。
带宽竞争建模
$\alpha$-$\beta$ 基础模型假设每条链路独占,无竞争。实际上多个并发通信流共享物理链路,有效带宽按流数比例缩减。
静态竞争(可在分析模型中处理)
多个通信流共享同一物理链路,有效带宽 = 链路带宽 / 并发流数:
$\beta_{\text{eff},i} = \frac{\beta_i}{\max(1,\ F_i / C_i)}$
其中 $F_i$ 为链路 $i$ 上的并发流量(单位:链路容量的倍数),$C_i$ 为链路容量(即 $C_i = 1$)。
竞争来源:
- Ring AllReduce 中多个 chunk 同时在环上传输
- MoE EP AllToAll 中所有 $N \times N$ 节点对同时通信
- DP AllReduce 与 TP AllReduce 并发(若不同并行组共享物理链路)
精度改善:加入静态竞争建模后,大规模场景(512 GPU AllGather)的误差可从 >500% 降至 10–30%(来源:SimAI, NSDI'25)。剩余误差来自动态拥塞(DCQCN/PFC),需包级仿真才能消除。
动态拥塞(分析模型的结构性局限)
拥塞控制算法(DCQCN/HPCC)的瞬态行为——速率振荡、收敛延迟、PFC 级联传播——是非线性动态系统行为,$\alpha$-$\beta$ 从根本上无法捕捉:
| 类别 | 能否在分析模型中处理 | 精度改善方案 |
|---|---|---|
| 静态竞争 | 可以(追踪并发流数,缩减 $\beta$) | 误差 10–30% → 5–10% |
| 动态拥塞 | 不可以(结构性缺陷) | 需包级仿真(NS-3/SimAI) |
Multi-Rail 建模粒度
| 建模方式 | 描述 | 适用场景 |
|---|---|---|
| 汇聚 | 所有链路合并为单一等效带宽 | 均匀流量,精度约 5% |
| 按平面 | 每个 NVSwitch 平面独立建模 | 交换机级流量竞争 |
| 按链路 | 每条物理链路独立 + 路由 | 非均匀流量(MoE AllToAll、ECMP 冲突) |
汇聚模型在以下场景失效:ECMP 哈希冲突(导致流量非均衡)、MoE AllToAll 的 $N \times N$ 竞争、混合操作并发时的链路争用。
参考文献
- Thakur et al., "Optimization of Collective Communication Operations in MPICH", IJHPCA 2005. https://journals.sagepub.com/doi/10.1177/1094342005051521
- Won et al., "ASTRA-sim2.0: Modeling Hierarchical Networks and Disaggregated Systems for Large Model Training at Scale", ISPASS 2023. https://arxiv.org/abs/2303.14006
- Wang et al., "SimAI: Unifying Architecture Design and Performance Tunning for Large-Scale Large Language Model Training with Scalability and Precision", NSDI 2025. https://www.usenix.org/system/files/nsdi25-wang-xizheng-simai.pdf