Skip to main content

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.05.20 Triton-Ascend开源,Gitcode代码仓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 安装或编译

Triton Ascend还在频繁更新。为能使用最新功能特性,建议您拉取代码进行源码安装。详细安装步骤请参考 安装指南

  • Triton Ascend nightly包安装

我们为用户提供了每日更新的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 容器化部署

我们为开发者提供了成熟的容器使用,省去了从Dockerfile构建的繁琐步骤。详细使用步骤请参考 镜像指南

  • Triton Python API支持情况与约束

目前Triton Ascend已经使能了85%以上Triton社区官方提供的Python API,详细的功能支持情况(包括数据类型支持度、使用约束等)请参考 API 支持情况总览

  • Triton算子开发指南(入门级)

在昇腾平台上开发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算子自动寻优指南(入门级)

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

triton_ascend-3.2.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (50.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

triton_ascend-3.2.0rc3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (50.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

triton_ascend-3.2.0rc3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (50.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file triton_ascend-3.2.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for triton_ascend-3.2.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 139fe60a1c2345ce8a63f36997705118f0df5a9d992f3f373cb66ab661592ba5
MD5 ddd116c3251903d4701c30ef659ebf29
BLAKE2b-256 e32454b8d82414861237e1b3cc1c4e82ae8fc07a5b8a1205f1deeee72ef101c0

See more details on using hashes here.

File details

Details for the file triton_ascend-3.2.0rc3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for triton_ascend-3.2.0rc3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 44eefe87b4d12deb0c4d603165d1c9dc8274b77fb2437541f3e1842f84d97703
MD5 a4c273e5f6aea7e324434aa45ff3e4f7
BLAKE2b-256 4334ffeb9446b7c4d0c36ee829f6ad591d99f9ced174a0635ea2ce591d35ab78

See more details on using hashes here.

File details

Details for the file triton_ascend-3.2.0rc3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for triton_ascend-3.2.0rc3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d70d06b2c272738910bf2d9377fb77d977e9b7e5a24f51089cf03f9dc48ec57e
MD5 13181d23463b9fdb655f5f2f2742936a
BLAKE2b-256 134c325dcf06860d88c390cebdf3e18804968e277efe593c442a4efcf746c07d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page