通知: 本项目已经正式迁移至 Gitcode 平台
Triton是近几年来受到开发者青睐的Python化编程语言。开发者仅需关注Tile/Block的切分方式以及基于Tile/Block的运算逻辑,编译器将在Triton代码的编译过程中结合底层硬件特点自动完成内存分配、数据搬运、数据计算、流水并行等,因此,算子的开发难度大幅降低、开发效率显著提升。
Triton Ascend是面向昇腾平台构建的Triton编译框架,旨在让Triton代码能够在昇腾硬件上高效运行。目前,Triton Ascend还在不断完善中,我们将不断提升Triton Python API完备度、数据类型支持度、访存方式灵活性等,并持续优化编译器的自动优化能力,提升Triton Ascend整体的功能与性能泛化性。
里程碑 | 重要 8000 性更新情况 | 状态 |
---|---|---|
2025.05.20 | Triton-Ascend开源,Gitee代码仓Alive! :tw-1f389: | ✅ |
2025.06.30 | 支持85% Triton Python API,支持连续访存,覆盖基本使用场景需求 | ✅ |
2025.08.15 | 完善Atomic类Triton Python API支持,完成Flaggems开源仓重点Triton算子适配,提供Matmul等简单算子高性能实现参考用例 | TODO |
2025.09.30 | 完善Scan/Sort类Triton Python API,支持非连续访存,完成vLLM、sglang开源仓中重点Triton算子适配,提供FlashAttention等复杂融合算子高性能实现参考用例 | TODO |
昇腾设备:Atlas 800T/I A2产品
主机CPU架构:x86/ARM
主机操作系统:Linux Ubuntu
欢迎广大开发者试用,但在您开始使用之前,建议您先根据您的开发需求浏览下列文档,希望能够帮助您快速上手!如果您在使用过程中遇到了问题,请您提交Issue反馈相关信息,我们将竭尽全力处理,感谢您的支持!
Triton Ascend还在频繁更新。为能使用最新功能特性,建议您拉取代码进行源码安装。详细安装步骤请参考 安装指南 。
我们为用户提供了每日更新的nightly包,用户可以方便的使用以下命令来安装。3.2.0是当前Triton的大版本号,请用户根据实际修改。
pip install -i https://test.pypi.org/simple/ "triton-ascend<3.2.0rc" --pre --no-cache-dir
同时用户也能在历史列表中找到所有的nightly包。
目前Triton Ascend已经使能了85%以上Triton社区官方提供的Python API,详细的功能支持情况(包括数据类型支持度、使用约束等)请参考 API 支持情况总览 。
在昇腾平台上开发Trtion算子的方式与在GPU平台上基本相同。我们提供了下列算子的示例源码与配套说明来解释如何开发Triton算子的设备侧Kernel函数、主机侧调用代码以及算子功能验证代码。 此外,面向不同数据类型,我们提供了用于验证Triton算子精度的示例代码供大家参考:算子精度验证开发指南 与 参考样例Python文件 。
算子名称 | 开发指南 | 可执行Python文件 |
---|---|---|
VectorAdd | VectorAdd开发指南 | VectorAdd Python文件 |
Softmax | Softmax开发指南 | Softmax Python文件 |
LayerNorm | LayerNorm开发指南 | LayerNorm Python文件 |
FlashAttention | FlashAttention开发指南 | FlashAttention Python文件 |
Matmul | Matmul开发指南 | Matmul Python文件 |
Triton Ascend支持Triton原生的Autotune能力。通过对Tile/Block的形状配置进行搜索寻优,开发者可以在不改变Triton算子写法的条件下获得更优的性能。 此外,配合Triton Ascend编译器自有的自动优化算法,我们也额外提供了新的可调优参数,开发者可以按需选用。关于Triton算子自动寻优,详情请参考 Autotune性能寻优指南 。
为能获得更好的执行性能,除了利用Autotune之外,开发者在编写Triton算子时需要结合昇腾平台的软硬件特点进行开发。我们总结梳理了一些通用优化思路与方法,包括Tile/Block切分方式、高效访存方式以及如何与编译器开展协同优化等,详情请参考高性能Triton算子编程指南 。
目前,许多开源仓已经提供了面向GPU等平台开发的Triton算子。因为昇腾平台在内存大小、运行时接口功能上与GPU等平台存在差异,将这些算子迁移到昇腾平台运行需要完成少量必要的代码修改,具体修改方法请参考非昇腾平台Triton算子迁移指南 。
我们也正逐步将主流开源仓中的GPU Triton算子适配到昇腾平台,当前已适配的算子请参见 已适配开源仓算子列表 。
为了简化用户编程难度,助力开发者低成本完成高性能算子开发,MindStudio算子开发工具已适配Triton算子调试调优。
1) msProf op: 算子性能调优工具,支持Triton算子上板性能数据采集、内存热力图、仿真流水图生成等,详情参考:MindStudio 算子性能调优工具使用参考
2) msSanitizer: 算子内存检测工具,支持Triton算子异常行为检测,包括内存、竞争、未初始化异常检测,可精准定位异常代码行,详情参考:MindStudio 算子异常检测工具使用参考
Triton Ascend支持Triton原生的环境变量,此外面向昇腾平台上的新功能特性进行了拓展。Triton Ascend涉及的全量环境变量,请参考 环境变量总览 。
针对在开发或迁移Triton算子时经常遇到的报错信息与解决方案,我们正在汇总并梳理相关文档供大家参考。该文档正在开发中,将于近期发布,敬请期待。
我们重视开发者在使用Triton Ascend时的信息安全,安全防护建议与相关信息请见 安全声明 。