test_gpu_scripts/reports_multinode_nccl_alltoall_tuning_20260523.md

5.2 KiB
Raw Blame History

多机 NCCL 8 卡 alltoall 网络参数 sweep

  • 日期2026-05-23
  • 主机:aikubeworker0012 / 172.72.8.12aikubeworker0016 / 172.72.8.16
  • NCCL临时 2.27.7+cuda12.4
  • 测试2 nodes x 8 GPUsalltoall_perf -b 16G -e 16G
  • HCAmlx5_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/6mlx5_1/7 的流量约为 3:1禁用 PXN 后四条 HCA 均衡。但每条 rail 的实际吞吐仍只有约 19-20 GB/s,没有打满 400G rail。

复测错误/拥塞 counter 后,没有看到 discard、链路错误、RoCE 重传、slow restart 或 packet sequence error 增长;主要非零异常是部分端口 port_xmit_wait。不过 allreduce 对照在 354 GB/s busbw 时也会出现同类 port_xmit_wait,所以当前不支持“链路坏包/重传导致慢”的判断,也不能只用 port_xmit_wait 解释 alltoall 低吞吐。更可能的方向是 NCCL internal alltoall 通信模式效率、交换侧调度/拥塞控制,或缺少 NCCL net plugin/SHARP。

这个提升有实际价值,但仍远低于 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=18 卡 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/6885 GBmlx5_1/7295 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_1mlx5_7 有增长,约 15.65M-23.49M

allreduce 对照:

观察项 结果
Avg bus bandwidth 354.366 GB/s
每条 HCA 流量 178.03-178.07 GiB,四条 rail 均衡
错误/重传类 counter 0 增量
port_xmit_wait mlx5_1mlx5_7 有增长,约 6.11M-6.59M

正式配置更新

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

判断

  1. PXN 在当前拓扑下对 8 卡 alltoall 有负面影响,禁用后有约 22-24% 提升。
  2. 禁用 PXN 可以修复 rail 分布不均衡,但无法打满每条 400G rail。
  3. 禁用 PXN 后仍只有 PDF 目标的一半左右,剩余差距不是单一 NCCL 环境变量可以补齐。
  4. 后续重点仍应放在 NCCL net plugin/SHARP、交换网络策略和 NCCL internal alltoall 实现效率;port_xmit_wait 需要结合 allreduce 对照解读,不能单独作为 alltoall 根因。