PyTorch Custom Collective

实现高性能自定义通信算子,支持 AllReduce / ReduceScatter 场景。

  • PyTorch
  • Distributed
  • NCCL
最后更新
2024-10-08
阅读时长
28 min
Star
2.1k
语言
Python / CUDA

项目概览

围绕 PyTorch 分布式后端,构建自定义 Collective 的注册、调度、通信与 profile 流程。

背景与动机

训练瓶颈常常隐藏在梯度通信中,需要在框架层观察通信何时发生、如何与计算重叠。

核心特性

打通 ProcessGroup、NCCL stream、bucket 化梯度与异步 work handle。

核心特性

通信路径

清晰映射前后端调用链。

异步重叠

观察计算与通信调度。

Profile

从 trace 定位吞吐瓶颈。

性能示例

指标结果说明
吞吐提升+18%端到端
通信原语4Collective
追踪指标12Profile

TREE HOLLOW LAB

继续翻阅夕丰木中的工程卷宗

从项目复盘回到完整项目集,或前往博客阅读与此相关的源码笔记。