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 的分布式操作(waitconsume_tokenranknum_rankssymm_atnotifyextern_call)。

  • SHMEM 设备端 API —— 在 kernel 内使用的设备端 ACLSHMEM API(RMA 操作、 信号、屏障与同步)。

  • SHMEM 主机端 API —— 用于初始化、内存管理与主机发起通信的主机端 ACLSHMEM API。

  • Swizzle 辅助接口 —— 用于 GEMM 与通信 tile 调度的 Swizzle 辅助接口。

  • 自动调优 API —— 用于多设备 kernel 调优的分布式 autotune API。

开发者指南

教程

常见问题

  • FAQ 文档 —— 常见问题与故障排除。