triton-ascend:基于昇腾平台的Triton编译框架项目

triton-ascend

分支5Tags0
文件最后提交记录最后更新时间
Release Only - Enable pypi promotion for 3.2.x release (#5618) We are ready for release 3.2.x hence enable promotion to pypi1 年前
feat: TTIR Graph Analysis Framework Co-authored-by: Jin Jing<jinjing21@huawei.com> # message auto-generated for no-merge-commit merge: !1498 merge main into main feat: TTIR Graph Analysis Framework Created-by: jjin_750629 Commit-by: JinJing;Jin Jing Merged-by: huchengbei Description: feat: TTIR Graph Analysis Framework 在TA中增加了针对TTIR的图分析框架,主要是构建控制流图(Control Flow Graph)和数据流图(Data Flow Graph),并针对Tensor和Global Memory补充了Memory SSA的数据流,与TTIR中原有的SSA数据流合并为一套数据流引擎。 控制流图以基本块(BasicBlock)为节点、控制流转移为有向边,描述程序的执行顺序。在 MLIR 体系中,每个 FuncOp / tt.func 内部由若干 BasicBlock 构成,BasicBlock 内的操作顺序执行,BasicBlock 末尾为终结符操作(terminator op)决定后继跳转目标。在控制流图上提供深度优先遍历与广度优先遍历(DFS & BFS)。 过程间控制流图(ICFG)在单函数 CFG 基础上,引入跨 FuncOp 的调用边与返回边,构成全程序(全模块)的统一控制流视图。在 Triton 中,一个 module 往往包含多个 tt.func(device kernel + helper function) 别名图描述程序中每个指针/内存引用可能关联的抽象内存对象集合。在 Triton 中,这对应 tt.ptr 可能指向的设备内存块对应的Tensor对象 数据流图提供Value的definion和use关系的快速查询,综合了MemorySSA和SSA两种形式的数据流 See merge request: Ascend/triton-ascend!14981 个月前
fest(ci): add main pipeline Co-authored-by: zhaijiahao<982539404@qq.com> # message auto-generated for no-merge-commit merge: !1006 merge main into main fest(ci): add main pipeline Created-by: leopold0801 Commit-by: zhaijiahao Merged-by: ascend-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## checklist <!-- [x] 表示选中 --> - [ ] 是否通过本地IDE对代码进行静态检查 - [ ] 是否通过本地IDE对代码进行格式化处理 - [ ] 是否进行空指针校验 - [ ] 是否进行返回值校验 - [ ] 是否正确释放new/malloc申请的内存 - [ ] 是否充分考虑接口的异常场景 - [ ] 是否正确记录错误日志 See merge request: Ascend/triton-ascend!10065 个月前
fix(dockerfile) Fixed several bugs in the Dockerfile, corrected the download path for the official CANN package, and revised the usage documentation. Co-authored-by: xuweixin_<xuweixin2@huawei.com> # message auto-generated for no-merge-commit merge: !1350 merge dev_dockerfile into main fix(dockerfile) Fixed several bugs in the Dockerfile, corrected the download path for the official CANN package, and revised the usage documentation. Created-by: xuweixin_ Commit-by: xuweixin_ Merged-by: ascend-robot Description: Fixed several bugs in the Dockerfile corrected the download path for the official CANN package in Makefile KERNEL_URL := $(CANN_BASE_URL)/Ascend-cann-A3-ops_$(CANN_VERSION)_linux-$(ARCH).run ===> KERNEL_URL := $(CANN_BASE_URL)/Ascend-cann-$(CHIP_TYPE)-ops_$(CANN_VERSION)_linux-$(ARCH).run revised the usage documentation. add a command in docker run -v /usr/local/dcmi:/usr/local/dcmi \ See merge request: Ascend/triton-ascend!13502 个月前
docs(install): modify installation instruction docs 2 个月前
fix(copyright):Remove the Huawei copyright notices from the extension, runtime, libentry files and OpInterface.h. Co-authored-by: jeshd<chengmaofan@huawei.com> # message auto-generated for no-merge-commit merge: !1346 merge recover-community-copyright into main fix(copyright):Remove the Huawei copyright notices from the extension, runtime, libentry files and OpInterface.h. Created-by: jeshd Commit-by: jeshd Merged-by: ascend-robot Description: 描述 移除extension,runtime和libentry里的Huawei copyright,移除OpInterface.h里的Huawei copyright 修改原因 extension,runtime和libentry中的代码文件为TA新添加的文件,基于开源代码片段的修改,OpInterface.h从triton 3.4.0版本引入,移除对应的Huawei copyright See merge request: Ascend/triton-ascend!13462 个月前
fix(copyright):Remove the Huawei copyright notices from the extension, runtime, libentry files and OpInterface.h. Co-authored-by: jeshd<chengmaofan@huawei.com> # message auto-generated for no-merge-commit merge: !1346 merge recover-community-copyright into main fix(copyright):Remove the Huawei copyright notices from the extension, runtime, libentry files and OpInterface.h. Created-by: jeshd Commit-by: jeshd Merged-by: ascend-robot Description: 描述 移除extension,runtime和libentry里的Huawei copyright,移除OpInterface.h里的Huawei copyright 修改原因 extension,runtime和libentry中的代码文件为TA新添加的文件,基于开源代码片段的修改,OpInterface.h从triton 3.4.0版本引入,移除对应的Huawei copyright See merge request: Ascend/triton-ascend!13462 个月前
feat: Remove tanh op to align with the upstream, and add bf16 fallback to libdevice.tanh Co-authored-by: jeshd<chengmaofan@huawei.com> # message auto-generated for no-merge-commit merge: !1486 merge remove_tanh into main feat: Remove tanh op to align with the upstream, and add bf16 fallback to libdevice.tanh Created-by: jeshd Commit-by: jeshd Merged-by: ascend-robot Description: ### Summary This PR removes tanh from triton.language.math to keep the fork aligned with upstream, where math does not provide a tanh op, moves tanh usage to triton.language.extra.cann.libdevice.tanh and adds explicit bf16 handling in the libdevice implementation. To preserve existing user-facing behavior, tanh is now provided by triton.language.extra.cann.libdevice, while the call pattern remains unchanged. In other words, users can still write: ``` from triton.language.math import tanh ``` but the actual implementation is resolved to libdevice.tanh. ### Motivation Upstream Triton does not define tanh under triton.language.math. Keeping a fork-specific math.tanh introduces unnecessary divergence and increases maintenance cost. This change removes that divergence and keeps the frontend behavior compatible for existing callers. At the same time, bf16 tanh still needs a workable lowering path. This change makes the call sites explicit and adds a bf16 fallback that computes tanh in fp32 and casts the result back to bf16. ### What Changed Removed the tanh op from triton.language.math Removed the related builder-side path that depended on the old math.tanh implementation Switched the underlying implementation to triton.language.extra.cann.libdevice.tanh Kept the import and call style unchanged for users Extended libdevice.tanh to support bf16 by casting bf16 inputs to fp32, calling the existing fp32 tanh extern path, and casting the result back to bf16 Added tanh test coverage for fp16 and bf16 in addition to fp32 ### CheckList - [x] I am not making a trivial change, such as fixing a typo in a comment. - [x] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [x] I have run pre-commit run --from-ref origin/main --to-ref HEAD. - Select one of the following. - [ ] I have added tests. - /test for lit tests - /unittest for C++ tests - /python/test for end-to-end tests - [x] This PR does not need a test because corresponding test cases already exist. - Select one of the following. - [x] I have not added any lit tests. - [ ] The lit tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.) See merge request: Ascend/triton-ascend!14862 个月前
[cherrypick release/3.2][BACKEND] Fix accumulator init optimization for integer matmuls (#5192) (#5624) This fixes https://github.com/pytorch/pytorch/issues/144705 Co-authored-by: peterbell10 <peterbell10@openai.com>1 年前
[feat] 增加ubtuner Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> 1 个月前
Add LL::quotient and remove uses of divideRight and sublayoutIsIdentity (#4968) We add a new abstraction LL::quotient that abstracts the idea of "a linear layout does not permute certain dimensions". Doing so, allows us to remove divideRight and subsume them into this higher-level abstraction. We also fix a bug in isCrossCTAConversion. We also remove some code duplication from transferWithinThreads and cvtReorderRegisters in favour of a more generic approach. We fix a bug in sublayout that meant that sublayout would reorder outDims at will by using a set instead of a vector. I am missing adding tests for LL::quotient, will do in a minute.1 年前
[PUBLISHING] Enable nightlies on Azure DevOps (#1729) This reenables nightly builds and uploads them to a public AzDO, where you can use pip to install a specific version or the latest as normal. For example: `python -m pip install -i https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/Triton-Nightly/pypi/simple/ triton-nightly`2 年前
refactor(docs): Docs update 4 个月前
[CI][TEST] update pre-commit hooks and use pre-commit for style tests in CI (#1409) Ref issue: - #1408 Changes: - Add .editorconfig - Add pre-commit-hooks: ```yaml - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: check-symlinks - id: destroyed-symlinks - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-ast - id: check-added-large-files - id: check-merge-conflict - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: detect-private-key - id: debug-statements ``` - Add flake8 to pre-commit config and add .flake8 file - Use pre-commit for style tests in CI - Run pre-commit and fix existing violations: - fix trailing spaces - fix end-of-files - fix mod file mode with chmod -x - run autopep8 on existing code - fix flake8 violations3 年前
[BUILD] Disable W503 in flake8 config. (#2555) It seems that by default, flake8 warns on both "linebreak occurred before binary operator" (W503) and "linebreak occurred *after* binary operator" (W504). You...kind of have to pick one of these. :) According to the docs, W503 is deprecated, so we disable that one. https://www.flake8rules.com/rules/W503.html2 年前
Add .git-blame-ignore-revs. (#3117) I've been making some big NFC changes, and these can clog up `git blame`. Add a file that lists "uninteresting" revisions. You can (optionally!) instruct git to ignore the revs in here during blame. I got this list of commits by looking through the list of Triton commits that touch 30+ files. ChatGPT wrote the following bash script for me. git log --pretty=format:"%H" --name-only | \ awk -v N="30" ' /^[0-9a-f]{40}$/ { if (count > N) print hash; hash=$0; count=0; } NF { count++ } END { if (count > N) print hash } ' | xargs git show --stat2 年前
refactor(docs): Docs update 4 个月前
feat(compile): add npu-ir to submodule Co-authored-by: luobaiqing<luobaiqing1@huawei.com> # message auto-generated for no-merge-commit merge: !1085 merge submodule into main feat(compile): add npu-ir to submodule Created-by: luobaiqing Commit-by: luobaiqing Merged-by: ascend-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## checklist <!-- [x] 表示选中 --> - [ ] 是否通过本地IDE对代码进行静态检查 - [ ] 是否通过本地IDE对代码进行格式化处理 - [ ] 是否进行空指针校验 - [ ] 是否进行返回值校验 - [ ] 是否正确释放new/malloc申请的内存 - [ ] 是否充分考虑接口的异常场景 - [ ] 是否正确记录错误日志 See merge request: Ascend/triton-ascend!10854 个月前
Update pre-commit config (#4913) To fix the following warnings: ```bash Warning: hook id ruff uses deprecated stage names (commit, push) which will be removed in a future version. run: pre-commit migrate-config to automatically fix this. Warning: hook id yapf uses deprecated stage names (commit, push) which will be removed in a future version. run: pre-commit migrate-config to automatically fix this. Warning: hook id clang-format uses deprecated stage names (commit, push) which will be removed in a future version. run: pre-commit migrate-config to automatically fix this. ``` CI run, for example: https://github.com/triton-lang/triton/actions/runs/11346522167/job/31555782632#step:6:51 I just used pre-commit migrate-config command. Signed-off-by: Anatoly Myachev <anatoly.myachev@intel.com>1 年前
fix(docs): modify profiling Co-authored-by: HallCin<qinhao61@h-partners.com> # message auto-generated for no-merge-commit merge: !1241 merge br_main into main fix(docs): modify profiling Created-by: HallCin Commit-by: HallCin Merged-by: ascend-robot Description: The core Triton is a small number of people, and we receive many PRs (thank you!). To help us review your code more quickly, **if you are a new contributor (less than 3 PRs merged) we ask that you complete the following tasks and include the filled-out checklist in your PR description.** Complete the following tasks before sending your PR, and replace [ ] with [x] to indicate you have done them. - [ ] I am not making a trivial change, such as fixing a typo in a comment. - [ ] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [ ] I have run pre-commit run --from-ref origin/main --to-ref HEAD. - Select one of the following. - [ ] I have added tests. - /test for lit tests - /unittest for C++ tests - /python/test for end-to-end tests - [ ] This PR does not need a test because FILL THIS IN. - Select one of the following. - [ ] I have not added any lit tests. - [ ] The lit tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.) See merge request: Ascend/triton-ascend!12413 个月前
build(safe):Add safe compile opitions for libtriton.so libentryC.so Co-authored-by: wangzhanpeng5<wangzhanpeng5@huawei.com> # message auto-generated for no-merge-commit merge: !1535 merge 0402_main_safe_compile into main build(safe):Add safe compile opitions for libtriton.so libentryC.so Created-by: wangzhanpeng5 Commit-by: wangzhanpeng5 Merged-by: ascend-robot Description: To comply with the secure compilation option specificationsBIND_NOW, Strip. Add safe compilation options for libtriton.so and libentryC.so. See merge request: Ascend/triton-ascend!15352 个月前
This change adds English version of the documentation Co-authored-by: tsczajkowski<tomasz.czajkowski@huawei.com> # message auto-generated for no-merge-commit merge: !1246 merge feature-english-documentation into main This change adds English version of the documentation Created-by: tsczajkowski_2025 Commit-by: tsczajkowski Merged-by: ascend-robot Description: The core Triton is a small number of people, and we receive many PRs (thank you!). To help us review your code more quickly, **if you are a new contributor (less than 3 PRs merged) we ask that you complete the following tasks and include the filled-out checklist in your PR description.** Complete the following tasks before sending your PR, and replace [ ] with [x] to indicate you have done them. - [x] I am not making a trivial change, such as fixing a typo in a comment. - [x] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [x] I have run pre-commit run --from-ref origin/main --to-ref HEAD. - Select one of the following. - [ ] I have added tests. - /test for lit tests - /unittest for C++ tests - /python/test for end-to-end tests - [x] This PR does not need a test because this PR deals with documentation only. - Select one of the following. - [X] I have not added any lit tests. - [ ] The lit tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.) See merge request: Ascend/triton-ascend!12463 个月前
This change adds English version of the documentation Co-authored-by: tsczajkowski<tomasz.czajkowski@huawei.com> # message auto-generated for no-merge-commit merge: !1246 merge feature-english-documentation into main This change adds English version of the documentation Created-by: tsczajkowski_2025 Commit-by: tsczajkowski Merged-by: ascend-robot Description: The core Triton is a small number of people, and we receive many PRs (thank you!). To help us review your code more quickly, **if you are a new contributor (less than 3 PRs merged) we ask that you complete the following tasks and include the filled-out checklist in your PR description.** Complete the following tasks before sending your PR, and replace [ ] with [x] to indicate you have done them. - [x] I am not making a trivial change, such as fixing a typo in a comment. - [x] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [x] I have run pre-commit run --from-ref origin/main --to-ref HEAD. - Select one of the following. - [ ] I have added tests. - /test for lit tests - /unittest for C++ tests - /python/test for end-to-end tests - [x] This PR does not need a test because this PR deals with documentation only. - Select one of the following. - [X] I have not added any lit tests. - [ ] The lit tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.) See merge request: Ascend/triton-ascend!12463 个月前
feat(docs): migrate documents from master branch Co-authored-by: zhang-chunli01<zhangchunli19@huawei.com> # message auto-generated for no-merge-commit merge: !1074 merge migrate-docs into main feat(docs): migrate documents from master branch Created-by: zhang-chunli01 Commit-by: zhang-chunli01 Merged-by: ascend-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## checklist <!-- [x] 表示选中 --> - [ ] 是否通过本地IDE对代码进行静态检查 - [ ] 是否通过本地IDE对代码进行格式化处理 - [ ] 是否进行空指针校验 - [ ] 是否进行返回值校验 - [ ] 是否正确释放new/malloc申请的内存 - [ ] 是否充分考虑接口的异常场景 - [ ] 是否正确记录错误日志 See merge request: Ascend/triton-ascend!10744 个月前
test: move mindspore cases to generalization Co-authored-by: candyhong<1102229410@qq.com> # message auto-generated for no-merge-commit merge: !1453 merge main/fix-test-case into main test: move mindspore cases to generalization Created-by: candyhong Commit-by: candyhong Merged-by: ascend-robot Description: ## Summary 1. Move MindSpore test cases from pytest_ut to generalization_cases to improve CI execution efficiency. 2. Adjust the tolerance threshold for matmul in test_sync_block to 3e-2, which falls within an acceptable accuracy range. 3. Temporarily disable kernel test cases in CI due to intermittent RuntimeError issues affecting stability; tests will be re-enabled after fixes are applied. ## CheckList - [x] I am not making a trivial change, such as fixing a typo in a comment. - [x] I have written a PR description following these [rules](https://cbea.ms/git-commit/#why-not-how). - [x] I have run pre-commit run --from-ref origin/main --to-ref HEAD. - Select one of the following. - [ ] I have added tests. - /test for lit tests - /unittest for C++ tests - /python/test for end-to-end tests - [x] This PR does not need a test because FILL THIS IN. - Select one of the following. - [x] I have not added any lit tests. - [ ] The lit tests I have added follow these [best practices](https://mlir.llvm.org/getting_started/TestingGuide/#filecheck-best-practices), including the "tests should be minimal" section. (Usually running Python code and using the instructions it generates is not minimal.) See merge request: Ascend/triton-ascend!14532 个月前
docs(install): modify installation instruction docs 2 个月前
docs(install): modify installation instruction docs 2 个月前
docs(safe) : add public IP address statement Co-authored-by: gymgit1<guoyiming17@huawei.com> # message auto-generated for no-merge-commit merge: !1468 merge safe into main docs(safe) : add public IP address statement Created-by: gymgit1 Commit-by: gymgit1 Merged-by: ascend-robot Description: 安全检查时发现代码中存在两个链接: https://llvm.org/LICENSE.txt https://netlib.org/cephes/ 未在SECURITYNOTE.md、SECURITYNOTE_zh.md中声明 See merge request: Ascend/triton-ascend!14682 个月前
docs(safe) : add public IP address statement Co-authored-by: gymgit1<guoyiming17@huawei.com> # message auto-generated for no-merge-commit merge: !1468 merge safe into main docs(safe) : add public IP address statement Created-by: gymgit1 Commit-by: gymgit1 Merged-by: ascend-robot Description: 安全检查时发现代码中存在两个链接: https://llvm.org/LICENSE.txt https://netlib.org/cephes/ 未在SECURITYNOTE.md、SECURITYNOTE_zh.md中声明 See merge request: Ascend/triton-ascend!14682 个月前
Reformat Python code with yapf. (#2589) I've add an option to yapf to do what we want for long lines, see https://github.com/google/yapf/pull/1177. We can now have a real Python formatter, yay! To make this PR, I ran my modified yapf over the repository, then looked over the full diff. Where yapf was mangling the param list of long function decls/calls (mostly kernels), I manually added # to put linebreaks where we want. I fixed up other formatting too -- mostly adding or removing a trailing comma from lists. Overall, trailing # was sufficient to get formatting similar to our current code. I didn't have to disable yapf anywhere. --------- Co-authored-by: Phil Tillet <phil@openai.com>2 年前
fix(docs): Improve install-deploy-readme jump configuration, add Docker parameter description and format adaptation Co-authored-by: xuweixin<xuweixin2@huawei.com> # message auto-generated for no-merge-commit merge: !1244 merge dev_DockerCannOptionAndInstallGuide into main fix(docs): Improve install-deploy-readme jump configuration, add Docker parameter description and format adaptation Created-by: xuweixin_ Commit-by: xuweixin Merged-by: ascend-robot Description: 1、Add CANN version selection for Docker-based installation; 2、update installation and usage instructions, adding quick installation and Docker-based installation methods; 3、correct the numpy version in requirements to 1.26.4 See merge request: Ascend/triton-ascend!12443 个月前
fix(package):add dependency Co-authored-by: zhaijiahao<982539404@qq.com> # message auto-generated for no-merge-commit merge: !1051 merge main into main fix(package):add dependency Created-by: leopold0801 Commit-by: zhaijiahao Merged-by: ascend-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## checklist <!-- [x] 表示选中 --> - [ ] 是否通过本地IDE对代码进行静态检查 - [ ] 是否通过本地IDE对代码进行格式化处理 - [ ] 是否进行空指针校验 - [ ] 是否进行返回值校验 - [ ] 是否正确释放new/malloc申请的内存 - [ ] 是否充分考虑接口的异常场景 - [ ] 是否正确记录错误日志 See merge request: Ascend/triton-ascend!10514 个月前
build(safe):Add safe compile opitions for libtriton.so libentryC.so Co-authored-by: wangzhanpeng5<wangzhanpeng5@huawei.com> # message auto-generated for no-merge-commit merge: !1535 merge 0402_main_safe_compile into main build(safe):Add safe compile opitions for libtriton.so libentryC.so Created-by: wangzhanpeng5 Commit-by: wangzhanpeng5 Merged-by: ascend-robot Description: To comply with the secure compilation option specificationsBIND_NOW, Strip. Add safe compilation options for libtriton.so and libentryC.so. See merge request: Ascend/triton-ascend!15352 个月前
fest(ci): add main pipeline Co-authored-by: zhaijiahao<982539404@qq.com> # message auto-generated for no-merge-commit merge: !1006 merge main into main fest(ci): add main pipeline Created-by: leopold0801 Commit-by: zhaijiahao Merged-by: ascend-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## checklist <!-- [x] 表示选中 --> - [ ] 是否通过本地IDE对代码进行静态检查 - [ ] 是否通过本地IDE对代码进行格式化处理 - [ ] 是否进行空指针校验 - [ ] 是否进行返回值校验 - [ ] 是否正确释放new/malloc申请的内存 - [ ] 是否充分考虑接口的异常场景 - [ ] 是否正确记录错误日志 See merge request: Ascend/triton-ascend!10065 个月前

Triton-Ascend

项目简介与价值主张

Triton-Ascend是面向昇腾平台构建的Triton编译框架,旨在让Triton代码能够在昇腾硬件上高效运行。

  • 核心价值说明

Triton是近几年来受到开发者青睐的Python化编译框架。开发者仅需关注Tile/Block的切分方式以及基于Tile/Block的运算逻辑,编译器将在Triton代码的编译过程中结合底层硬件特点自动完成内存分配、数据搬运、数据计算、流水并行等,因此,算子的开发难度大幅降低、开发效率显著提升。 Triton-Ascend将Triton编译栈适配到华为昇腾NPU上,在Triton的基础上提供一系列针对性的优化,使Triton代码能够编译后在昇腾硬件上高效运行。 目前,Triton-Ascend仍在持续完善中,我们将不断提升Triton Python API完备度、数据类型支持度、访存方式灵活性等,并持续优化编译器的自动优化能力,提升Triton-Ascend整体的功能与性能泛化性。

  • 昇腾生态定位

Triton-Ascend编译框架打通了Triton与昇腾硬件之间的壁垒,使熟悉Triton框架的开发者可以更有效率地使用昇腾NPU。它通过提供通用、高效的算子开发范式,为昇腾软件栈补齐了敏捷开发的关键一环,极大丰富了昇腾的算子库和上层应用生态。

最新动态与里程碑

  • 近期版本更新

当前版本:Triton-Ascend 3.2.0
配套CANN版本:昇腾CANN社区版8.5.0
2026年版本计划:升级triton版本到triton3.5

  • 里程碑

里程碑 重要特性更新情况 状态
2026.04 Triton-Ascend 3.2.0 post版本上线
2026.01.20 Triton-Ascend 3.2.0 正式版本上线
2025.11.14 Triton-Ascend 3.2.0rc4预发布版本上线:
扩展 tt.fp_to_fp 接口,新增对 FP8的类型转换支持
新增 scatter_ub_to_out 接口,支持从UB到GM的高效数据分散操作
2025.09.30 完善Scan/Sort类Triton Python API,支持非连续访存,完成vLLM、sglang开源仓中重点Triton算子适配
2025.09.19 支持Triton-Ascend nightly包提取
2025.08.15 完善Atomic类Triton Python API支持,完成Flaggems开源仓重点Triton算子适配,提供Matmul等简单算子高性能实现参考用例
2025.06.30 支持85% Triton Python API,支持连续访存,覆盖基本使用场景需求
2025.05.20 Triton-Ascend开源,Gitcode代码仓Alive!
  • 社区活动信息

  1. 会议日历
  2. 会议纪要看板

性能

GroupGEMM 算子性能

选取GroupGEMM算子作为示例。展示Triton-AscendAscendC的性能对比。

GroupGEMM Performance
  • Y轴为加速比(Speedup= AscendC_Duration_Time / Triton_Duration_Time)
  • 使用硬件为Ascend 950系列
  • 算子性能优化请参考算子调优指南

支持范围

  • 硬件支持

Triton-Ascend 在昇腾 AI 产品支持使用,具体型号如下:

产品系列 产品型号
Atlas A3 训练系列产品 Atlas 800T A3 超节点服务器
Atlas 900 A3 SuperPoD 超节点
A200T A3 Box8 超节点服务器
Atlas A3 推理系列产品 Atlas 800I A3 超节点服务器
Atlas A2 训练系列产品 Atlas 800T A2 训练服务器
Atlas 900 A2 PoD 集群基础单元
Atlas 200T A2 Box16 异构子框
Atlas A2 推理系列产品 Atlas 800I A2 推理服务器
Atlas 300I A2 推理卡
A200I A2 Box 异构组件
  • 兼容性

支持操作系统: Triton-Ascend 所支持的操作系统与 CANN 一致。请参考 CANN 官方文档,下载并安装适用于您操作系统的 CANN 版本。

CANN版本:

  • 商用版
Triton-Ascend版本 CANN商用版本 CANN发布日期
3.2.0 CANN 8.5.0 2026/01/16
3.2.0rc4 CANN 8.3.RC2
CANN 8.3.RC1
2025/11/20
2025/10/30
  • 社区版
Triton-Ascend版本 CANN社区版本 CANN发布日期
3.2.0 CANN 8.5.0 2026/01/16
3.2.0rc4 CANN 8.3.RC2
CANN 8.5.0.alpha001
CANN 8.3.RC1
2025/11/20
2025/11/12
2025/10/30

入门指引

常见问题

在使用Triton-Ascend时遇到的常见问题,详见 FAQ

安全声明

我们重视开发者在使用Triton-Ascend时的信息安全,安全防护建议与相关信息请见 安全声明

许可证信息

本项目代码与文档均采用 MIT许可证

社区与贡献

欢迎参与Triton-Ascend的开发及代码贡献,详情请参阅 贡献指南