ByteDance-Seed/Triton-distributed
Distributed Compiler and Optimized Parallel Kernels
Triton-distributed – 用于重叠计算与通信的分布式编译器
它是什么 – Triton-distributed 是一个建立在 OpenAI Triton 语言之上的开源编译器。它让你能够编写将繁重计算(例如 GEMM、MoE、flash-decode)与通信原语(AllGather、AllReduce、AllToAll 等)相结合的 GPU 核心,使两者能在多 GPU 系统上同时执行。该项目针对 NVIDIA (SM80/SM89/SM90a) 和 AMD CDNA3 GPU,并可扩展至其他硬件。
为什么它很重要 – 现代大规模模型(LLM、混合专家模型、张量并行推理)受限于在 GPU 之间传输张量的时间。通过公开底层的“重叠”原语,Triton-distributed 让开发者能够编写隐藏通信延迟的核心,实现媲美甚至超越 NVIDIA CUTLASS 或 DeepEP 等手动调优库的加速效果。
主要功能(截至 README)
- 底层原语:用于分布式内存操作(put/get、基于信号的同步、NVSHMEM、RDMA、PCIe、IB、NVLink)。
- 高性能核心:已提供分布式 GEMM + AllReduce、MoE 张量并行核心、flash-decode 核心,以及在 H800 GPU 上击败 DeepEP 的 AllToAll 核心。
- 跨硬件支持:NVIDIA GPU (SM80/89/90a) 和 AMD CDNA3;Ascend 支持通过独立分支提供。
- 插件架构:作为上游 Triton 3.7 源码的外部插件构建,并为旧硬件提供旧版 Triton 3.4 分支。
- 性能报告:包含 GEMM、AllGather、ReduceScatter 和 flash-decode 的节点内与节点间扩展图表。
- 路线图:计划提供高阶原语、更多教程、额外的跨节点核心以及更广泛的后端支持。
入门指南
- 从源码安装:依照
docs/build.md将插件针对 Triton 3.7 进行编译。 - 预先构建的 wheel:在 PyTorch 容器中,安装必要的 CUDA/NVSHMEM wheel,然后执行
pip install https://github.com/ByteDance-Seed/Triton-distributed/releases/download/v0.0.2/triton_dist-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl。 - 编写核心:使用
@triton_dist.jit修饰函数并调用提供的libshmem_deviceAPI(例如putmem_nbi_block、signal_wait_until)。README 中包含完整的 AllToAll 示例。
典型使用场景
- 大规模推理:通过将 attention/FFN 计算与张量并行 MoE 或 flash-decode 所需的 all-to-all 通信重叠,加速 8-32 个 GPU 上的 token 解码。
- 训练核心:实现自定义的 GEMM + AllReduce 或 MoE 专用归约,以隐藏梯度同步的成本。
成熟度 – 该项目持续维护中(新闻更新至 2026 年 9 月)。它提供稳定的底层 API、预先构建的二进制文件以及多个经过基准测试的核心。高阶抽象仍在开发中,部分后端(例如 Triton 3.7 上的 Ascend)尚待完成。
授权 – 大部分代码采用 MIT;部分代码 (flash_decode.py) 采用 Apache-2.0。
所有陈述均直接取自仓库的 README;未添加任何外部推测。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目