4.7 KiB
多机 NCCL 8 卡 alltoall 网络参数 sweep
- 日期:2026-05-23
- 主机:
aikubeworker0012/172.72.8.12,aikubeworker0016/172.72.8.16 - NCCL:临时
2.27.7+cuda12.4 - 测试:2 nodes x 8 GPUs,
alltoall_perf -b 16G -e 16G - HCA:
mlx5_0,mlx5_1,mlx5_6,mlx5_7
结论
NCCL_PXN_DISABLE=1 是本轮唯一有效正向参数,可以把 8 卡 alltoall 从约 30.06 GB/s 提升到约 37.24 GB/s。纳入正式 PDF 矩阵配置后,8 卡 alltoall 原始报告结果为 36.70 GB/s peak / 36.74 GB/s avg。
补充计数器探测显示,NCCL_PXN_DISABLE=1 的实际作用是把 alltoall 流量重新均匀分配到 4 条 400G rail 上。baseline 下 mlx5_0/6 与 mlx5_1/7 的流量约为 3:1;禁用 PXN 后四条 HCA 均衡。但每条 rail 的实际吞吐仍只有约 19-20 GB/s,没有打满 400G rail。
复测错误/拥塞 counter 后,没有看到 discard、链路错误、RoCE 重传、slow restart 或 packet sequence error 增长;主要非零异常是部分端口 port_xmit_wait。所以当前不支持“链路坏包/重传导致慢”的判断,更像发送等待/credit 等待、交换侧调度/拥塞控制,或 NCCL internal alltoall 通信模式效率不足。
这个提升有实际价值,但仍远低于 PDF 参考 76.54 GB/s。其他参数没有改善,部分明显变差:
| Case | Avg Bus BW | 结论 |
|---|---|---|
| baseline | 30.0633 GB/s |
基线 |
NCCL_PXN_DISABLE=1 |
37.2421 GB/s |
有效提升 |
NCCL_P2P_PXN_LEVEL=0 |
20.1205 GB/s |
明显变差 |
NCCL_P2P_PXN_LEVEL=1 |
30.0588 GB/s |
无改善 |
NCCL_P2P_PXN_LEVEL=2 |
30.0437 GB/s |
无改善 |
NCCL_NET_SHARED_COMMS=0 |
27.3889 GB/s |
变差 |
NCCL_NET_SHARED_BUFFERS=0 |
28.2389 GB/s |
变差 |
NCCL_NET_SHARED_COMMS=0 NCCL_NET_SHARED_BUFFERS=0 |
28.2279 GB/s |
变差 |
NCCL_NCHANNELS_PER_NET_PEER=2 |
30.0281 GB/s |
无改善 |
NCCL_NCHANNELS_PER_NET_PEER=4 |
29.9802 GB/s |
无改善 |
NCCL_IB_ADAPTIVE_ROUTING=1 NCCL_IB_AR_THRESHOLD=0 |
30.0526 GB/s |
无改善 |
NCCL_IB_ADAPTIVE_ROUTING=0 |
30.0535 GB/s |
无改善 |
NCCL_IB_PCI_RELAXED_ORDERING=0 |
未完成 | 明显异常,不建议 |
PXN disabled 端口计数器
NCCL_PXN_DISABLE=1 后,8 卡 alltoall 输出:
| Metric | Value |
|---|---|
algbw |
39.37 / 39.46 GB/s |
busbw |
36.91 / 37.00 GB/s |
Avg bus bandwidth |
36.9518 GB/s |
端口计数器:
| Host | HCA | Xmit GB | Recv GB | Xmit GB/s | Recv GB/s |
|---|---|---|---|---|---|
| 172.72.8.12 | mlx5_0 |
590.98 |
590.91 |
19.82 |
19.82 |
| 172.72.8.12 | mlx5_1 |
590.98 |
590.98 |
19.82 |
19.82 |
| 172.72.8.12 | mlx5_6 |
590.98 |
590.90 |
19.82 |
19.82 |
| 172.72.8.12 | mlx5_7 |
590.98 |
590.98 |
19.82 |
19.82 |
| 172.72.8.16 | mlx5_0 |
590.94 |
590.98 |
19.82 |
19.82 |
| 172.72.8.16 | mlx5_1 |
590.94 |
590.98 |
19.82 |
19.82 |
| 172.72.8.16 | mlx5_6 |
590.94 |
590.98 |
19.82 |
19.82 |
| 172.72.8.16 | mlx5_7 |
590.94 |
590.98 |
19.82 |
19.82 |
对比 baseline:
| Case | Rail 分布 | Avg Bus BW |
|---|---|---|
| baseline | mlx5_0/6 约 885 GB,mlx5_1/7 约 295 GB |
30.04 GB/s |
NCCL_PXN_DISABLE=1 |
四条 HCA 均约 591 GB |
36.95 GB/s |
错误/等待 counter 复测
PXN disabled 复测结果:
| 观察项 | 结果 |
|---|---|
Avg bus bandwidth |
36.4512 GB/s |
| 每条 HCA 流量 | 约 712.18-712.28 GiB,四条 rail 均衡 |
| discard / rcv error / symbol error / link down / link recovery | 0 增量 |
| RoCE retrans / slow restart / packet sequence error / out of sequence | 0 增量 |
port_xmit_wait |
mlx5_1、mlx5_7 有增长,约 15.65M-23.49M |
正式配置更新
configs/multinode_nccl_nccl227_pdf_matrix.yaml 已对 2 nodes x 8 GPUs 的 alltoall 增加:
op_env:
alltoall:
NCCL_PXN_DISABLE: 1
正式矩阵报告:reports_multinode_nccl_pdf_matrix_nccl227.md
| Topology | alltoall Peak Bus BW | alltoall Avg Bus BW | PDF Reference | Status |
|---|---|---|---|---|
| 2 nodes x 8 GPUs | 36.70 GB/s |
36.74 GB/s |
76.54 GB/s |
FAIL |
判断
- PXN 在当前拓扑下对 8 卡 alltoall 有负面影响,禁用后有约
22-24%提升。 - 禁用 PXN 可以修复 rail 分布不均衡,但无法打满每条 400G rail。
- 禁用 PXN 后仍只有 PDF 目标的一半左右,剩余差距不是单一 NCCL 环境变量可以补齐。
- 后续重点仍应放在 NCCL net plugin/SHARP、交换网络策略、credit/拥塞等待和 NCCL internal alltoall 实现效率。