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.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


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.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (54.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

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

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

triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (54.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

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

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

triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (54.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (50.7 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.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17c8d7161eed1e96a286281963fe04d3113ee85affaa5d82c7dd0c35803962f0
MD5 055b39686bea37e5318bc41a2015266c
BLAKE2b-256 7ff3d4e6ddbaf6f07b72ceb29f0f739c4c8fba2ff476eac07aeb7ae6f654fce0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for triton_ascend-3.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 69a9aecd6fa8b0beb798d16989bb24bc8a1ad61ded71526d6099d4179c428043
MD5 e75bb45798c9b2ee9eb6427295fee979
BLAKE2b-256 0901dafaeccae2cffddd7cf0c7abdeec650b430ecda8fb6ca349d29fea118a6f

See more details on using hashes here.

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

File hashes

Hashes for triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 35e0ef063e4ec917028adc7f21274fd8cd5fd948c2cd9922c526d6a0dabe31f9
MD5 deee850564cd1a65ec25fbce9ebb36d4
BLAKE2b-256 4f6893ad584424662939ab25359796d43e14618fbe52b039170682533c6dacbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for triton_ascend-3.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 430d4d30265fc8baa8ab75d09a6282002ce2ec2a7a82eb427cbf8521a7975795
MD5 b5b314fe205d5757895922f4a78a3fbf
BLAKE2b-256 05bc0e6df9e6431db0e78ef2580f1dd595939e7bf96b5a00e3ce37de25ebc6f2

See more details on using hashes here.

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

File hashes

Hashes for triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff858efa9344a77b1e1a2b320bbe3e4b27c3b3705193bdbc962d648cffe92b2b
MD5 f452acefb886395315734f1b3f1d4fd4
BLAKE2b-256 98e5a949c464adb4a1251052bd0d747385cdff40e1b0e6cb796c62e1b53c62ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for triton_ascend-3.2.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b8e85e0028a7b22468b5582c6b066e9543e5e8905c0d718748cabd7ed678d567
MD5 90a1423594390baa7b4a77950ccb9681
BLAKE2b-256 bac9f1e42a40246624baa1e9c699e7c78744a0d6bbedf61ebea898784af9c45f

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