# 多节点 NCCL 最新索引 2026-05-23 ## 当前状态 当前工作分支:`h100-acceptance-current` 当前结论: - 2026-05-23 `11:38` 已完成带 artifacts 的正式多机多卡 PDF matrix 复跑,原始报告为 `reports_multinode_nccl_pdf_matrix_20260523_113803.md`,中文结论为 `reports_multinode_nccl_pdf_matrix_run_20260523.md`,artifact manifest 为 `reports_multinode_nccl_pdf_matrix_artifacts_manifest_20260523_113803.md`。 - 已补充 artifacts 信号分析:`reports_multinode_nccl_artifact_signal_analysis_20260523.md`。结论是所有 case 都走 `IB`,都使用 `mlx5_0,mlx5_1,mlx5_6,mlx5_7`,都有 GDRDMA 信号,但没有 SHARP/CollNet/外部 NCCL net plugin 证据。 - 已补充并实跑多机多卡 2x8 六项 collective:`reports_multinode_nccl_all_collectives_run_20260523.md`。新增 `broadcast/reducescatter/allgather/sendrecv` 均 `returncode=0`、`wrong=0`、走 `IB/GDRDMA`;已知 PDF 阈值项 `allreduce/alltoall` 仍 FAIL。 - 六项 collective 的完整 artifacts 已归档:`reports_multinode_nccl_all_collectives_artifacts_manifest_20260523_120144.md`,远端 tar 为 `reports/multinode_nccl_all_collectives_20260523_120144_artifacts.tar.gz`。 - 已补充当前验收状态总览:`reports_h100_acceptance_current_status_20260523.md`,把单节点、多机 NCCL、跨节点 RDMA、环境等价性和阻塞项合并到一份中文总表。 - 2 机 1/2/4 GPU per node 档位已接近 PDF 参考值,但严格按阈值仍 FAIL。 - 2 机 8 GPU 档位仍未达到 PDF 参考值: - allreduce 实测 `353.85 GB/s busbw`,PDF 目标 `491.84 GB/s`。 - alltoall 实测 `36.83 GB/s busbw`,PDF 目标 `76.54 GB/s`。 - 当前 2 机 8 GPU 剩余差距不再像是旧 NCCL、GDR disabled、HCA 顺序、SSH/mpirun 或明显坏链路问题。 - 当前更像是硬件 rail 数量与 PDF 不等价、NCCL net plugin / SHARP 缺失、或跨 Leaf alltoall 网络/图策略问题。 ## 先看这三份 | 顺序 | 文件 | 用途 | |---:|---|---| | 1 | `reports_h100_acceptance_current_status_20260523.md` | 当前 H100 验收总览,汇总单节点、多机 NCCL、跨节点 RDMA 和阻塞项 | | 2 | `reports_multinode_nccl_handoff_plan_20260523.md` | 给网络/硬件/环境侧的交接计划,包含决策树、要问的问题和复跑命令 | | 3 | `reports_multinode_nccl_environment_gap_20260523.md` | 说明当前环境为什么不能证明与 PDF 等价,重点是 4 x 400G rail 和缺少 NCCL net plugin / SHARP | | 4 | `reports_multinode_nccl_artifact_signal_analysis_20260523.md` | 最新 artifacts 信号分析,确认 IB/GDRDMA/HCA 使用情况和 plugin/SHARP 缺口 | | 5 | `reports_multinode_nccl_all_collectives_run_20260523.md` | 多机多卡 2x8 六项 collective 补测结果,补齐单机 test all 的 NCCL 覆盖面 | | 6 | `reports_multinode_nccl_all_collectives_artifacts_manifest_20260523_120144.md` | 多机多卡 2x8 六项 collective artifacts manifest 和 checksum | | 7 | `reports_multinode_nccl_pdf_matrix_run_20260523.md` | 最新正式多机多卡 PDF matrix 结果摘要 | | 8 | `reports_multinode_nccl_deep_diagnose_run_20260523.md` | 本轮完整深度诊断复跑结果,包含 counter、GRAPH、PXN sweep | ## 关键脚本 | 文件 | 用途 | |---|---| | `scripts/multinode_nccl_deep_diagnose.sh` | 可复跑的多节点 NCCL 深度诊断脚本 | | `scripts/nccl_environment_snapshot.sh` | 单节点 NCCL/RDMA 环境等价性快照脚本,不启动 NCCL workload | | `scripts/run_h100_single_node_all.sh` | 单节点 H100 `test all` 原始报告入口,默认同时采环境快照 | | `scripts/run_multinode_nccl_pdf_matrix.sh` | 多机多卡 PDF 矩阵入口,跑 2 机 x 1/2/4/8 GPU per node 的 allreduce/alltoall,并归档每个 case 的 command/stdout/stderr/parsed JSON | | `scripts/run_multinode_nccl_all_collectives.sh` | 多机多卡 2x8 六项 collective 补测入口,跑 allreduce/alltoall/broadcast/reducescatter/allgather/sendrecv,并归档每个 case | | `configs/multinode_nccl_nccl227_pdf_matrix.yaml` | 多机多卡 PDF 矩阵配置,固定 NCCL 2.27.7 和 `/data/nccl-tests-latest/build` | | `configs/multinode_nccl_nccl227_all_collectives_2x8.yaml` | 多机多卡 2x8 六项 collective 补测配置,allreduce/alltoall 保留 PDF 阈值,新增 4 项暂按证据采集 | | `docs/multinode_nccl_deep_diagnose_runbook.md` | 诊断脚本中文 runbook | 多机多卡 PDF 矩阵: ```bash cd /root/test_gpu_scripts bash scripts/run_multinode_nccl_pdf_matrix.sh ``` 多机多卡 2x8 六项 collective 补测: ```bash cd /root/test_gpu_scripts bash scripts/run_multinode_nccl_all_collectives.sh ``` 单节点 H100 原始 all 报告: ```bash cd /root/test_gpu_scripts bash scripts/run_h100_single_node_all.sh ``` 推荐先跑轻量检查: ```bash cd /root/test_gpu_scripts bash scripts/multinode_nccl_deep_diagnose.sh preflight ``` 采集单节点环境快照: ```bash cd /root/test_gpu_scripts bash scripts/nccl_environment_snapshot.sh reports/nccl_environment_snapshot_$(hostname)_$(date +%Y%m%d_%H%M%S).md ``` 完整复跑: ```bash cd /root/test_gpu_scripts OUT_DIR=/root/test_gpu_scripts/reports/nccl_deep_diag_$(date +%Y%m%d_%H%M%S) \ bash scripts/multinode_nccl_deep_diagnose.sh all ``` 启用 NCCL plugin / SHARP 后的最小复核: ```bash cd /root/test_gpu_scripts OUT_DIR=/root/test_gpu_scripts/reports/nccl_deep_diag_plugin_check_$(date +%Y%m%d_%H%M%S) \ bash scripts/multinode_nccl_deep_diagnose.sh graph ``` ## 远端机器上的最新同步文件 三份关键报告已经同步到两台节点: ```text /root/test_gpu_scripts/reports_multinode_nccl_handoff_plan_20260523.md /root/test_gpu_scripts/reports_h100_acceptance_current_status_20260523.md /root/test_gpu_scripts/reports_multinode_nccl_environment_gap_20260523.md /root/test_gpu_scripts/reports_multinode_nccl_artifact_signal_analysis_20260523.md /root/test_gpu_scripts/reports_multinode_nccl_all_collectives_run_20260523.md /root/test_gpu_scripts/reports_multinode_nccl_all_collectives_artifacts_manifest_20260523_120144.md /root/test_gpu_scripts/reports_multinode_nccl_deep_diagnose_run_20260523.md ``` 最新完整诊断产物目录在 `aikubeworker0012`: ```text /root/test_gpu_scripts/reports/nccl_deep_diag_20260523_103932 ``` 该目录包含: - `preflight.txt` - `allreduce_counter/` - `alltoall_pxn_counter/` - `graph/` - `pxn_sweep/` 最新单节点环境快照: ```text aikubeworker0012: /root/test_gpu_scripts/reports/nccl_environment_snapshot_aikubeworker0012_20260523_111142.md aikubeworker0016: /root/test_gpu_scripts/reports/nccl_environment_snapshot_aikubeworker0016_20260523_111143.md ``` 最新多机多卡 PDF matrix: ```text aikubeworker0012: /root/test_gpu_scripts/reports/multinode_nccl_pdf_matrix_20260523_113803.md artifacts: /root/test_gpu_scripts/reports/multinode_nccl_pdf_matrix_20260523_113803_artifacts artifacts tar: /root/test_gpu_scripts/reports/multinode_nccl_pdf_matrix_20260523_113803_artifacts.tar.gz local copy: reports_multinode_nccl_pdf_matrix_20260523_113803.md summary: reports_multinode_nccl_pdf_matrix_run_20260523.md manifest: reports_multinode_nccl_pdf_matrix_artifacts_manifest_20260523_113803.md ``` 最新多机多卡 2x8 六项 collective 补测: ```text aikubeworker0012: /root/test_gpu_scripts/reports/multinode_nccl_all_collectives_20260523_120144.md artifacts: /root/test_gpu_scripts/reports/multinode_nccl_all_collectives_20260523_120144_artifacts artifacts tar: /root/test_gpu_scripts/reports/multinode_nccl_all_collectives_20260523_120144_artifacts.tar.gz local copy: reports_multinode_nccl_all_collectives_20260523_120144.md summary: reports_multinode_nccl_all_collectives_run_20260523.md manifest: reports_multinode_nccl_all_collectives_artifacts_manifest_20260523_120144.md ``` 下一次用 `scripts/run_multinode_nccl_pdf_matrix.sh` 复跑时,还会生成: ```text /root/test_gpu_scripts/reports/multinode_nccl_pdf_matrix_YYYYMMDD_HHMMSS_artifacts/ ``` 目录内按 case 保存完整 `cmd/stdout/stderr/json`,用于给网络/硬件侧复核原始 NCCL 输出。 下一次用 `scripts/run_multinode_nccl_all_collectives.sh` 补测时,还会生成: ```text /root/test_gpu_scripts/reports/multinode_nccl_all_collectives_YYYYMMDD_HHMMSS_artifacts/ ``` 目录内按 6 个 collective 保存完整 `cmd/stdout/stderr/json`。该入口用于补齐单节点 `test all` 中已有、但多机 PDF matrix 未覆盖的 `broadcast/reducescatter/allgather/sendrecv` 证据;已知 PDF 2x8 阈值仍用于 `allreduce/alltoall`。 ## 当前证据摘要 ### HCA / rail 两台节点当前有效 400G IB rail 一致: ```text mlx5_0, mlx5_1, mlx5_6, mlx5_7 ``` 非等价 HCA: ```text mlx5_4, mlx5_5: 100G InfiniBand mlx5_2, mlx5_8: 25G Ethernet mlx5_3, mlx5_9: DOWN ``` 因此当前每节点可用于 NCCL 的 400G rail 是 4 条,理论单向原始带宽约 `200 GB/s`。 PDF allreduce 目标 `491.84 GB/s busbw` 反推 `262.31 GB/s algbw`,超过当前 4 x 400G rail 的理论单向带宽。 ### NCCL / plugin 当前两台节点没有找到: ```text libnccl-net*.so* libsharp*.so* ``` 也没有看到 SHARP/HCOLL 包。NCCL GRAPH 日志显示 `plugin_missing=16`,当前走 internal IB plugin。 ### 深度诊断 正式 PDF matrix 复跑: | Topology | AllReduce | AllReduce Target | AllToAll | AllToAll Target | |---|---:|---:|---:|---:| | 2 nodes x 1 GPU | `47.29` | `48.90` | `24.85` | `27.25` | | 2 nodes x 2 GPUs | `137.16` | `136.93` | `47.76` | `54.41` | | 2 nodes x 4 GPUs | `335.07` | `335.48` | `72.74` | `73.73` | | 2 nodes x 8 GPUs | `353.85` | `491.84` | `36.83` | `76.54` | 本轮完整复跑: | 项目 | 结果 | |---|---:| | allreduce 16G | `354.025 GB/s` | | graph allreduce 16G | `354.224 GB/s` | | alltoall + PXN disabled 16G | `36.9377 GB/s` | | graph alltoall + PXN disabled 16G | `37.14 GB/s` | PXN disabled sweep 未发现有效参数: - `channels16`、`buff8m`、`p2pchunk4m`、`ar0` 只有小幅噪声级波动。 - `qps4_split1`、`qps8_split1`、`netpeer8` 明显负向。 ## 历史/支撑报告 | 文件 | 说明 | |---|---| | `reports_multinode_nccl_diagnosis_20260523.md` | 长版总诊断,包含从旧 NCCL/GDR disabled 到 PDF 矩阵对齐的全过程 | | `reports_h100_acceptance_current_status_20260523.md` | 当前 H100 验收总览,汇总单节点、多机 NCCL、跨节点 RDMA 和阻塞项 | | `reports_multinode_nccl_pdf_matrix_nccl227.md` | 按 PDF 矩阵跑出的正式 raw report | | `reports_multinode_nccl_pdf_matrix_20260523_112247.md` | 上一次正式 PDF matrix 原始报告 | | `reports_multinode_nccl_pdf_matrix_20260523_113803.md` | 最新带 artifacts 的正式 PDF matrix 原始报告 | | `reports_multinode_nccl_pdf_matrix_run_20260523.md` | 最新正式 PDF matrix 中文摘要 | | `reports_multinode_nccl_pdf_matrix_artifacts_manifest_20260523_113803.md` | 最新 artifacts manifest 和 checksum | | `reports_multinode_nccl_artifact_signal_analysis_20260523.md` | 最新 artifacts 的 IB/GDRDMA/HCA/plugin/SHARP 信号分析 | | `reports_multinode_nccl_all_collectives_20260523_120144.md` | 最新多机多卡 2x8 六项 collective 原始报告 | | `reports_multinode_nccl_all_collectives_run_20260523.md` | 最新多机多卡 2x8 六项 collective 中文摘要 | | `reports_multinode_nccl_all_collectives_artifacts_manifest_20260523_120144.md` | 最新多机多卡 2x8 六项 collective artifacts manifest 和 checksum | | `reports_multinode_nccl_counter_probe_20260523.md` | RDMA rail 和 counter 证据 | | `reports_multinode_nccl_alltoall_tuning_20260523.md` | alltoall PXN 和参数 sweep 结论 | | `reports_rdma_single_node_summary.md` | 单节点 RDMA/HCA 速率摘要 | | `docs/multinode_nccl_concepts.md` | NCCL/RDMA 概念解释 | ## 给下一位接手人的路线 1. 先读 `reports_h100_acceptance_current_status_20260523.md`。 2. 再读 `reports_multinode_nccl_handoff_plan_20260523.md`。 3. 用 `reports_multinode_nccl_environment_gap_20260523.md` 和硬件/网络侧确认当前节点是否应具备 8 条 400G rail。 4. 如果硬件不等价,调整验收口径或换等价节点复测。 5. 如果硬件确认等价,先补齐 NCCL net plugin / SHARP,再跑 `scripts/multinode_nccl_deep_diagnose.sh graph` 对比 plugin 前后。 6. alltoall 继续排查时优先找网络路径/ECMP/adaptive routing/拥塞策略,不建议继续盲扫 NCCL 小参数。