Analyze multinode NCCL artifact signals
This commit is contained in:
parent
4d06639129
commit
e0cb796b0c
141
reports_multinode_nccl_artifact_signal_analysis_20260523.md
Normal file
141
reports_multinode_nccl_artifact_signal_analysis_20260523.md
Normal file
@ -0,0 +1,141 @@
|
||||
# 多机多卡 NCCL Artifacts 信号分析 2026-05-23
|
||||
|
||||
## 分析对象
|
||||
|
||||
- 本地 artifacts 解包目录:`/private/tmp/nccl_artifacts_113803/multinode_nccl_pdf_matrix_20260523_113803_artifacts`
|
||||
- 远端原始报告:`/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`
|
||||
- 本地 manifest:`reports_multinode_nccl_pdf_matrix_artifacts_manifest_20260523_113803.md`
|
||||
|
||||
这份文档只看最新正式 PDF matrix 复跑产生的原始 `cmd/stdout/stderr/json`,目的是回答:当前多机多卡 NCCL 是否真的走了 IB/GDRDMA,是否用到了正确 HCA,是否有 SHARP/外部 NCCL net plugin 信号,以及 2x8 失败更像卡在哪一层。
|
||||
|
||||
## 一句话结论
|
||||
|
||||
最新 artifacts 证明本轮多机多卡测试不是 launch 失败、不是回退 TCP、不是 GDRDMA 没开,也不是 HCA 名字选错;所有 case 都走 `IB`,都识别并启用了 `mlx5_0,mlx5_1,mlx5_6,mlx5_7` 这 4 条 400G rail,NCCL 正确性 `wrong=0`。当前主要缺口仍然是:环境没有外部 NCCL net plugin / SHARP 证据,且 2x8 档位的 PDF 阈值明显高于当前 4 rail 环境可解释能力,alltoall 还存在独立的跨 Leaf 多点通信效率问题。
|
||||
|
||||
## Artifacts 信号表
|
||||
|
||||
| Case | Peak | Threshold | Status | Plugin missing | NET/IB using | Using network IB | HCA set | GDR HCA set | GDRDMA edges | P2P/CUMEM | SHARP/CollNet | stdout KB |
|
||||
|---|---:|---:|---|---:|---:|---:|---|---|---:|---:|---:|---:|
|
||||
| allreduce_2x1 1_GPU | 47.29 | 48.90 | FAIL | 2 | 2 | 2 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 16 | 0 | 0 | 24 |
|
||||
| allreduce_2x2 2_GPUs | 137.16 | 136.93 | PASS | 4 | 4 | 4 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 32 | 32 | 0 | 68 |
|
||||
| allreduce_2x4 4_GPUs | 335.07 | 335.48 | FAIL | 8 | 8 | 8 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 256 | 0 | 0 | 259 |
|
||||
| allreduce_2x8 8_GPUs | 353.85 | 491.84 | FAIL | 16 | 16 | 16 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 256 | 0 | 0 | 410 |
|
||||
| alltoall_2x1 1_GPU | 24.85 | 27.25 | FAIL | 2 | 2 | 2 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 8 | 0 | 0 | 19 |
|
||||
| alltoall_2x2 2_GPUs | 47.76 | 54.41 | FAIL | 4 | 4 | 4 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 24 | 8 | 0 | 52 |
|
||||
| alltoall_2x4 4_GPUs | 72.74 | 73.73 | FAIL | 8 | 8 | 8 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 80 | 48 | 0 | 200 |
|
||||
| alltoall_2x8 8_GPUs | 36.83 | 76.54 | FAIL | 16 | 16 | 16 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | mlx5_0,mlx5_1,mlx5_6,mlx5_7 | 512 | 224 | 0 | 603 |
|
||||
|
||||
字段解释:
|
||||
|
||||
- `Plugin missing`:日志里的 `NET/Plugin: Could not find: none libnccl-net-none.so.` 次数。当前命令显式设置了 `NCCL_NET_PLUGIN=none`,所以这个信号表示没有使用外部 NCCL net plugin,而不是 NCCL 没有网络。
|
||||
- `NET/IB using`:日志里的 `NET/IB : Using ...` 次数,说明每个 rank 初始化时看到的 IB HCA 列表。
|
||||
- `Using network IB`:NCCL 最终选择了 `IB` 网络。
|
||||
- `GDR HCA set`:出现 `GPU Direct RDMA Enabled for HCA ...` 的 HCA 集合。
|
||||
- `GDRDMA edges`:NCCL graph/connection 中经由 `NET/IB/*/GDRDMA` 的跨节点边数量。
|
||||
- `P2P/CUMEM`:节点内 GPU 间路径信号,不是跨节点 IB。
|
||||
- `SHARP/CollNet`:日志中 `SHARP`、`CollNet`、`HCOLL` 相关信号计数。当前为 0。
|
||||
|
||||
## 已排除的问题
|
||||
|
||||
### 1. 不是 TCP 回退
|
||||
|
||||
所有 8 个 case 都有 `Using network IB`,且每个 rank 均有 `NET/IB : Using ...`。这说明 NCCL 通信路径不是 socket/TCP 回退。
|
||||
|
||||
### 2. 不是 HCA 名字选错
|
||||
|
||||
所有 case 的 HCA 集合都一致:
|
||||
|
||||
```text
|
||||
mlx5_0, mlx5_1, mlx5_6, mlx5_7
|
||||
```
|
||||
|
||||
这与当前配置里的 `NCCL_IB_HCA=mlx5_0,mlx5_1,mlx5_6,mlx5_7` 一致,也与前面环境快照中确认的 4 条 400G IB rail 一致。
|
||||
|
||||
### 3. 不是 GDRDMA 没开
|
||||
|
||||
所有 case 都出现 `GPU Direct RDMA Enabled for HCA ...`,并且跨节点连接里有 `NET/IB/*/GDRDMA` 边。2x8 alltoall 甚至有 512 条 `GDRDMA/Shared` 边,所以不能简单判断为 GDRDMA 被关掉。
|
||||
|
||||
### 4. 不是 NCCL 正确性失败
|
||||
|
||||
最新 manifest 中 8 个 case 全部:
|
||||
|
||||
```text
|
||||
returncode = 0
|
||||
wrong_count = 0
|
||||
```
|
||||
|
||||
因此当前 FAIL 是严格 PDF 性能阈值失败,不是结果错误。
|
||||
|
||||
## 仍然成立的缺口
|
||||
|
||||
### 1. 外部 NCCL net plugin / SHARP 仍缺证据
|
||||
|
||||
当前命令中显式设置:
|
||||
|
||||
```text
|
||||
NCCL_NET_PLUGIN=none
|
||||
```
|
||||
|
||||
所有 case 均出现 `NET/Plugin: Could not find: none libnccl-net-none.so.`,同时 `SHARP/CollNet` 信号计数为 0。结合前面的环境检查没有找到 `libnccl-net*.so*` / `libsharp*.so*`,当前环境不能证明与 PDF 参考环境的软件栈等价。
|
||||
|
||||
### 2. 2x8 allreduce 更像被 4 rail 物理能力卡住
|
||||
|
||||
2x8 allreduce:
|
||||
|
||||
```text
|
||||
当前 busbw = 353.85 GB/s
|
||||
PDF 阈值 = 491.84 GB/s
|
||||
```
|
||||
|
||||
16 rank allreduce 的换算关系是:
|
||||
|
||||
```text
|
||||
busbw = algbw * 1.875
|
||||
```
|
||||
|
||||
当前实测反推:
|
||||
|
||||
```text
|
||||
353.85 / 1.875 = 188.72 GB/s algbw
|
||||
```
|
||||
|
||||
当前每节点 4 条 400G rail 的理论单向原始带宽约:
|
||||
|
||||
```text
|
||||
4 * 400 Gb/s / 8 = 200 GB/s
|
||||
```
|
||||
|
||||
所以 allreduce 已经接近 4 rail 的可解释上限;如果 PDF 阈值来自更多 400G rail 或带 SHARP/plugin 的环境,当前节点不应直接按该阈值判死。
|
||||
|
||||
### 3. 2x8 alltoall 是独立重点问题
|
||||
|
||||
2x8 alltoall:
|
||||
|
||||
```text
|
||||
当前 busbw = 36.83 GB/s
|
||||
PDF 阈值 = 76.54 GB/s
|
||||
```
|
||||
|
||||
alltoall 和 allreduce 使用同一组 HCA,同样走 IB/GDRDMA,但 2x8 alltoall 下降明显。这个现象更像多点到多点流量在当前跨 Leaf 网络、ECMP/adaptive routing、拥塞控制或 NCCL graph 策略下效率不够,而不是单纯 HCA 没起来。
|
||||
|
||||
## 下一步建议
|
||||
|
||||
1. 先不要继续盲扫 NCCL 小参数。已有 artifacts 说明基础链路已经起来,继续微调环境变量的收益大概率很低。
|
||||
2. 向硬件/网络侧确认 PDF 参考环境每节点是否有 8 条 400G rail,以及是否启用了 SHARP、HCOLL 或外部 NCCL net plugin。
|
||||
3. 如果验收坚持 PDF 原阈值,应先补齐 plugin/SHARP 或换等价 8 rail 节点复测。
|
||||
4. 如果当前硬件形态就是 4 条 400G rail,则 allreduce 阈值应重新定标;alltoall 单独作为跨 Leaf 多点通信效率问题继续排查。
|
||||
5. 补齐 plugin/SHARP 后,优先复跑:
|
||||
|
||||
```bash
|
||||
cd /root/test_gpu_scripts
|
||||
bash scripts/run_multinode_nccl_pdf_matrix.sh
|
||||
```
|
||||
|
||||
并对比新旧 artifacts 中:
|
||||
|
||||
- `Plugin missing` 是否消失。
|
||||
- 是否出现外部 net plugin、SHARP 或 CollNet 信号。
|
||||
- 2x8 allreduce 是否突破当前 `353-354 GB/s` 平台。
|
||||
- 2x8 alltoall 是否突破当前 `36-37 GB/s` 平台。
|
||||
@ -15,6 +15,7 @@
|
||||
| alltoall PXN disabled 后 rail 均衡但仍低 | 最新 PDF matrix 2x8 为 `36.83 GB/s busbw`,每条 rail 约 `19-20 GB/s` |
|
||||
| 正式 PDF matrix 已复跑 | `reports_multinode_nccl_pdf_matrix_20260523_113803.md`,所有 case 正确性通过;除 2x2 allreduce 外,性能阈值仍 FAIL |
|
||||
| 原始 artifacts 已归档 | `/root/test_gpu_scripts/reports/multinode_nccl_pdf_matrix_20260523_113803_artifacts`,每个 case 有完整 `cmd/stdout/stderr/json` |
|
||||
| artifacts 信号已分析 | `reports_multinode_nccl_artifact_signal_analysis_20260523.md`,确认所有 case 都走 IB/GDRDMA 和 4 条 400G HCA,未见 SHARP/CollNet |
|
||||
| 没看到硬错误 | 未见 discard、RoCE retrans、slow restart、packet sequence error 等增长 |
|
||||
| 当前缺外部 NCCL 网络组件 | 未找到 `libnccl-net*.so*` / `libsharp*.so*`,未见 SHARP/HCOLL 包 |
|
||||
|
||||
@ -171,6 +172,7 @@ OUT_DIR=/root/test_gpu_scripts/reports/nccl_deep_diag_plugin_check_$(date +%Y%m%
|
||||
| `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_deep_diagnose_run_20260523.md` | 本轮深度复跑结果 |
|
||||
| `reports_multinode_nccl_environment_gap_20260523.md` | 硬件/软件环境等价性缺口 |
|
||||
| `reports_multinode_nccl_counter_probe_20260523.md` | RDMA rail/counter 证据 |
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
当前结论:
|
||||
|
||||
- 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 证据。
|
||||
- 2 机 1/2/4 GPU per node 档位已接近 PDF 参考值,但严格按阈值仍 FAIL。
|
||||
- 2 机 8 GPU 档位仍未达到 PDF 参考值:
|
||||
- allreduce 实测 `353.85 GB/s busbw`,PDF 目标 `491.84 GB/s`。
|
||||
@ -20,8 +21,9 @@
|
||||
|---:|---|---|
|
||||
| 1 | `reports_multinode_nccl_handoff_plan_20260523.md` | 给网络/硬件/环境侧的交接计划,包含决策树、要问的问题和复跑命令 |
|
||||
| 2 | `reports_multinode_nccl_environment_gap_20260523.md` | 说明当前环境为什么不能证明与 PDF 等价,重点是 4 x 400G rail 和缺少 NCCL net plugin / SHARP |
|
||||
| 3 | `reports_multinode_nccl_pdf_matrix_run_20260523.md` | 最新正式多机多卡 PDF matrix 结果摘要 |
|
||||
| 4 | `reports_multinode_nccl_deep_diagnose_run_20260523.md` | 本轮完整深度诊断复跑结果,包含 counter、GRAPH、PXN sweep |
|
||||
| 3 | `reports_multinode_nccl_artifact_signal_analysis_20260523.md` | 最新 artifacts 信号分析,确认 IB/GDRDMA/HCA 使用情况和 plugin/SHARP 缺口 |
|
||||
| 4 | `reports_multinode_nccl_pdf_matrix_run_20260523.md` | 最新正式多机多卡 PDF matrix 结果摘要 |
|
||||
| 5 | `reports_multinode_nccl_deep_diagnose_run_20260523.md` | 本轮完整深度诊断复跑结果,包含 counter、GRAPH、PXN sweep |
|
||||
|
||||
## 关键脚本
|
||||
|
||||
@ -85,6 +87,7 @@ OUT_DIR=/root/test_gpu_scripts/reports/nccl_deep_diag_plugin_check_$(date +%Y%m%
|
||||
```text
|
||||
/root/test_gpu_scripts/reports_multinode_nccl_handoff_plan_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_deep_diagnose_run_20260523.md
|
||||
```
|
||||
|
||||
@ -196,6 +199,7 @@ PXN disabled sweep 未发现有效参数:
|
||||
| `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_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 速率摘要 |
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user