Skip to content

NCCL 默认禁用 P2P/SHM 走 TCP loopback:NVLink 主机上梯度同步带宽受损,需条件化或文档化 #1507

Description

@TATP-233

背景

排查多 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_workerssetdefault(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 判断)

  1. launch 时探测 GPU 拓扑(nvidia-smi topo -m / pynvml NVLink 状态),检测到 NVLink/P2P 可用且非已知问题硬件时不注入禁用默认值,或改为 warning 提示。
  2. 已知问题机型(RTX 6000D)保留现有兜底;可考虑维护一份硬件黑名单而非全局禁用。
  3. 文档补充:多卡训练在 NVLink 主机上建议显式 NCCL_P2P_DISABLE=0 的前提与验证方法。

#1505 的关系:#1505 记录 NUMA/PCIe 拓扑感知整体缺失,本 issue 聚焦 NCCL transport 默认值的硬件条件化。

仅为问题记录与方向建议,不在本 issue 内实施。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions