test_gpu_scripts/reports_multinode_nccl_diagnosis_20260523.md

22 KiB
Raw Blame History

多机多卡 NCCL 诊断报告

  • 日期2026-05-23
  • 测试入口:nccl-gpu-1 / aikubeworker0012 / 172.72.8.12
  • 对端节点:nccl-gpu-2 / aikubeworker0016 / 172.72.8.16
  • 诊断配置:configs/multinode_nccl_nccl227_auto_16g.yaml
  • 当前最佳原始脚本报告:reports_multinode_nccl_16g_2x8_nccl227_auto.md

当前结论

这不是单纯 “IB 不通” 的问题。底层 CUDA RDMA perftest 可以跑到接近单端口 400Gb/s 的水平;最初使用 pip 包里的 NCCL 2.21.5 时NCCL 在实际 2 节点通信中把 GPU Direct RDMA 禁用了,导致带宽显著偏低。

后续临时切换到 apt 包解压出的 NCCL 2.27.7+cuda12.4 后NCCL GDR 已经恢复启用2 节点 x 8 GPU allreduce 从 67.42 GB/s 提升到 237.86 GB/salltoall 从 9.56 GB/s 提升到 28.62 GB/s

继续 tuning 后发现,配置里固定的 NCCL_MIN_NCHANNELS=4NCCL_IB_QPS_PER_CONNECTION=4NCCL_IB_SPLIT_DATA_ON_QPS=1 会明显压低 16G allreduce。去掉这些固定参数、让 NCCL 2.27.7 自动选择后,正式脚本报告中 2 节点 x 8 GPU allreduce 提升到 354.60 GB/salltoall 小幅提升到 30.01 GB/s。当前剩余问题不再是 GDR disabled而是 GDR enabled 且 NCCL 自动调参后,仍低于当前配置里的验收阈值。

sx算力节点跨Leaf NCCL测试报告.pdf 的矩阵继续对齐后,发现 2 机 4 卡档位的核心问题是默认 GPU 选择不符合 GPU-NIC 亲和性。显式选择 CUDA_VISIBLE_DEVICES=0,1,4,52 机 4 卡 allreduce 可以恢复到 333-335 GB/s 区间,接近 PDF 的 335.48 GB/salltoall 配合 PDF 固定 NCCL 参数可到 72.93 GB/s,接近 PDF 的 73.73 GB/s。但 2 机 8 卡档位仍只有 allreduce 354.02 GB/s、alltoall 30.04 GB/s,与 PDF 的 491.84/76.54 GB/s 差距明显。

进一步 sweep 8 卡 alltoall 网络参数后,NCCL_PXN_DISABLE=1 是唯一有效正向项。正式矩阵配置已对 2 机 8 GPU 的 alltoall 单独加入该变量8 卡 alltoall 从约 30.04 GB/s 提升到 36.70 GB/s peak / 36.74 GB/s avg但仍低于 PDF 参考 76.54 GB/s

同时,nccl-gpu-2 的 SSH 入口曾因未认证连接过多触发 MaxStartups 随机拒绝,导致 mpirun 拉起远端 rank 失败。已经做了临时 SSHD 缓解并拿到有效的 2 节点 x 8 GPU allreduce/alltoall 报告。

已完成的修正

  1. 修正 mpirun 使用路径,避开系统 /usr/bin/mpirun 与 DOCA OpenMPI 动态库混用导致的崩溃。
  2. 补充 LD_LIBRARY_PATH,确保 mpirun、CUDA、pip 安装的 NCCL 动态库可同时解析。
  3. 将 NCCL HCA 限定到 400Gb/s 活跃端口:mlx5_0,mlx5_1,mlx5_6,mlx5_7
  4. 在脚本中加入 multi-node NCCL 网络诊断解析,报告会展示 NCCL NetworkGPU Direct RDMAGDR Disabled HCAs
  5. 增加 multinode_nccl.extra_env,可以在配置里快速试 NCCL 环境变量,不需要改代码。
  6. 增加诊断配置 configs/multinode_nccl_diagnostic.yaml,固定跑 2 节点 x 8 GPU、256M、NCCL_DEBUG=INFONCCL_DEBUG_SUBSYS=INIT,NET
  7. nccl-gpu-2 上临时提高 SSHD MaxStartups 并缩短 LoginGraceTime,缓解未认证连接过多导致的 SSH 随机拒绝。
  8. 将 OpenMPI OOB TCP 控制通道固定到 bond0,并加入 plm_rsh_args,减少 mpirun 远端启动受 SSH/host key/接口选择影响的概率。
  9. 从 NVIDIA apt 源下载但不安装 libnccl2=2.27.7-1+cuda12.4,解压到两台机器 /tmp/nccl-2.27.7-cuda12.4,用 LD_LIBRARY_PATH 临时覆盖 NCCL 运行库验证。
  10. 增强报告解析,能够区分 GPU Direct RDMA ENABLEDDISABLED,并列出 enabled/disabled HCA。
  11. 将 multi-node NCCL 配置中的 qps_per_connectionmin_nchannelssplit_data_on_qps 改为 null,避免默认导出会压低大包 allreduce 的固定 NCCL 参数。
  12. 增加 topology 级 cuda_visible_devicesenvop_env 配置能力,支持按 GPU/NIC 亲和性和不同 NCCL op 分别设置环境变量。
  13. 生成 PDF 矩阵式原始报告 reports_multinode_nccl_pdf_matrix_nccl227.md,覆盖 2 机 1/2/4/8 GPU per node。
  14. 对 8 卡 alltoall 做 NCCL 网络参数 sweep并将有效项 NCCL_PXN_DISABLE=1 固化到 PDF 矩阵配置。

关键证据

1. CUDA RDMA perftest 通过

命令类型:

CUDA_VISIBLE_DEVICES=0 ib_write_bw -d mlx5_0 -i 1 --use_cuda=0 -s 4194304 -F --report_gbits 172.72.8.16

结果:

测试 设备 GPU 平均带宽 结论
ib_write_bw --use_cuda mlx5_0 GPU0 387.16 Gb/s PASS

解释GPU 内存参与 RDMA 写带宽测试可以接近 400Gb/s说明 nvidia_peermem/经典 GPUDirect RDMA 路径并非完全不可用。

2. CUDA DMA-BUF 路径不可用

命令类型:

CUDA_VISIBLE_DEVICES=0 ib_write_bw -d mlx5_0 -i 1 --use_cuda=0 --use_cuda_dmabuf -s 4194304 -F --report_gbits 172.72.8.16

结果:

测试 输出 结论
ib_write_bw --use_cuda_dmabuf DMA-BUF is not supported on this GPU FAIL

解释:当前环境不能走 CUDA DMA-BUF RDMA。后续 NCCL 应优先确认是否能稳定走经典 nvidia_peermem 路径。

3. NCCL 单卡跨节点仍禁用 GDR

使用 pip NCCL 2.21.5 时,

已经尝试:

  • NCCL_NET_GDR_LEVEL=SYS
  • NCCL_NET_GDR_LEVEL=5
  • NCCL_NET_GDR_READ=1
  • NCCL_DMABUF_ENABLE=0
  • NCCL_IB_CUDA_SUPPORT=1
  • NCCL_IB_HCA=mlx5_0

结果仍显示:

NCCL INFO Using network IB
NCCL INFO NET/IB : GPU Direct RDMA Disabled for HCA 0 'mlx5_0'

256M allreduce 约 13.4 GB/s,明显低于 400Gb/s IB 端口能力。

3.1 NCCL 2.27.7 恢复 GDR

临时使用:

LD_LIBRARY_PATH=/usr/mpi/gcc/openmpi-4.1.9a1/lib:/tmp/nccl-2.27.7-cuda12.4/usr/lib/x86_64-linux-gnu:/usr/local/cuda-12.4/targets/x86_64-linux/lib

2 节点 x 1 GPU 日志显示:

NCCL version 2.27.7+cuda12.4
NET/IB : GPU Direct RDMA Enabled for HCA 0 'mlx5_0'
Channel ... via NET/IB/0/GDRDMA

256M allreduce 从 NCCL 2.21.5 的约 13.4 GB/s 提升到 45.2 GB/s。判断NCCL 2.21.5 与当前 driver/OFED/H100 组合存在 GDR 判定或注册路径兼容问题;升级 NCCL 是有效修复方向。

4. 脚本 2 节点 x 8 GPU 诊断结果

原始报告:reports_multinode_nccl_diagnostic_2x8_sshfix.md,使用 pip NCCL 2.21.5。

Operation Topology Peak Bus BW Threshold Status NCCL Network GPU Direct RDMA
allreduce 2 nodes x 8 GPUs 67.42 GB/s >= 480 GB/s FAIL IB DISABLED
alltoall 2 nodes x 8 GPUs 9.56 GB/s >= 75 GB/s FAIL IB DISABLED

allreduce 失败原因是带宽不达标,且报告捕获到 GDR 被 NCCL 禁用:

GDR Disabled HCAs
mlx5_0, mlx5_1, mlx5_6, mlx5_7

allreduce 和 alltoall 本轮均正常完成,returncode=0wrong=0,失败原因是带宽低于阈值,不是正确性失败。

4.1 NCCL 2.27.7 诊断结果

256M 诊断报告:reports_multinode_nccl_diagnostic_2x8_nccl227_v2.md

Operation Topology Peak Bus BW Threshold Status NCCL Network GPU Direct RDMA
allreduce 2 nodes x 8 GPUs 212.19 GB/s >= 480 GB/s FAIL IB ENABLED
alltoall 2 nodes x 8 GPUs 28.37 GB/s >= 75 GB/s FAIL IB ENABLED

1M 到 4G sweep 报告:reports_multinode_nccl_sweep_2x8_nccl227.md

Operation Peak Bus BW Peak Size Threshold Status GPU Direct RDMA
allreduce 237.26 GB/s 4G >= 480 GB/s FAIL ENABLED
alltoall 28.78 GB/s 1G >= 75 GB/s FAIL ENABLED

16G 大包报告:reports_multinode_nccl_16g_2x8_nccl227.md

Operation Peak Bus BW Peak Size Threshold Status GPU Direct RDMA
allreduce 237.86 GB/s 16G >= 480 GB/s FAIL ENABLED
alltoall 28.62 GB/s 16G >= 75 GB/s FAIL ENABLED

解释NCCL 2.27.7 已经修复 GDR 禁用问题,且性能提升明显;但在固定 min_nchannels=4/qps=4/split=1 的配置下仍不达标。allreduce 约稳定在 238 GB/salltoall 约稳定在 28-29 GB/s

4.2 NCCL 2.27.7 自动通道/QP 参数结果

进一步对 16G 大包做 tuning发现默认配置里锁定的参数会压低 allreduce

配置 allreduce Avg Bus BW alltoall Avg Bus BW 结论
NCCL 2.27.7 + 固定 min_nchannels=4/qps=4/split=1 238.56 GB/s 28.62 GB/s GDR 已启用,但 allreduce 被压低
NCCL 2.27.7 + NCCL 自动选择 channel/QP 354.57 GB/s 30.02 GB/s 当前最佳脚本结果

正式脚本报告:reports_multinode_nccl_16g_2x8_nccl227_auto.md

Operation Peak Bus BW Avg Bus BW Peak Size Threshold Status GPU Direct RDMA
allreduce 354.60 GB/s 354.57 GB/s 16G >= 480 GB/s FAIL ENABLED
alltoall 30.01 GB/s 30.02 GB/s 16G >= 75 GB/s FAIL ENABLED

对比临时 tuning 命令:

变量组合 allreduce Avg Bus BW alltoall Avg Bus BW
baseline auto 353.63 GB/s 30.05 GB/s
NCCL_IB_MERGE_NICS=1 352.73 GB/s 30.07 GB/s
NCCL_CROSS_NIC=1 354.68 GB/s 30.05 GB/s
NCCL_IB_QPS_PER_CONNECTION=8 + NCCL_IB_SPLIT_DATA_ON_QPS=0 350.91 GB/s 29.41 GB/s
NCCL_MIN_NCHANNELS=16 + NCCL_MAX_NCHANNELS=16 354.32 GB/s 30.06 GB/s

解释allreduce 的主要提升来自取消不合适的固定参数,而不是 MERGE_NICSCROSS_NIC。alltoall 对这些参数不敏感,当前基本稳定在 30 GB/s 左右。

5. SSHD MaxStartups 阻塞已临时缓解

nccl-gpu-2 曾显示:

sshd: /usr/sbin/sshd -D [listener] 52 of 10-100 startups
maxstartups 10:30:100

同时存在大量 sshd: unknown [priv] / sshd: unknown [net] 未认证连接,来源主要是 172.239.10.85。这会触发 OpenSSH MaxStartups 随机拒绝,直接表现为:

kex_exchange_identification: Connection closed by remote host

先临时改为:

MaxStartups 120:30:240
LoginGraceTime 20

后续外部未认证连接继续上涨到 110 of 120-240 startups,测试窗口进一步临时改为:

MaxStartups 500:30:1000
LoginGraceTime 5

改完后从 0012 连续 SSH 0016 5 次成功2 节点 mpirun hostname 成功2 节点 x 8 GPU allreduce/alltoall 也都能跑出有效结果。

6. nvidia_peermem legacy 模式实验无效

两台机器默认参数一致:

参数
nvidia_peermem version 580.159.03
peerdirect_support 0
persistent_api_support 1
OFED OFED-internal-26.01-1.0.0

临时切换两台机器到 peerdirect_support=12 节点 x 1 GPU NCCL 仍显示:

NET/IB : GPU Direct RDMA Disabled for HCA 0 'mlx5_0'

带宽仍约 13.4 GB/s。测试后已经恢复默认 peerdirect_support=0,persistent_api_support=1

7. PDF 矩阵对齐与 GPU-NIC 亲和性

参考 PDF 的跨 Leaf 命令覆盖 2 机 2/4/8/16 卡矩阵,并使用:

  • NCCL_IB_GID_INDEX=3
  • NCCL_IB_SL=5
  • NCCL_IB_TC=136
  • NCCL_SOCKET_IFNAME=bond0
  • NCCL_IB_TIMEOUT=22
  • NCCL_NET_PLUGIN=none
  • NCCL_NVLS_ENABLE=1

本环境与 PDF 参考机器有一个关键硬件差异:当前两台机器只有 mlx5_0,mlx5_1,mlx5_6,mlx5_7 是 400Gb/s NDRmlx5_4,mlx5_5 是 100Gb/s HDRmlx5_2,mlx5_8 是 25Gb/smlx5_3,mlx5_9 为 DOWN。参考 PDF 的命令列出了更多 HCA但当前节点不能等价使用为 8 条 400G rail。

nvidia-smi topo -m 显示:

GPU 最近的 400G HCA
GPU0 mlx5_0
GPU1 mlx5_1
GPU4 mlx5_6
GPU5 mlx5_7

默认 2 机 4 卡会选择 GPU0/1/2/3其中 GPU2 最近的是 25G/down 端口GPU3 没有直接对应 400G rail。因此 2 机 4 卡默认 allreduce 只有约 168 GB/s。显式设置 CUDA_VISIBLE_DEVICES=0,1,4,5 后:

场景 allreduce alltoall 说明
默认 GPU0/1/2/3 167.89 GB/s 39.68 GB/s GPU/NIC 亲和性错误
CUDA_VISIBLE_DEVICES=0,1,4,5 + auto NCCL 335.34 GB/s 63.90 GB/s allreduce 接近 PDF
CUDA_VISIBLE_DEVICES=0,1,4,5 + PDF 固定参数 225.29 GB/s 73.10 GB/s alltoall 接近 PDF但 allreduce 被压低

因此当前脚本支持按 op 配环境变量4 卡 allreduce 用 auto4 卡 alltoall 用 PDF 固定参数。

矩阵式正式报告:reports_multinode_nccl_pdf_matrix_nccl227.md

Topology allreduce PDF Reference Status alltoall PDF Reference Status
2 nodes x 1 GPU 47.26 GB/s 48.90 GB/s FAIL 24.87 GB/s 27.25 GB/s FAIL
2 nodes x 2 GPUs 136.36 GB/s 136.93 GB/s FAIL 47.69 GB/s 54.41 GB/s FAIL
2 nodes x 4 GPUs 333.23 GB/s 335.48 GB/s FAIL 72.82 GB/s 73.73 GB/s FAIL
2 nodes x 8 GPUs 353.47 GB/s 491.84 GB/s FAIL 36.70 GB/s 76.54 GB/s FAIL

解释2 机 4 卡档位已经基本定位并修复到接近 PDF2 机 8 卡档位不是简单 GPU 顺序问题。尝试调整 8 卡 CUDA_VISIBLE_DEVICES 顺序、加入 100G/25G active HCA、以及套 PDF 固定参数都没有改善;固定参数反而会把 8 卡 allreduce 从约 354 GB/s 压到约 239 GB/s

8 卡 alltoall 目前的最佳软件侧改动是 NCCL_PXN_DISABLE=1

Case 8 卡 alltoall Avg Bus BW
baseline 30.06 GB/s
NCCL_PXN_DISABLE=1 37.24 GB/s
正式矩阵报告 36.74 GB/s

其他变量如 NCCL_P2P_PXN_LEVELNCCL_NET_SHARED_COMMSNCCL_NET_SHARED_BUFFERSNCCL_NCHANNELS_PER_NET_PEERNCCL_IB_ADAPTIVE_ROUTING 均无改善或变差。

PXN disabled 计数器显示该参数确实修复了 rail 分布:

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

但禁用 PXN 后每条 400G rail 仍只有约 19.82 GB/s,没有接近裸 RDMA 单 rail 的 347-387 Gb/s。因此它解决的是 rail 分布不均衡的一部分,不是全部 alltoall 性能问题。

8. 8 卡链路计数器与物理上限判断

计数器探测报告:reports_multinode_nccl_counter_probe_20260523.md

当前 2 机 8 GPU allreduce 输出:

Metric Value
algbw 189.16 / 189.07 GB/s
busbw 354.68 / 354.52 GB/s
Avg bus bandwidth 354.597 GB/s

allreduce 在 16 ranks 下的换算关系约为:

busbw = algbw * 2 * (nranks - 1) / nranks = algbw * 1.875

因此 PDF 参考 491.84 GB/s busbw 对应约 262.31 GB/s algbw。但当前节点可用的 400G HCA 是 mlx5_0,mlx5_1,mlx5_6,mlx5_7,每节点 4 条 400Gb/s理论单向合计约 200 GB/s。当前 allreduce 189 GB/s algbw 已经接近这个物理上限,所以 8 卡 allreduce 剩余差距基本不能靠 NCCL 参数小调解决。

裸 RDMA 4 rail 并发 ib_write_bw 也验证了底层 4 条 400G rail 可以同时工作:

HCA BW average
mlx5_0 387.16 Gb/s
mlx5_1 387.07 Gb/s
mlx5_6 355.02 Gb/s
mlx5_7 347.70 Gb/s
Total 1476.95 Gb/s / 184.62 GB/s

这个裸 RDMA 总带宽与 NCCL 8 卡 allreduce 的 189 GB/s algbw 接近,进一步说明 allreduce 已经贴近当前网络形态可提供的实际带宽。

8 卡 alltoall 当前仍只有:

Metric Value
algbw 32.04 / 32.05 GB/s
busbw 30.03 / 30.04 GB/s
Avg bus bandwidth 30.0389 GB/s

同一测试窗口内端口计数器显示 alltoall 流量分布不均衡:mlx5_0mlx5_6 的流量约 885 GBmlx5_1mlx5_7295 GB,约为三倍差距。继续调换 NCCL_IB_HCA 顺序后8 卡 alltoall 仍稳定在 30.02-30.07 GB/s,说明不是简单 HCA 列表顺序问题。

NCCL_PXN_DISABLE=1 后,端口流量变为四条 HCA 均约 591 GBalltoall Avg bus bandwidth 提升到 36.9518 GB/s,但每条 rail 吞吐仍只有约 19.82 GB/s

9. NCCL net plugin / SHARP 状态

两台机器上均未找到:

  • libnccl-net.so
  • libsharp*
  • SHARP/HCOLL 相关 deb 包

当前仅看到 UCX 包:

ucx 1.20.0-1.20260211.d9a4f352d.2601100

apt 源里与 NCCL 直接相关的包只有:

libnccl2
libnccl-dev

因此当前 NCCL 日志里的 Could not find: libnccl-net.so 是真实环境缺失,不是脚本漏配路径。当前运行走的是 NCCL internal IB plugin如果要继续追 8 卡 alltoall 或 PDF 2 机 16 卡参考值,需要补齐匹配当前 OFED/driver/CUDA/NCCL 的 NCCL net plugin/SHARP 环境,或由网络侧确认该集群不依赖这些组件也能达到目标值。

当前阻塞

阻塞 1当前生产 NCCL 版本过旧GDR 被禁用

现象:

  • pip NCCL 2.21.5GPU Direct RDMA Disabled2x8 allreduce 67.42 GB/s
  • 临时 NCCL 2.27.7GPU Direct RDMA Enabled2x8 allreduce 237.86 GB/s
  • 因此,生产测试环境应避免继续使用 pip NCCL 2.21.5 作为多机 NCCL 验收运行库

判断:底层 RDMA 能力存在GDR 禁用主要由旧 NCCL 版本触发。建议正式安装并固定 NCCL 2.27.7+cuda12.4 或更新的已验证版本。

阻塞 22 机 8 GPU 档位仍低于 PDF 参考值

现象:

  • 2x8 16G allreduce354.02 GB/sPDF 参考 491.84 GB/s
  • 2x8 16G alltoall30.04 GB/sPDF 参考 76.54 GB/s
  • 已使用 4 个 400Gb/s HCAmlx5_0, mlx5_1, mlx5_6, mlx5_7
  • 加入 mlx5_4,mlx5_5 100G HCA 或 mlx5_2,mlx5_8 25G HCA 基本无收益
  • 调整 8 卡 CUDA_VISIBLE_DEVICES 顺序基本无收益
  • 套 PDF 固定参数会让 8 卡 allreduce 明显变差

判断2 机 8 GPU 档位的剩余差距更像硬件 rail 数量/交换网络/路由/拥塞/NCCL net plugin 能力问题,不再是旧 NCCL GDR disabled 或 4 卡 GPU 选择问题。

补充证据:

  • 8 卡 allreduce algbw ~= 189 GB/s,接近当前 4 x 400G HCA 的理论单向合计 200 GB/s
  • 裸 RDMA 4 rail 并发 ib_write_bw 合计 1476.95 Gb/s / 184.62 GB/s
  • PDF 8 卡 allreduce 491.84 GB/s busbw 反推需要约 262 GB/s algbw,超过当前 4 x 400G 的物理单向总带宽
  • 8 卡 alltoall 端口计数器显示 rail 分布不均,且 HCA 顺序 sweep 无改善
  • 当前环境缺失 NCCL net plugin/SHARPNCCL 只能使用 internal IB plugin
  • NCCL_PXN_DISABLE=1 可将 8 卡 alltoall 提升到约 36.7 GB/s,并修复 rail 分布不均,但仍不到 PDF 参考值的一半

阻塞 3nccl-gpu-2 SSH 存在外部连接压力

现象:

  • 多次出现过:kex_exchange_identification: Connection closed by remote host
  • 根因是未认证连接过多触发 MaxStartups
  • 当前已经通过临时 SSHD 配置缓解,并拿到了有效 2x8 报告
  • 但如果外部连接压力持续,仍建议从网络侧或安全策略侧处理来源连接

判断:这不再阻塞当前报告产出,但属于环境稳定性风险。

建议下一步

  1. 从网络/安全侧处理 172.239.10.85 等来源的 SSH 未认证连接压力,或者保留更高的 MaxStartups 配置作为测试窗口临时策略。
  2. 正式安装并固定已验证的 NCCL 2.27.7+cuda12.4 或更新版本,不要依赖 pip NCCL 2.21.5;当前 /tmp/nccl-2.27.7-cuda12.4 只是临时解压验证。
  3. 4 卡 per node 测试应显式使用 CUDA_VISIBLE_DEVICES=0,1,4,5,避免默认 GPU0/1/2/3 落到错误 GPU/NIC 亲和性。
  4. 4 卡 allreduce 建议继续让 NCCL 自动选择 channel/QP4 卡 alltoall 如果要贴近 PDF可单独套 NCCL_IB_QPS_PER_CONNECTION=4NCCL_MIN_NCHANNELS=4NCCL_IB_SPLIT_DATA_ON_QPS=1
  5. 8 卡 per node 不建议套上述固定参数,会降低 allreduce继续用 auto。
  6. 尝试安装或启用匹配当前 OFED/driver 的 NCCL net plugin/SHARP当前日志显示 Could not find: libnccl-net.soNCCL 使用的是 internal IB plugin。
  7. 核对跨 Leaf 链路的 rail mapping、交换机端口速率、路由和拥塞计数确认 4 个 400Gb/s HCA 是否都在跨节点通信中充分利用。
  8. 确认当前 PDF 的 491.84/76.54 GB/s 是否要求当前这两台节点在只有 4 条 400G rail 的形态下也达到;如果要求一致,需要网络/硬件侧继续介入。
  9. 对 8 卡 alltoall重点查 NCCL rail 分布、交换机 ECMP/自适应路由、拥塞计数、SHARP/NCCL net plugin而不是继续调 NCCL_IB_HCA 顺序。

当前可交付物

  • configs/multinode_nccl_diagnostic.yaml:多机多卡诊断配置
  • configs/multinode_nccl_nccl227_diagnostic.yamlNCCL 2.27.7 256M 诊断配置
  • configs/multinode_nccl_nccl227_sweep.yamlNCCL 2.27.7 1M 到 4G sweep 配置
  • configs/multinode_nccl_nccl227_16g.yamlNCCL 2.27.7 16G 大包配置
  • configs/multinode_nccl_nccl227_auto_16g.yamlNCCL 2.27.7 16G 自动 channel/QP 配置
  • configs/multinode_nccl_nccl227_pdf_matrix.yaml:按 PDF 矩阵和 GPU 亲和性优化后的跨 Leaf 配置
  • reports_multinode_nccl_diagnostic_2x8_sshfix.md:脚本生成的原始 2x8 诊断报告
  • reports_multinode_nccl_diagnostic_2x8_nccl227_v2.mdNCCL 2.27.7 256M 诊断报告
  • reports_multinode_nccl_sweep_2x8_nccl227.mdNCCL 2.27.7 1M 到 4G sweep 报告
  • reports_multinode_nccl_16g_2x8_nccl227.mdNCCL 2.27.7 16G 大包报告
  • reports_multinode_nccl_16g_2x8_nccl227_auto.mdNCCL 2.27.7 16G 自动 channel/QP 原始报告
  • reports_multinode_nccl_pdf_matrix_nccl227.mdNCCL 2.27.7 PDF 矩阵式原始报告
  • reports_multinode_nccl_counter_probe_20260523.md8 卡链路计数器与 HCA 顺序 sweep 报告
  • reports_multinode_nccl_alltoall_tuning_20260523.md8 卡 alltoall NCCL 网络参数 sweep 报告
  • reports_multinode_nccl_diagnosis_20260523.md:本中文诊断总结