Document NCCL graph comparison
This commit is contained in:
parent
82c6316716
commit
24a7bd5c1b
@ -57,6 +57,33 @@
|
||||
|
||||
补充 ENV/INIT/NET 日志确认,性能波动时仍是 NCCL `2.27.7+cuda12.4`、4 条 400G HCA、GDR enabled、internal IB plugin;不是退回旧 NCCL、HCA 选择错误或 GDR 失效。
|
||||
|
||||
## NCCL GRAPH/TUNING 对照
|
||||
|
||||
为避免只看带宽结果,补抓了 allreduce 与 PXN disabled alltoall 的 `NCCL_DEBUG_SUBSYS=INIT,NET,GRAPH,TUNING,COLL` 日志。该日志采样使用短迭代,只用于看 NCCL 图和通道选择,不作为性能结论。
|
||||
|
||||
共同点:
|
||||
|
||||
| 观察项 | allreduce | alltoall + `NCCL_PXN_DISABLE=1` |
|
||||
|--------|-----------|----------------------------------|
|
||||
| NCCL version | `2.27.7+cuda12.4` | `2.27.7+cuda12.4` |
|
||||
| HCA | `mlx5_0,mlx5_1,mlx5_6,mlx5_7` | `mlx5_0,mlx5_1,mlx5_6,mlx5_7` |
|
||||
| GDR | enabled | enabled |
|
||||
| external net plugin | missing, internal IB | missing, internal IB |
|
||||
| channels | `16 coll / 16 nvls / 16 p2p` | `16 coll / 16 nvls / 16 p2p` |
|
||||
| p2p channels per peer | `2` | `2` |
|
||||
| P2P chunk | `131072` | `131072` |
|
||||
|
||||
差异:
|
||||
|
||||
| 观察项 | allreduce | alltoall + `NCCL_PXN_DISABLE=1` |
|
||||
|--------|-----------|----------------------------------|
|
||||
| Pattern 4 | `crossNic 0`, `type NVL/PXN`, `nChannels 8` | `crossNic 2`, `type NVL/PIX`, `nChannels 8` |
|
||||
| `NET/IB/*/GDRDMA` channel edge lines | `256` | `512` |
|
||||
| `P2P/CUMEM` channel edge lines | `0` | `224` |
|
||||
| total NET/P2P channel edge lines | `256` | `736` |
|
||||
|
||||
判断:PXN disabled 后 4 条 IB/GDRDMA rail 都仍被使用,且通道数没有少;但 alltoall 的 NCCL graph 明显更复杂,并混入大量本机 `P2P/CUMEM` 路径。这个结果进一步支持:剩余差距不是 HCA/GDR 基础环境没有生效,而是 alltoall collective graph、P2P/NET 组合方式、internal IB plugin 能力或交换网络策略的问题。
|
||||
|
||||
## PXN disabled 端口计数器
|
||||
|
||||
`NCCL_PXN_DISABLE=1` 后,8 卡 alltoall 输出:
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
按 `sx算力节点跨Leaf NCCL测试报告.pdf` 的矩阵继续对齐后,发现 2 机 4 卡档位的核心问题是默认 GPU 选择不符合 GPU-NIC 亲和性。显式选择 `CUDA_VISIBLE_DEVICES=0,1,4,5` 后,2 机 4 卡 allreduce 可以恢复到 `333-335 GB/s` 区间,接近 PDF 的 `335.48 GB/s`;alltoall 配合 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`。复测端口 counter 后,PXN disabled 下 4 条 rail 的流量已均衡,且没有明显链路错误、丢包、RoCE 重传或 slow restart;同类 `port_xmit_wait` 在高吞吐 allreduce 中也会出现,因此它不是 alltoall 低吞吐的充分解释。继续在 PXN disabled 基线上叠加 NVLS、P2P chunk、buffer、channel、QP/split、AR 等参数,没有稳定收益。剩余差距更像 NCCL internal alltoall 通信模式效率、交换网络策略,或缺少 NCCL net plugin/SHARP 能力。
|
||||
进一步 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`。复测端口 counter 后,PXN disabled 下 4 条 rail 的流量已均衡,且没有明显链路错误、丢包、RoCE 重传或 slow restart;同类 `port_xmit_wait` 在高吞吐 allreduce 中也会出现,因此它不是 alltoall 低吞吐的充分解释。继续在 PXN disabled 基线上叠加 NVLS、P2P chunk、buffer、channel、QP/split、AR 等参数,没有稳定收益。NCCL GRAPH/TUNING 日志显示 alltoall 的 channel graph 比 allreduce 复杂很多,且混入大量本机 `P2P/CUMEM` 路径,但 HCA/GDR/channel 基础状态一致。剩余差距更像 NCCL internal alltoall 通信模式效率、交换网络策略,或缺少 NCCL net plugin/SHARP 能力。
|
||||
|
||||
同时,`nccl-gpu-2` 的 SSH 入口曾因未认证连接过多触发 `MaxStartups` 随机拒绝,导致 `mpirun` 拉起远端 rank 失败。已经做了临时 SSHD 缓解并拿到有效的 2 节点 x 8 GPU allreduce/alltoall 报告。
|
||||
|
||||
@ -39,6 +39,7 @@
|
||||
15. 对 PXN disabled 后的 8 卡 alltoall 抓取 `counters`/`hw_counters` 增量,确认 rail 已均衡且无明显错误/重传。
|
||||
16. 对同样 2x8 allreduce 抓 counter 对照,确认高吞吐 allreduce 也会出现 `port_xmit_wait`,因此该 counter 不是 alltoall 低吞吐的唯一根因。
|
||||
17. 在 PXN disabled 基线上继续 sweep NVLS、P2P chunk、buffer、channel、QP/split、AR 等参数,确认没有稳定收益,部分参数明显变差。
|
||||
18. 抓取 allreduce 与 PXN disabled alltoall 的 `GRAPH/TUNING/COLL` 日志,确认两者 HCA/GDR/channel 基础状态一致,但 alltoall graph 明显更复杂。
|
||||
|
||||
## 关键证据
|
||||
|
||||
@ -337,6 +338,21 @@ PXN disabled 基线上的二次参数 sweep:
|
||||
|
||||
长测复核没有复现 `NVLS/P2P chunk` 的短测小涨:同一环境确认仍为 NCCL `2.27.7+cuda12.4`、4 条 400G HCA、GDR enabled、internal IB plugin,但 baseline 窗口下滑到 `32.7280 GB/s`,`P2P_NET_CHUNKSIZE=4M` 为 `31.9340 GB/s`,`NVLS_ENABLE=0 + P2P_NET_CHUNKSIZE=4M` 为 `27.6585 GB/s`。因此这些参数不应固化到正式配置。
|
||||
|
||||
`GRAPH/TUNING/COLL` 日志对照:
|
||||
|
||||
| 观察项 | allreduce | alltoall + `NCCL_PXN_DISABLE=1` |
|
||||
|--------|-----------|----------------------------------|
|
||||
| NCCL version | `2.27.7+cuda12.4` | `2.27.7+cuda12.4` |
|
||||
| HCA / GDR | 4 HCA, GDR enabled | 4 HCA, GDR enabled |
|
||||
| external net plugin | missing, internal IB | missing, internal IB |
|
||||
| channels | `16 coll / 16 nvls / 16 p2p` | `16 coll / 16 nvls / 16 p2p` |
|
||||
| Pattern 4 | `crossNic 0`, `type NVL/PXN`, `nChannels 8` | `crossNic 2`, `type NVL/PIX`, `nChannels 8` |
|
||||
| `NET/IB/*/GDRDMA` channel edge lines | `256` | `512` |
|
||||
| `P2P/CUMEM` channel edge lines | `0` | `224` |
|
||||
| total NET/P2P channel edge lines | `256` | `736` |
|
||||
|
||||
判断:PXN disabled 后 4 条 IB/GDRDMA rail 和 16 个 p2p/coll/nvls channels 都仍在;但 alltoall graph 明显比 allreduce 复杂,并包含大量本机 P2P/CUMEM 边。这进一步说明问题不在 HCA/GDR 没生效,而在 alltoall collective graph、P2P/NET 组合方式、internal IB plugin 或交换网络策略。
|
||||
|
||||
### 8. 8 卡链路计数器与物理上限判断
|
||||
|
||||
计数器探测报告:`reports_multinode_nccl_counter_probe_20260523.md`
|
||||
@ -440,6 +456,7 @@ libnccl-dev
|
||||
- PXN disabled 复测没有看到 discard、链路错误、RoCE 重传、slow restart、packet sequence error 等错误类 counter 增长
|
||||
- allreduce 对照同样出现 `port_xmit_wait` 但能跑到 `354.366 GB/s`,说明 `port_xmit_wait` 不是 alltoall 低吞吐的唯一根因
|
||||
- PXN disabled 基线上继续叠加 NVLS、P2P chunk、buffer、channel、QP/split、AR 等参数没有稳定收益;QP/split 和 `NCCL_NCHANNELS_PER_NET_PEER=8` 明显变差
|
||||
- NCCL GRAPH/TUNING 对照显示 alltoall 与 allreduce 的 HCA/GDR/channel 基础状态一致,但 alltoall channel edge 更多,并混入大量 `P2P/CUMEM` 本地路径
|
||||
|
||||
### 阻塞 3:`nccl-gpu-2` SSH 存在外部连接压力
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user