Triton-distributed
Triton-distributed 是由字节跳动 Seed 团队基于 OpenAI Triton 打造的分布式编译器,专为并行计算系统设计。它核心解决了大规模 AI 模型训练中“计算”与“通信”难以高效协同的痛点,通过独特的计算 - 通信重叠技术,让开发者能够编写出媲美高度优化底层库(如 Distributed-GEMM)的高效算子。
这款工具主要面向需要深度定制高性能内核的 AI 基础设施工程师、系统研究人员及算法开发者。无论是使用 NVIDIA 还是 AMD GPU,用户都能利用它轻松构建复杂的分布式算子,无需在多种硬件架构间重复造轮子。其技术亮点在于支持 MegaTritonKernel 大核融合、内置细粒度的核内性能分析器(Intra-Kernel Profiler),并能显著加速 MoE(混合专家)模型及端到端推理任务。近期更新还引入了低延迟模式与令牌节省机制,进一步提升了在 H800、L20 等主流算力卡上的运行效率。如果你希望突破现有框架的性能瓶颈,亲手打造极致的分布式计算流程,Triton-distributed 将是一个强大且灵活的选择。
使用场景
某大型模型团队正在基于 H800 集群部署混合专家(MoE)架构的大语言模型,亟需优化多卡并行推理时的通信延迟与计算效率。
没有 Triton-distributed 时
- 开发门槛极高:工程师必须手动编写复杂的 CUDA/C++ 代码来实现计算与通信的重叠,调试难度大且周期长。
- 性能瓶颈明显:传统的串行执行模式导致 GPU 在等待 AllReduce 等通信操作时空转,算力利用率不足 60%。
- 算子适配困难:针对特定硬件(如 H800 或 L20)优化 MoE 路由与聚合算子需要重复造轮子,难以复用现有 Triton 生态。
- 维护成本高昂:一旦模型结构或硬件拓扑变更,底层的分布式内核代码往往需要推倒重来,缺乏灵活性。
使用 Triton-distributed 后
- 开发效率飞跃:团队直接利用熟悉的 Triton 语法编写分布式内核,自动处理底层通信逻辑,将新算子开发周期从数周缩短至数天。
- 极致性能释放:通过原生支持的“计算 - 通信重叠”机制,有效掩盖了网络延迟,在 MoE 场景下实现了比肩手写 CUDA 的加速效果(如官方演示的 1.33 倍提速)。
- 跨平台无缝迁移:一套代码即可同时适配 NVIDIA H800 和 AMD GPU,无需为不同硬件维护多套后端实现。
- 精细化调优能力:借助内置的核内分析器(Intra-Kernel Profiler),开发者能精准定位并行系统中的微小延迟,快速迭代优化策略。
Triton-distributed 让开发者能以纯 Python 的高生产力,轻松构建出媲美顶级手工优化库的高性能分布式 AI 内核。
运行环境要求
- Linux
- 必需
- 主要支持 NVIDIA GPU (SM80, SM89, SM90a,如 H800, L20) 和 AMD GPU (CDNA3)
- 示例中使用了 H800/L20
- 需安装 CUDA 12.4 环境 (基于 nvcr.io/nvidia/pytorch:25.04-py3 容器)
未说明 (Docker 启动参数建议共享内存 --shm-size=10g)

快速开始
我们是字节跳动Seed团队。

Triton-distributed
Triton-distributed 是一款基于 OpenAI Triton 的分布式编译器,专为计算与通信重叠设计。
借助 Triton-distributed,程序员可以开发出媲美高度优化库的高效内核(包括 Distributed-GEMM 和 FLUX)。目前,Triton-distributed 主要面向 Nvidia GPU 和 AMD GPU,未来也可移植到其他硬件平台。如果您希望在自己的硬件上使用 Triton-distributed,请随时联系我们。
新闻
- 2025年12月22日 ✨✨✨:更新了 EP 函数,支持低延迟模式、令牌节省和 Mega-EP。
- 2025年10月21日 🔥🔥🔥:Triton-distributed 在 2025 年 Triton 开发者大会 上进行了展示,详情请参阅 演讲视频。
- 2025年3月9日 ✨✨✨:推出了内核级性能分析器,详情请参阅 文档。
- 2025年8月24日 ⚡⚡⚡:支持对 ByteDance-Seed/Seed-OSS-36B-Instruct 进行推理加速,速度提升至 1.33 倍。
- 2025年8月13日 ✨✨✨:引入了 MegaTritonKernel,并在 H20/H800 上提供了 Qwen3 TP 示例,详情请参阅 文档。
- 2025年8月6日 ✨✨✨:支持在 H800 上进行 GEMM+AllReduce 操作,并在 L20 上支持 MoE 算子,详细信息请参见 GEMM+AR 测试 和 MOE 测试。
- 2025年7月24日 🤖🤖🤖:推出了端到端推理加速演示,统一支持 NVIDIA 和 AMD GPU,详情请参阅 文档。
- 2025年7月11日 ✨✨✨:利用 Triton-distributed 实现了快速 AllReduce,详情请参见 AllReduce 测试。
- 2025年7月11日 ✨✨✨:改进了张量并行下的 MoE 算子,详情请参见 AG+MoE 测试 和 MoE+RS 测试。
- 2025年7月11日 ✨✨✨:支持 Triton 3.4,并集成 NVSHMEM4py(MR)。无需修改 NVSHMEM 代码即可通过
pip install安装。 - 2025年5月12日 🚀🚀🚀:我们的论文《TileLink:利用以块为中心的原语生成高效的计算-通信重叠内核》已被 MLSys 2025 接受。
入门指南
安装 Triton-distributed
方法一:从源码编译
请参阅 从源码构建。
方法二:使用 pip 安装
准备 PyTorch 容器
docker run --name triton-dist --ipc=host --network=host --privileged --cap-add=SYS_ADMIN --shm-size=10g --gpus=all -itd nvcr.io/nvidia/pytorch:25.04-py3 /bin/bash
docker exec -it triton-dist /bin/bash
安装依赖项
pip3 install cuda.core==0.2.0 nvidia-nvshmem-cu12==3.3.9 Cython==0.29.24 nvshmem4py-cu12==0.1.2
pip3 install cuda-python==12.4 setuptools==69.0.0 wheel pybind11
然后,使用 pip 安装 Triton-distributed。
# 移除随 torch 安装的 Triton
pip uninstall triton
pip uninstall triton_dist # 移除之前的 Triton-distributed
rm -rf /usr/local/lib/python3.12/dist-packages/triton
# 安装 Triton-distributed
VERSION=v0.0.2 # 使用最新版本
pip install https://github.com/ByteDance-Seed/Triton-distributed/releases/download/${VERSION}/triton_dist-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
如何使用 Triton-distributed
Triton-distributed 提供了一组易于使用的原语,以支持分布式计算与通信重叠内核的开发。这些原语分为低层原语和高层原语。目前,我们已发布了低层原语,并计划在未来发布高层原语。
借助这些原语,用户可以轻松地编写通信内核。例如,下面展示了一个低延迟的 AllToAll 操作(其延迟优于用于推理的 DeepEP)。 在 32 张 H800 GPU 上,该示例的性能为 137 微秒(每张卡 128 个标记,topk=8,隐藏层大小为 7168,数据类型为 fp8),而 DeepEP 的性能则为 182 微秒(注意:DeepEP 在推理时不使用 NVLink)。
@triton_dist.jit
def all_to_all_kernel(
data_src,
data_dst,
splits_src,
splits_dst,
signal,
splits_cumsum,
scale_src,
scale_dst,
rank: int,
call_count: int,
WITH_SCALE: tl.constexpr,
WORLD_SIZE: tl.constexpr,
HIDDEN: tl.constexpr,
MAX_M: tl.constexpr,
EXPERTS_PER_RANK: tl.constexpr,
NUM_TOT_EXPERTS: tl.constexpr,
ELEMENT_SIZE: tl.constexpr = 2,
SCALE_ELEMENT_SIZE: tl.constexpr = 4,
):
pid = tl.program_id(0)
threadidx = tid(axis=0)
exp_st = pid * EXPERTS_PER_RANK
exp_ed = exp_st + EXPERTS_PER_RANK
m_st = tl.load(splits_cumsum + exp_st)
m_ed = tl.load(splits_cumsum + exp_ed)
num_rows_cur_block = m_ed - m_st
src_off = m_st
dst_off = rank * MAX_M
split_src_ptr = splits_src + exp_st
off0 = exp_st + tl.arange(0, EXPERTS_PER_RANK)
off1 = exp_st + tl.arange(0, EXPERTS_PER_RANK) + 1
cumsum_sts = tl.load(splits_cumsum + off0)
cumsum_eds = tl.load(splits_cumsum + off1)
tl.store(split_src_ptr + tl.arange(0, EXPERTS_PER_RANK), cumsum_eds - cumsum_sts)
act_pos = call_count % 2
data_dst_ptr = data_dst + act_pos * WORLD_SIZE * MAX_M * HIDDEN + dst_off * HIDDEN
split_dst_ptr = splits_dst + act_pos * NUM_TOT_EXPERTS + rank * EXPERTS_PER_RANK
signal_ptr = signal + act_pos * WORLD_SIZE + rank
libshmem_device.putmem_nbi_block(
data_dst_ptr,
data_src + src_off * HIDDEN,
num_rows_cur_block * HIDDEN * ELEMENT_SIZE,
pid,
)
libshmem_device.putmem_nbi_block(
split_dst_ptr,
split_src_ptr,
EXPERTS_PER_RANK * 4, # 现在我们使用 `int32` 来表示分割信息
pid,
)
if WITH_SCALE:
scale_dst_ptr = scale_dst + act_pos * WORLD_SIZE * MAX_M + dst_off
libshmem_device.putmem_signal_nbi_block(
scale_dst_ptr,
scale_src + src_off,
num_rows_cur_block * SCALE_ELEMENT_SIZE,
signal_ptr,
call_count,
libshmem_device.NVSHMEM_SIGNAL_SET,
pid,
)
libshmem_device.fence()
if threadidx == 0:
if not WITH_SCALE:
libshmem_device.signal_op(
signal_ptr,
call_count,
libshmem_device.NVSHMEM_SIGNAL_SET,
pid,
)
libshmem_device.signal_wait_until(
signal + act_pos * WORLD_SIZE + pid,
libshmem_device.NVSHMEM_CMP_EQ,
call_count,
)
此外,用户还可以将通信部分与计算部分结合,设计出重叠内核。我们在 python/triton_dist/kernels 中提供了示例实现。
性能
Triton-distributed 的性能可以达到与手工优化库相当甚至更好的水平。
单节点 H800x8 上的 AllGather GEMM

单节点 H800x8 上的 GEMM ReduceScatter

两节点 H800x8 上的 AllGather GEMM

两节点 H800x8 上的 GEMM ReduceScatter

分布式 Flash-Decode 从 1 张 GPU 扩展到 32 张 GPU 的性能
解码时的批次大小为 1(单个查询)。

其他平台上的性能
路线图
功能
- 发布低层原语
- 发布高层原语
- 教程
- 预编译二进制文件
内核
- 发布单节点 GEMM TP 重叠内核
- 发布单节点 MoE TP 重叠内核
- 发布单节点分布式 Flash-Decoding 内核
- 发布单节点 MoE EP 重叠内核
- 发布跨节点 GEMM TP 重叠内核
- 发布跨节点 MoE TP 重叠内核
- 发布跨节点分布式 Flash-Decoding 内核
- 发布跨节点 EP 全对全通信内核(类似于 DeepEP)
- 提供内核实现教程
后端
计算
- 支持 Nvidia SM90a
- 支持 Nvidia SM80
- 支持 Nvidia SM89
- 支持 AMD CDNA3
通信
- NVLink
- IB
- PCIe
性能
- 性能报告
许可证
Triton-distributed 项目采用 MIT 许可证。我们的部分代码采用 Apache-2.0 许可证:
python/triton_dist/kernels/flash_decode.py
引用
如果您在科学出版物中使用 Triton-distributed,我们鼓励您在相关论文中添加以下参考文献:
@misc{zheng2025tritondistributed,
title={Triton-distributed: 使用 Triton 编译器在分布式 AI 系统上编程重叠内核},
author={Size Zheng、Wenlei Bao、Qi Hou、Xuegui Zheng、Jin Fang、Chenhui Huang、Tianqi Li、Haojie Duanmu、Renze Chen、Ruifan Xu、Yifan Guo、Ningxin Zheng、Ziheng Jiang、Xinyi Di、Dongyang Wang、Jianxi Ye、Haibin Lin、Li-Wen Chang、Liqiang Lu、Yun Liang、Jidong Zhai、Xin Liu},
year={2025},
eprint={2504.19442},
archivePrefix={arXiv},
primaryClass={cs.DC},
url={https://arxiv.org/abs/2504.19442},
}
@article{zheng2025tilelink,
title={Tilelink: 使用以 Tile 为中心的原语生成高效的计算-通信重叠内核},
author={Zheng, Size、Fang, Jin、Zheng, Xuegui、Hou, Qi、Bao, Wenlei、Zheng, Ningxin、Jiang, Ziheng、Wang, Dongyang、Ye, Jianxi、Lin, Haibin 等},
journal={arXiv 预印本 arXiv:2503.20313},
year={2025}
}
关于 字节跳动 Seed 团队
字节跳动 Seed 团队成立于 2023 年,致力于打造业界最先进的 AI 基础模型。该团队立志成为世界一流的研究团队,为科学和社会的进步做出重大贡献。
讨论与贡献
请使用议题或拉取请求进行讨论和贡献(参见 CONTRIBUTING.md)。
版本历史
v0.0.2-rc2025/09/12v0.0.1-rc2025/08/20experimental2025/07/11常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。