Triton-distributed-ascend 文档
Triton-distributed-ascend 是一个由 Triton 语言扩展而来、面向昇腾 AI 处理器优化的分布式 计算框架。它在昇腾 NPU 上实现高效的分布式计算,提供通信原语以及计算通信掩盖优化, 面向大规模分布式训练与推理场景。
本项目基于 MLIR 的多层抽象能力,将使用 Triton 编写的分布式算子映射到昇腾 AI 处理器上, 并暴露细粒度接口用于控制片上内存与流水线同步。
快速入门
建议按以下顺序阅读:
安装 —— 硬件与软件前置要求、CANN 安装以及 Python 依赖。
从源码构建 —— 从源码构建 Triton-distributed-ascend、 AscendNPU-IR 与 shmem。
快速开始 —— 运行第一个分布式 kernel 并验证安装结果。
关于版本策略、分支生命周期与兼容性矩阵,请参阅 发布说明。
主要特性
分布式通信原语 —— AllReduce、AllGather、ReduceScatter、All2All。
计算通信掩盖 —— 通过重叠执行提升吞吐量。
基于 AscendNPU IR 的编译优化 —— 直接利用昇腾硬件特性的优化。
友好的 Python 接口 —— 简洁的 Python API,可集成到现有深度学习框架中。
架构
分布式架构设计 —— 分布式架构设计、术语表、编译流程与通信引擎详解。
API 参考
API 文档涵盖六个主要部分:
Triton-distributed 语义 —— 设计理念、语义模型与以块为中心的 计算通信掩盖编程模式。
triton_dist.language API —— 用于 Triton kernel 的分布式操作(
wait、consume_token、rank、num_ranks、symm_at、notify、extern_call)。SHMEM 设备端 API —— 在 kernel 内使用的设备端 ACLSHMEM API(RMA 操作、 信号、屏障与同步)。
SHMEM 主机端 API —— 用于初始化、内存管理与主机发起通信的主机端 ACLSHMEM API。
Swizzle 辅助接口 —— 用于 GEMM 与通信 tile 调度的 Swizzle 辅助接口。
自动调优 API —— 用于多设备 kernel 调优的分布式 autotune API。
开发者指南
Kernel 调试 —— 提取 IR、打印编译器 pass 以及 使用
bishengir-compile标志调试同步问题。环境变量与编译选项 —— 用于调试和优化的环境变量与编译器选项。
多卡通算融合算子精度校验 —— 多卡融合算子精度验证。
单算子开发 —— 使用分布式 kernel 进行单算子开发。
性能优化指南 —— 性能优化 技术与最佳实践。
算子性能测试与调优:autotune 特性使用介绍 —— 算子性能测试与 autotune 功能使用指南。
Unified Ascend operator tests —— Kernel 性能分析指南。
教程
全聚合-通用矩阵乘法(Allgather Gemm) —— AllGather+GEMM 融合优化教程。
autotune 样例:UDMA Reverse All2All 增量优化实践 —— Autotune 示例与优化实践。
Reverse All2All (EP MoE Distributed Kernel) —— 用于 MoE 分布式 kernel 的反向 All2All。
常见问题
FAQ 文档 —— 常见问题与故障排除。