跳到主要内容

精度验证

核心要点

  • 单层拓扑大消息:RMSPE < 5%, $\alpha$ 计算从方法 A 改为方法 B 使整体 RMSPE 77% → 16%
  • 两层拓扑:网格搜索 + 串行三阶段公式,H100 + IB NDR 16-GPU RMSPE 42.5% → 9.9%
  • 误差按消息分段:< 1 MB 由 $\alpha$ 误差 + NCCL kernel launch 主导,> 64 MB 由 $u_r$ 决定
  • 结构性失效:NVLS / SHARP / ECMP 哈希冲突 / 大规模 AllToAll, RMSPE > 30%
  • 工程建议:推理 TP AllReduce (> 10 MB) 可用;小消息 (< 1 MB) 不建议

本文记录 $\alpha$-$\beta$ 通信模型在不同互联类型和消息大小下的预测精度验证结果,包括验证数据集 / 单层 + 两层拓扑验证 / 误差分析 / 已知精度边界。

核心结论:给定正确的参数标定,大消息 (>64 MB) AllReduce 的延迟预测 RMSPE < 10%,适合推理场景的 TP / PP 通信建模。单层拓扑改进 $\alpha$ 计算逻辑后整体 RMSPE 从 77% 降至 16%;两层拓扑修正分层公式后 RMSPE 从 42.5% 降至 9.9%。

验证用什么数据集

核心问题:验证覆盖哪些互联类型和节点规模?误差指标怎么算?

验证使用公开 nccl-tests 实测数据,覆盖主流互联类型 (NVLink3/4/5 / PCIe Gen4 / InfiniBand NDR / HDR / RoCEv2) 和节点规模 (8 GPU 单节点 ~ 64 GPU 8 节点):

数据集互联类型规模数据点消息范围
H200 8-GPUNVLink4 + NVLS8 GPU1764 KB ~ 4 GB
A100 8-GPUNVLink38 GPU141 MB ~ 512 MB
A100 4-GPU PCIePCIe Gen44 GPU15128 MB ~ 1 GB
GB200 NVL72NVLink5 (72 GPU 全连接)72 GPU564 MB ~ 4 GB
H100 16-GPU 2-node (Crusoe)NVLink4 + IB NDR16 GPU1764 KB ~ 2 GB
H100 16-GPU 2-node (Nebius)NVLink4 + IB NDR16 GPU5512 MB ~ 8 GB
H100 16-GPU 2-node (Oracle)NVLink4 + RoCEv216 GPU51 GB ~ 16 GB

@tbl-model-verify-datasets 精度验证使用的数据集

误差指标 RMSPE (均方根百分比误差):

$$\begin{equation} \text{RMSPE} = \sqrt{\frac{1}{n}\sum_{i=1}^{n}\left(\frac{\hat{T}_i - T_i}{T_i}\right)^2} \times 100\% \label{eq:model-verify-rmspe} \end{equation}$$

$T_i$ 为实测延迟 ($\mu s$), $\hat{T}_i$ 为模型预测延迟 ($\mu s$)。RMSPE 对相对误差敏感,大消息和小消息均等权重。

单层拓扑的精度怎么样

核心问题:标定 $u_r$ 后,各互联类型单层拓扑 RMSPE 是多少?

单层拓扑 (所有 GPU 通过同类链路全连接,如 NVSwitch 场景) 使用 Flat Ring AllReduce 公式:

$$\begin{equation} T = 2(N-1) \times \text{hops} \times \ell_{\text{link}} + \frac{2(N-1)}{N} \cdot \frac{M}{\beta_{\text{phys}} \cdot u_r} \label{eq:model-verify-flat-ring-ar} \end{equation}$$

最优参数拟合结果 (方法 B, ASTRA-sim 风格 $\alpha$ 计算):

互联类型$N$hops$u_r$$\ell_{\text{link}}$ ($\mu s$)$\alpha$ ($\mu s$)RMSPE (延迟)
NVLink5 (GB200/NVL72)7220.962.16062%
NVLink4 (H200 8-GPU)820.981.3379%
NVLink3 (A100 8-GPU)820.722.3658%
PCIe Gen4 (A100 4-GPU)420.661%

@tbl-model-verify-flat-rmspe 单层拓扑各互联类型最优参数与 RMSPE

大消息 BusBW 预测精度 (消息 > 256 MB,带宽主导区间):

互联类型实测 BusBW模型预测误差
A100 NVLink3 8-GPU226 GB/s225 GB/s ($u_r=0.75$)< 1%
H100 NVLink4 8-GPU~414 GB/s414 GB/s ($u_r=0.92$)< 1%
H200 NVLink4 8-GPU (NVLS)475 GB/s414 GB/s ($u_r=0.92$)-13% (NVLS 无法建模)
GB200 NVL72839 GB/s837 GB/s ($u_r=0.93$)< 1%

@tbl-model-verify-flat-bw 单层拓扑大消息 BusBW 实测 vs 预测

结论:给定正确的 $u_r$,单层拓扑大消息 AllReduce 预测误差 < 3% (NVLS 场景除外)。

两层拓扑的精度怎么样

核心问题:跨节点场景下网格搜索能拟到多少精度?早期版本 Bug 的影响有多大?

两层拓扑 (节点内 NVLink + 节点间 IB) 使用三阶段串行分层 AllReduce 公式 (见 6.5 多跳拓扑建模)。

H100 16-GPU 2-node (Crusoe IB NDR) 参数校准 (网格搜索,17 个数据点,64 KB ~ 2 GB):

参数搜索范围含义
$u_{NV}$ (NVLink 利用率)0.85 ~ 0.98NVLink 带宽利用率
$\beta_{IB}$ (GB/s)50 ~ 400IB 有效带宽 (取决于 NCCL 使用几个 NIC)
$\alpha_{nv}$ ($\mu s$)0 ~ 30NVLink 固定延迟
$\alpha_{ib}$ ($\mu s$)0 ~ 50IB 固定延迟
$T_{sw}$ ($\mu s$)0 ~ 20NCCL kernel launch + GPU barrier
最优 RMSPE9.9%

@tbl-model-verify-twolayer-grid 两层拓扑网格搜索参数与最优 RMSPE

旧代码 Bug 与修正的 RMSPE 对比

版本group_size合并方式RMSPE
旧代码 (Bug)2 (错误)max (错误)42.5%
正确公式 (串行 sum)8 (正确)sum (正确)9.9%

@tbl-model-verify-twolayer-bugfix Bug 修复前后 RMSPE 对比

跨节点验证汇总 (多种互联类型,均使用分层公式 + 网格搜索标定):

数据集数据点消息范围最优 RMSPE主要限制
H100 IB NDR 16-GPU (Crusoe)1764 KB ~ 2 GB9.9%小消息参数不可辨
H100 IB NDR 16-GPU (Nebius)5512 MB ~ 8 GB7.5%仅大消息数据点
H100 RoCEv2 16-GPU (Oracle)51 GB ~ 16 GB5.4%仅大消息,IB 参数不可辨
GH200 RoCE 2-GPU 2-node218 B ~ 2 GB33%中间消息段 RoCE 爬坡曲线偏差
A100 RDMA 16-GPU (Oracle)1132 MB ~ 1 GB67%数据质量问题 + RDMA 主导
H20 RoCE 16-GPU (Asterfusion)24512 B ~ 17 GB57%ECMP 哈希冲突导致流量退化

@tbl-model-verify-twolayer-summary 各跨节点数据集的最优 RMSPE

误差来源是什么

核心问题:RMSPE 在小 / 中 / 大消息分别主要来自什么?哪些能修,哪些不能?

RMSPE 按消息大小分三段统计:

消息区间主导因素误差来源
< 1 MB延迟主导 ($\alpha$ 决定)$\alpha$ 参数估计误差 + NCCL 软件层开销 (模型未建模)
1 ~ 64 MB过渡区两者混合,$\beta(n)$ 曲线非线性
> 64 MB带宽主导 ($\beta \cdot u_r$ 决定)带宽利用率 $u_r$ 估计误差

@tbl-model-verify-error-by-size 按消息大小分段的误差来源

分层误差来源

  1. $\alpha$ 高估 (方法 A 的系统性问题):将所有 $N-1$ 步的全部 DMA / 协议开销叠加,但流水线稳定后这些开销大部分被掩盖。方法 B 将小消息误差从 150% 降至 18%。

  2. NCCL 软件层开销 (所有场景的残差来源):本模型建模硬件协议层延迟,不包含 NCCL kernel launch + GPU barrier (约 15–60 $\mu s$)。小消息中此开销占主导比例,导致模型预测系统性偏低。

  3. NVLS 超线速 (H200 / B200 场景的结构性限制):NVSwitch 网内计算 (in-network reduction) 使 AllReduce 步数从 $2(N-1)$ 降到 2 步,BusBW 超过物理线速。$\alpha$-$\beta$ 无法建模此效应。

  4. ECMP 哈希冲突 (跨节点场景):交换机等价多路径路由 (ECMP) 的哈希冲突导致某些流共享同一物理链路,实测 BusBW 出现非单调下降 (大消息反而更慢)。分析模型无法捕捉此行为。

模型在哪些场景可用 / 不可用

核心问题:工程上哪些 LLM 场景适合用本模型,哪些必须谨慎?

模型精度好的场景 (可达 RMSPE < 10%):

场景RMSPE条件
单层拓扑大消息 AllReduce (> 64 MB)< 5%正确标定 $u_r$,无 NVLS
两层拓扑大消息 AllReduce (NVLink 主导)5~10%分层公式 + 网格搜索标定
IB 节点间主导 (足够 NIC,大消息)7~10%参数校准后

@tbl-model-verify-good-cases 精度可用的场景

模型精度差的场景 (RMSPE > 30%,需谨慎使用):

场景RMSPE根本原因
小消息 (< 1 MB)50~150%NCCL 软件层开销未建模
H200 / B200 NVLS 场景~13% (大消息) + 更高 (小消息)NVLS 超线速效应
ECMP 退化场景> 50%流量非均衡无法建模
AllToAll 大规模 (> 512 GPU)> 100%$N \times N$ 全局竞争 + CPU 串行瓶颈
SHARP 网内计算> 50%算法结构改变,分层公式不适用

@tbl-model-verify-bad-cases 精度不可用 / 需谨慎的场景

工程建议

  • 推理场景 TP AllReduce (消息通常 > 10 MB):模型精度 10–30%,可用于量级估算和并行策略对比
  • 训练场景 DP AllReduce (消息数十 GB):大消息段精度好,但竞争建模不足,实际吞吐需测量验证
  • 小消息场景 (< 1 MB):不建议使用 $\alpha$-$\beta$ 模型,误差过大

Takeaway

知识点核心结论
单层 RMSPE大消息 < 5%,整体 8-9%;方法 B 比方法 A 整体 RMSPE 77% → 16%
两层 RMSPE网格搜索 + 串行三阶段公式,H100 IB NDR 9.9%
旧公式 Buggroup_size 错 + max 合并使 RMSPE 42.5%,修正后 9.9%
误差分段< 1 MB 由 $\alpha$ + NCCL 软件层主导,> 64 MB 由 $u_r$ 决定
结构性失效NVLS / SHARP / ECMP / 大规模 AllToAll, RMSPE > 30%
工程边界推理 TP (> 10 MB) 可用;小消息 (< 1 MB) 不建议

参考资料