首页/AI/大模型部署与运维速查/NCCL 常用环境变量与调试输出
推理环境与 GPU50 条

NCCL 常用环境变量与调试输出

NCCL 通过环境变量控制选网、P2P 与调试输出:排查挂起或带宽异常时先开 NCCL_DEBUG=INFO,看日志里实际使用的网卡与链路类型(NVLink/PCIe/IB)。

通信库的环境变量怎么用

多卡通信库通过环境变量控制选网、点对点直连与调试输出。排查挂起或带宽异常时,第一步是打开信息级调试输出,看日志里每张卡实际选中了哪个网络接口、走了哪类链路。禁用类变量用于对照实验,验证某条路径是否为瓶颈,不要凭感觉长期挂在生产配置上。

排查与对照常用变量

排查与对照常用变量
# 打开信息级日志:打印初始化与拓扑信息
NCCL_DEBUG=INFO python run.py
# 指定用于通信的网卡(多网卡机器必设)
NCCL_SOCKET_IFNAME=eth0
# 逐步放开子系统日志,定位到具体阶段
NCCL_DEBUG_SUBSYS=INIT,NET
# 对照实验:临时禁用某条路径看差异
NCCL_IB_DISABLE=1 python run.py
NCCL_P2P_DISABLE=1 python run.py

其他常用变量

拓扑导出把检测到的拓扑结构写入文件,便于人工核对
算法指定强制使用某种集合通信算法,用于对照实验
网卡设备指定多网卡环境下指定使用的设备
调试级别信息、警告与错误三档,排查时用信息级

变量用途与风险

变量类别用途风险
日志类打印初始化、拓扑与所选接口日志量大,压测时注意磁盘
选网类指定通信使用的网络接口接口写错会导致通信失败
禁用类临时关闭某条路径做对照长期挂生产会隐藏真实问题
拓扑类导出拓扑供人工核对文件路径与权限要确认

典型使用场景

  • 多机任务挂起:先看日志确认选中的接口是否正确
  • 带宽异常:核对实际使用的链路类型是否符合预期
  • 对照实验:临时禁用某条路径,验证是否为瓶颈
  • 新集群调优:导出拓扑并与物理连线核对
  • 升级后回归:通信库或驱动升级后重新确认选网行为
禁用类变量只适合对照排查:验证完成后应立即恢复配置,并在文档里记录结论,避免下次又重复试一遍。
多机卡死先怀疑选网:信息级日志开头会列出每张卡选中的接口,错选到管理网或容器网桥是很常见的原因。

易错点

  • 不打开调试日志就开始调参:不知道实际选了哪个接口,优化无从下手
  • 禁用类变量留在生产:性能与稳定性问题被掩盖,后续排查更困难
  • 多网卡机器不指定接口:可能选中管理网,带宽远低于预期
  • 日志量不控制:信息级日志在高频压测下会迅速写满磁盘
  • 拓扑不核对:逻辑拓扑与实际连线不一致时,性能表现无法解释

数据来源与参考

  • NVIDIA NCCL 用户指南:环境变量(docs.nvidia.com/deeplearning/nccl)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌