夕丰木 · 文库
分布式训练

ProcessGroup 与 NCCL 通信路径梳理

深入 ProcessGroup 的后端实现,梳理 NCCL 通信路径、Stream 管理与异步执行机制。

2025-03-28· 15 分钟阅读DistributedPyTorchNCCL

引言

ProcessGroup 是 PyTorch 分布式通信的核心抽象。它把上层 collective 调用转化为具体后端执行,并负责异步任务、错误处理与资源管理。

通信路径

torch.distributed API 到 ProcessGroup,再到 NCCL communicator,调用链中会涉及 bucket、stream、event、work handle 等多个对象。

排查重点

  • NCCL communicator 初始化是否一致。
  • Stream 同步边界是否过度保守。
  • Work handle 是否正确 wait 或同步。
  • rank 间 tensor shape 与 dtype 是否一致。

小结

理解 ProcessGroup 可以帮助我们把通信问题从“黑盒卡住”拆解成可定位的工程路径。

On this page