A language and compiler for custom Deep Learning operations on Ascend hardwares
Project description
Triton Ascend
Triton是近几年来受到开发者青睐的Python化编程语言。开发者仅需关注Tile/Block的切分方式以及基于Tile/Block的运算逻辑,编译器将在Triton代码的编译过程中结合底层硬件特点自动完成内存分配、数据搬运、数据计算、流水并行等,因此,算子的开发难度大幅降低、开发效率显著提升。
Triton Ascend是面向昇腾平台构建的Triton编译框架,旨在让Triton代码能够在昇腾硬件上高效运行。目前,Triton Ascend还在不断完善中,我们将不断提升Triton Python API完备度、数据类型支持度、访存方式灵活性等,并持续优化编译器的自动优化能力,提升Triton Ascend整体的功能与性能泛化性。
-
RoadMap
| 里程碑 | 重要特性更新情况 | 状态 |
|---|---|---|
| 2025.11.14 | triton-ascend 3.2.0rc4预发布版本上线 | ✅ |
| 2025.09.30 | 完善Scan/Sort类Triton Python API,支持非连续访存,完成vLLM、sglang开源仓中重点Triton算子适配 | ✅ |
| 2025.08.15 | 完善Atomic类Triton Python API支持,完成Flaggems开源仓重点Triton算子适配,提供Matmul等简单算子高性能实现参考用例 | ✅ |
| 2025.06.30 | 支持85% Triton Python API,支持连续访存,覆盖基本使用场景需求 | ✅ |
| 2025.05.20 | Triton Ascend开源,Gitcode代码仓Alive! | ✅ |
-
已支持平台
昇腾设备:Atlas 800T/I A2产品
主机CPU架构:x86/ARM
主机操作系统:Linux Ubuntu
帮助文档
欢迎广大开发者试用,但在您开始使用之前,建议您先根据您的开发需求浏览下列文档,希望能够帮助您快速上手!如果您在使用过程中遇到了问题,请您提交Issue反馈相关信息,我们将竭尽全力处理,感谢您的支持!
-
Triton Ascend 安装
详细安装步骤请参考 安装指南 。
-
Triton Ascend Dockerfile开发环境
我们为开发者提供了Dockerfile,帮助开发者快速构建开发环境。Dockerfile文件请参考Dockerfile 。
-
Triton Python API支持情况与约束
目前Triton Ascend已经使能了85%以上Triton社区官方提供的Python API,详细的功能支持情况(包括数据类型支持度、使用约束等)请参考 API 支持情况总览 。
-
Triton算子开发指南(入门级)
在昇腾平台上开发Triton算子的方式与在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算子自动寻优指南(入门级)
Triton Ascend支持Triton原生的Autotune能力。通过对Tile/Block的形状配置进行搜索寻优,开发者可以在不改变Triton算子写法的条件下获得更优的性能。 此外,配合Triton Ascend编译器自有的自动优化算法,我们也额外提供了新的可调优参数,开发者可以按需选用。关于Triton算子自动寻优,详情请参考 Autotune性能寻优指南 。
-
高性能Triton算子编程开发指南(进阶级)
为能获得更好的执行性能,除了利用Autotune之外,开发者在编写Triton算子时需要结合昇腾平台的软硬件特点进行开发。我们总结梳理了一些通用优化思路与方法,包括Tile/Block切分方式、高效访存方式以及如何与编译器开展协同优化等,详情请参考高性能Triton算子编程指南 。
-
非昇腾平台Triton算子快速迁移指南
目前,许多开源仓已经提供了面向GPU等平台开发的Triton算子。因为昇腾平台在内存大小、运行时接口功能上与GPU等平台存在差异,将这些算子迁移到昇腾平台运行需要完成少量必要的代码修改,具体修改方法请参考非昇腾平台Triton算子迁移指南 。
-
开源仓Triton算子适配与支持情况
我们也正逐步将主流开源仓中的GPU Triton算子适配到昇腾平台,当前已适配的算子请参见 已适配开源仓算子列表 。
-
Triton Ascend调试调优工具使用指南
为了简化用户编程难度,助力开发者低成本完成高性能算子开发,MindStudio算子开发工具已适配Triton算子调试调优。
1) msProf op: 算子性能调优工具,支持Triton算子上板性能数据采集、内存热力图、仿真流水图生成等,详情参考:MindStudio 算子性能调优工具使用参考
2) msSanitizer: 算子内存检测工具,支持Triton算子异常行为检测,包括内存、竞争、未初始化异常检测,可精准定位异常代码行,详情参考:MindStudio 算子异常检测工具使用参考
-
Triton Ascend环境变量
Triton Ascend支持Triton原生的环境变量,此外,面向昇腾平台上的新功能特性进行了拓展。Triton Ascend涉及的全量环境变量,请参考 环境变量总览 。
-
Triton Ascend常见报错与应对方案
针对在开发或迁移Triton算子时经常遇到的报错信息与解决方案,我们正在汇总并梳理相关文档供大家参考。该文档正在开发中,将于近期发布,敬请期待。
安全声明
我们重视开发者在使用Triton Ascend时的信息安全,安全防护建议与相关信息请见 安全声明 。
许可证
本项目代码与文档均采用 MIT许可证 。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 54.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17c8d7161eed1e96a286281963fe04d3113ee85affaa5d82c7dd0c35803962f0
|
|
| MD5 |
055b39686bea37e5318bc41a2015266c
|
|
| BLAKE2b-256 |
7ff3d4e6ddbaf6f07b72ceb29f0f739c4c8fba2ff476eac07aeb7ae6f654fce0
|
File details
Details for the file triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 50.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a9aecd6fa8b0beb798d16989bb24bc8a1ad61ded71526d6099d4179c428043
|
|
| MD5 |
e75bb45798c9b2ee9eb6427295fee979
|
|
| BLAKE2b-256 |
0901dafaeccae2cffddd7cf0c7abdeec650b430ecda8fb6ca349d29fea118a6f
|
File details
Details for the file triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 54.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35e0ef063e4ec917028adc7f21274fd8cd5fd948c2cd9922c526d6a0dabe31f9
|
|
| MD5 |
deee850564cd1a65ec25fbce9ebb36d4
|
|
| BLAKE2b-256 |
4f6893ad584424662939ab25359796d43e14618fbe52b039170682533c6dacbd
|
File details
Details for the file triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 50.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
430d4d30265fc8baa8ab75d09a6282002ce2ec2a7a82eb427cbf8521a7975795
|
|
| MD5 |
b5b314fe205d5757895922f4a78a3fbf
|
|
| BLAKE2b-256 |
05bc0e6df9e6431db0e78ef2580f1dd595939e7bf96b5a00e3ce37de25ebc6f2
|
File details
Details for the file triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 54.2 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff858efa9344a77b1e1a2b320bbe3e4b27c3b3705193bdbc962d648cffe92b2b
|
|
| MD5 |
f452acefb886395315734f1b3f1d4fd4
|
|
| BLAKE2b-256 |
98e5a949c464adb4a1251052bd0d747385cdff40e1b0e6cb796c62e1b53c62ee
|
File details
Details for the file triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 50.7 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8e85e0028a7b22468b5582c6b066e9543e5e8905c0d718748cabd7ed678d567
|
|
| MD5 |
90a1423594390baa7b4a77950ccb9681
|
|
| BLAKE2b-256 |
bac9f1e42a40246624baa1e9c699e7c78744a0d6bbedf61ebea898784af9c45f
|