背景
排查多 GPU 通讯路径时发现:跨 rank 梯度同步的 NCCL transport 被无条件设为禁用 P2P 与 SHM,走 TCP loopback。这是 RTX 6000D 主机兼容问题的兜底,但在 GPU 间有 NVLink 的健康主机上会显著损失同步带宽。
现状证据
uni_rl/ipc/dp_sync.py(DpParameterSync)与 uni_rl/ipc/dp_launcher.py launch_torchrun_workers 均 setdefault(NCCL_P2P_DISABLE, 1)、setdefault(NCCL_SHM_DISABLE, 1),注释说明原因是 RTX 6000D 主机上 NCCL P2P 挂起、SHM 非法访存。
- 用户 env 显式设置可覆盖(setdefault 语义),但没有自动检测,也没有文档说明何时应覆盖。
- NVLink 互联的主机上禁用 P2P 后,梯度 all-reduce 走 TCP loopback,带宽从 NVLink 的数百 GB/s 降到网络栈量级,多卡扩展效率受损。
建议方向(供 maintainer 判断)
- launch 时探测 GPU 拓扑(
nvidia-smi topo -m / pynvml NVLink 状态),检测到 NVLink/P2P 可用且非已知问题硬件时不注入禁用默认值,或改为 warning 提示。
- 已知问题机型(RTX 6000D)保留现有兜底;可考虑维护一份硬件黑名单而非全局禁用。
- 文档补充:多卡训练在 NVLink 主机上建议显式
NCCL_P2P_DISABLE=0 的前提与验证方法。
与 #1505 的关系:#1505 记录 NUMA/PCIe 拓扑感知整体缺失,本 issue 聚焦 NCCL transport 默认值的硬件条件化。
仅为问题记录与方向建议,不在本 issue 内实施。
背景
排查多 GPU 通讯路径时发现:跨 rank 梯度同步的 NCCL transport 被无条件设为禁用 P2P 与 SHM,走 TCP loopback。这是 RTX 6000D 主机兼容问题的兜底,但在 GPU 间有 NVLink 的健康主机上会显著损失同步带宽。
现状证据
uni_rl/ipc/dp_sync.py(DpParameterSync)与uni_rl/ipc/dp_launcher.pylaunch_torchrun_workers均setdefault(NCCL_P2P_DISABLE, 1)、setdefault(NCCL_SHM_DISABLE, 1),注释说明原因是 RTX 6000D 主机上 NCCL P2P 挂起、SHM 非法访存。建议方向(供 maintainer 判断)
nvidia-smi topo -m/ pynvml NVLink 状态),检测到 NVLink/P2P 可用且非已知问题硬件时不注入禁用默认值,或改为 warning 提示。NCCL_P2P_DISABLE=0的前提与验证方法。与 #1505 的关系:#1505 记录 NUMA/PCIe 拓扑感知整体缺失,本 issue 聚焦 NCCL transport 默认值的硬件条件化。
仅为问题记录与方向建议,不在本 issue 内实施。