| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Co-authored-by: zhusongxiang<zhusongxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !1142 merge zsx/launch1 into master Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Created-by: weixin_42818618 Commit-by: zhusongxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 引入 JitCompiledFunction、JitModule、JitExecutor 三个JIT 执行类。 - tla.compile() 返回 JitCompiledFunction,统一使用显式编译和 Launch。 - 重复 Launch 复用默认 Executor 及 binary/function handle。 - Executor 绑定当前 NPU Context;未传入 stream 时,每次获取当前 stream。 - 编译缓存保存设备无关的编译状态,并为每次显式编译创建独立的JitCompiledFunction。 - 移除旧的 Artifact、KernelLauncher(用于隐式编译)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1142 | 17 天前 | |
fix(dsl): bc 编译开启 LLVM 优化以内联 AscendC 小函数 Co-authored-by: CheaterAbec<niyuhao2@huawei.com> # message auto-generated for no-merge-commit merge: !1197 merge fix/bc-inline-ascendc-helpers into master fix(dsl): bc 编译开启 LLVM 优化以内联 AscendC 小函数 Created-by: CheaterAbec Commit-by: CheaterAbec Merged-by: cann-robot Description: ## 描述 bc stub 编译去掉 -mllvm -disable-llvm-optzns,保留 -O2,让 AscendC 的 GetPhyType / Params 构造等非 alwaysinline 小函数在编入 meta_op.*.bc 时内联进 _mlir_ciface_* stub。 hivmc 链接阶段仍会带 -Xclang -disable-llvm-optzns,若 bc 阶段未内联,最终 aicore kernel.o 会残留独立符号与 CALL,不满足调优工具「Device 侧函数需 inline」要求。 ## 关联的Issue 无 ## 原因 根因是 python/tla_dsl/csrc/mlir/bc/CMakeLists.txt 显式关闭 LLVM optzns,导致 linkonce_odr 且无 alwaysinline 的 AscendC helper 以 out-of-line 形式进入 bitcode;hivmc 之后无法再内联。 ## 测试 - 手动以 -O2(无 disable-llvm-optzns)重建 meta_op.aic.c310.bc:GetPhyType call/def 均为 0 - 用同份 lowered IR + 新旧 bc 经 hivmc-a5 链接后反汇编对比:旧 kernel.o 仍有 AscendC::GetPhyType / Params 构造符号;新产物上述符号消失 ## 文档更新 无(CMake 注释已说明原因) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1197 | 16 天前 | |
Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Co-authored-by: zhusongxiang<zhusongxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !1142 merge zsx/launch1 into master Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Created-by: weixin_42818618 Commit-by: zhusongxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 引入 JitCompiledFunction、JitModule、JitExecutor 三个JIT 执行类。 - tla.compile() 返回 JitCompiledFunction,统一使用显式编译和 Launch。 - 重复 Launch 复用默认 Executor 及 binary/function handle。 - Executor 绑定当前 NPU Context;未传入 stream 时,每次获取当前 stream。 - 编译缓存保存设备无关的编译状态,并为每次显式编译创建独立的JitCompiledFunction。 - 移除旧的 Artifact、KernelLauncher(用于隐式编译)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1142 | 17 天前 | |
Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Co-authored-by: zhusongxiang<zhusongxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !1142 merge zsx/launch1 into master Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Created-by: weixin_42818618 Commit-by: zhusongxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 引入 JitCompiledFunction、JitModule、JitExecutor 三个JIT 执行类。 - tla.compile() 返回 JitCompiledFunction,统一使用显式编译和 Launch。 - 重复 Launch 复用默认 Executor 及 binary/function handle。 - Executor 绑定当前 NPU Context;未传入 stream 时,每次获取当前 stream。 - 编译缓存保存设备无关的编译状态,并为每次显式编译创建独立的JitCompiledFunction。 - 移除旧的 Artifact、KernelLauncher(用于隐式编译)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1142 | 17 天前 | |
Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Co-authored-by: zhusongxiang<zhusongxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !1142 merge zsx/launch1 into master Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Created-by: weixin_42818618 Commit-by: zhusongxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 引入 JitCompiledFunction、JitModule、JitExecutor 三个JIT 执行类。 - tla.compile() 返回 JitCompiledFunction,统一使用显式编译和 Launch。 - 重复 Launch 复用默认 Executor 及 binary/function handle。 - Executor 绑定当前 NPU Context;未传入 stream 时,每次获取当前 stream。 - 编译缓存保存设备无关的编译状态,并为每次显式编译创建独立的JitCompiledFunction。 - 移除旧的 Artifact、KernelLauncher(用于隐式编译)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1142 | 17 天前 | |
Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Co-authored-by: zhusongxiang<zhusongxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !1142 merge zsx/launch1 into master Refactor TLA JIT Execution Architecture and Optimize Repeated Launches Created-by: weixin_42818618 Commit-by: zhusongxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 引入 JitCompiledFunction、JitModule、JitExecutor 三个JIT 执行类。 - tla.compile() 返回 JitCompiledFunction,统一使用显式编译和 Launch。 - 重复 Launch 复用默认 Executor 及 binary/function handle。 - Executor 绑定当前 NPU Context;未传入 stream 时,每次获取当前 stream。 - 编译缓存保存设备无关的编译状态,并为每次显式编译创建独立的JitCompiledFunction。 - 移除旧的 Artifact、KernelLauncher(用于隐式编译)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1142 | 17 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
docs: 新增 Host API 参考并按源码生成英文稿 Co-authored-by: CheaterAbec<niyuhao2@huawei.com> # message auto-generated for no-merge-commit merge: !1130 merge dsl into master docs: 新增 Host API 参考并按源码生成英文稿 Created-by: CheaterAbec Commit-by: CheaterAbec Merged-by: cann-robot Description: ## 描述 新增 TLA DSL **Host API** 中英文参考文档,并按源码英文 docstring( Directory: + Description / Parameters / Constraints / Example)用 AST 生成英文稿。 主要改动: - 新增 docs/zh/api/host_api_reference.md(手工维护)与 docs/en/api/host_api_reference.md(自动生成) - 将 API 文档生成拆分为 tools/common.py + generate_kernel_api_reference.py + generate_host_api_reference.py(替换原单体 generate_api_reference.py) - Host 源码 docstring 收口公开面:@tla.kernel、tla.compile、TlaJitExecutor.launch / KernelLauncher.launch、dump_mlir、from_dlpack / make_fake_tensor、动态 layout 标记、@dataclass 入参约束等 - 章节按 Compile / Launch / Inspect 组织;同步更新 docs/zh/api/generate_api_docs.md 与中英文索引 - 已 rebase 到最新 master(适配 docs 框架重构后的 docs/*/api/ 路径),并按 stat/needs-squash 压成单提交 ## 关联的Issue 无 ## 原因 补齐 Host 侧公开 API 文档,使参考文档与源码 docstring 同源生成,避免手写漂移;与上游 DSL 文档框架对齐。 ## 测试 - python tools/generate_host_api_reference.py --check - python tools/generate_kernel_api_reference.py --check - pytest python/tla_dsl/tests/test_api_reference_generation.py ## 文档更新 - python/tla_dsl/docs/{zh,en}/api/host_api_reference.md - python/tla_dsl/docs/zh/api/generate_api_docs.md、docs/{zh,en}/index.md、docs/zh/api/index.md - 重新生成 docs/en/api/kernel_api_reference.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1130 | 18 天前 | |
fix: fix issues about DSL release build Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge dsl_release_fix into master fix: fix issues about DSL release build Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 改动 - **build.sh**:release 分支构建前预清理复用的 CMake 指纹目录( build/cmake、build/lib.*),避免缓存失效的 ninja 路径。 - **setup.py**:dev(inplace)产物留在 CMake build 树、不写源码树、无软链接;release 将 so(扩展模块通道)与 bc(数据文件通道)复制进 wheel 暂存目录;_install() 统一复制逻辑,移除全部 is_symlink 软链接逻辑。 - **catlass/execution.py**:_mlir_build_dirs() 按「CMake build 树 → 包内 catlass/lib」顺序解析运行时产物,dev 直取 build 树、release 用包内。 - **csrc/mlir/CMakeLists.txt**:显式注入 mlir_core 到 PYTHONPATH 探测 libMLIRPythonCAPI.so(pip 26 构建隔离清空 PYTHONPATH)。 - **pyproject.toml**:新增 [tool.setuptools.package-data] 显式声明 catlass/lib/bc/**/*.bc。 - **TlaCompile 不打包**:128MB 二进制仅用于测试/lit(直接引用构建树),release wheel 不携带,运行时降级可回退 PATH。 另外,将一些注释修改为英文版。 ## 验证 - dev 构建成功,so/bc/TlaCompile 软链接就位; - pytest 全量:1497 passed, 7 skipped, 0 failed; - lit 测试:125/125 通过; - release wheel 内容完整(so、22 个 bc、TlaCompile),无工程路径泄漏。 See merge request: cann/catlass!1152 | 23 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
fix: fix issues about DSL release build Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge dsl_release_fix into master fix: fix issues about DSL release build Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 改动 - **build.sh**:release 分支构建前预清理复用的 CMake 指纹目录( build/cmake、build/lib.*),避免缓存失效的 ninja 路径。 - **setup.py**:dev(inplace)产物留在 CMake build 树、不写源码树、无软链接;release 将 so(扩展模块通道)与 bc(数据文件通道)复制进 wheel 暂存目录;_install() 统一复制逻辑,移除全部 is_symlink 软链接逻辑。 - **catlass/execution.py**:_mlir_build_dirs() 按「CMake build 树 → 包内 catlass/lib」顺序解析运行时产物,dev 直取 build 树、release 用包内。 - **csrc/mlir/CMakeLists.txt**:显式注入 mlir_core 到 PYTHONPATH 探测 libMLIRPythonCAPI.so(pip 26 构建隔离清空 PYTHONPATH)。 - **pyproject.toml**:新增 [tool.setuptools.package-data] 显式声明 catlass/lib/bc/**/*.bc。 - **TlaCompile 不打包**:128MB 二进制仅用于测试/lit(直接引用构建树),release wheel 不携带,运行时降级可回退 PATH。 另外,将一些注释修改为英文版。 ## 验证 - dev 构建成功,so/bc/TlaCompile 软链接就位; - pytest 全量:1497 passed, 7 skipped, 0 failed; - lit 测试:125/125 通过; - release wheel 内容完整(so、22 个 bc、TlaCompile),无工程路径泄漏。 See merge request: cann/catlass!1152 | 23 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
CATLASS_DSL代码迁移 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: yuantao_<yuantao313@outlook.com> Co-authored-by: WinstonSmith<yukainan1@huawei.com> Co-authored-by: zjw666888<zhoujianwei4@huawei.com> Co-authored-by: weixin_42818618<zhusongxiang1@huawei.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: arusso<alessio.russo@h-partners.com> Co-authored-by: tianxinghui<tianxinghui@huawei.com> Co-authored-by: mdrumond<mario.paulo.oliveira@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master CATLASS_DSL代码迁移 Created-by: CheaterAbec Commit-by: CheaterAbec;yjp-hw;cann-robot;init__zhb__;zjw666888;yuantao_;tianxinghui;mdrumond;liyuanqiang;longjihui;arusso;weixin_42818618;wmg1;llqx-1;oscillated;lijiaming_hw;WinstonSmith;yuantao Merged-by: cann-robot Description: ## 描述 将 **cann/catlass dsl 分支**上的 TLA DSL(python/tla_dsl 及相关配套)合入 **master**,使 master 具备可构建、可运行的 Python TLA DSL 能力,同时保证仓根 C++ 头文件与当前 master 一致、不引入额外 include/ 改动。 ### 迁移起点 - **源分支**:cann/catlass 的 dsl 分支 - **源 tip(迁移起点)**:38128c8ce076b2ec9132d1cc10495e2852906715 - subject:文档内容低错整改与优化润色 - **目标基线**:合入时的 master tip 3dc2547f4762a0526da687a4498a74e195dfe2e2 - subject:feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization - **分叉点(merge-base)**:cc8edbd2122d5b71ccb45e9052ae8b8303b6131d - 自 merge-base 起,dsl 相对 master 约有 **192** 个独有提交;本 PR 以 rebase 方式重放这些提交(保留原作者),再叠一层公开树收口。 ### 迁移做法 1. 以 dsl tip 38128c8c 为源,将其相对 merge-base 的提交 **rebase** 到当时最新 master(3dc2547f),保留原 commit 作者信息。 2. 冲突处理策略: - **python/tla_dsl/****:保留 DSL 侧改动; - **非 python/tla_dsl 路径**(如 .gitignore / pre-commit / 仓根 docs / 仓根测试脚本、以及仓根 include/ 等):**一律以 master 为准**; - 因此本 PR **不携带** 相对 master 的仓根 include/ diff(L0C→UB ColumnMajor 等 C++ tile 特化已在 master,例如 !1124)。 3. DSL 侧额外保留端到端回归入口:tests/dsl_battery、tests/run_dsl_test.sh,以及必要的 .gitmodules。 4. 相对 dsl 做公开树收口(见下节「相比 dsl 的删减」),避免未就绪样例与全量单测树进入 master。 ### 相比 dsl 分支的删减 相对迁移起点 38128c8c,本 PR **额外删除 / 不带入** 以下内容: 1. **整棵** python/tla_dsl/tests/(含 pytest 与 lit),公开树不再提供全量单测 / lit 入口。 2. **未就绪或不完整的 e2e 样例**(python/tla_dsl/examples/end_to_end/ 下): - 无 README:dataclass_arg、lazy_conditions、scalar_arg_alignment、simt、tensor_index - 仅英文 README:cross_flag_two_way、debug_print、print_tensor - BSA:block_sparse_attention 3. 同步裁剪 tests/dsl_battery、tests/run_dsl_test.sh 以及 python/tla_dsl 文档 / README / pyproject.toml 中对上述测试与样例的入口说明。 **仍保留的 e2e**:basic_mixed、basic_mmad、basic_mmad_evg、basic_mmad_streamk、basic_vadd、batched_matmul、flash_attention_infer、grouped_matmul_slice_m、multi_core_splitk_matmul、vector_ops,以及共享目录 common。 ## 关联的Issue 无。 ## 原因 dsl 分支长期承载 TLA DSL 开发,需将其合入 master,便于主线使用与后续演进;合入时要求: - 保留 DSL 提交历史与作者; - 不扰动已在 master 落地的仓根 C++ / tile 特化; - 公开树只带可对外展示的 DSL 能力与中文 README 样例,去掉全量单测树与未就绪样例,降低主线噪音与维护面。 类型上属于「将 dsl 上的 TLA DSL 能力迁移合入 master」,并附带文档与样例收口。 ## 测试 本地环境:CANN 9.1.0-B070 + AscendNPU-IR,conda ascend-catlass-dsl。 - [x] python/tla_dsl:./build.sh --clean 通过 - [x] 公开树 e2e:仓根 tests/run_dsl_test.sh --device 5 → **156 passed** - [x] 确认相对合入基线 master:git diff <master-tip> -- include/ 为空 - [x] (基于 dsl 完整测试树的本地验证,不进入本 PR 公开树)pytest:**1479 passed, 7 skipped**;lit:**122 passed** ## 文档更新 - 更新 / 收敛 python/tla_dsl 侧 README、开发指南与相关文档中的测试 / 样例入口(去掉已删除的 pytest/lit 与下架 e2e 引用)。 - 保留并继续引用仍在树内的样例(如 vector_ops 等)。 - **未**改动仓根 AGENTS.md、仓根默认 build.sh / CI 对 tests/ 的策略说明(DSL 构建走 python/tla_dsl/build.sh)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:将 dsl 分支 TLA DSL 以 rebase 方式合入 master,并相对 dsl 删减公开树单测与未就绪 e2e See merge request: cann/catlass!1122 | 25 天前 | |
fix: fix issues about DSL release build Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge dsl_release_fix into master fix: fix issues about DSL release build Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 改动 - **build.sh**:release 分支构建前预清理复用的 CMake 指纹目录( build/cmake、build/lib.*),避免缓存失效的 ninja 路径。 - **setup.py**:dev(inplace)产物留在 CMake build 树、不写源码树、无软链接;release 将 so(扩展模块通道)与 bc(数据文件通道)复制进 wheel 暂存目录;_install() 统一复制逻辑,移除全部 is_symlink 软链接逻辑。 - **catlass/execution.py**:_mlir_build_dirs() 按「CMake build 树 → 包内 catlass/lib」顺序解析运行时产物,dev 直取 build 树、release 用包内。 - **csrc/mlir/CMakeLists.txt**:显式注入 mlir_core 到 PYTHONPATH 探测 libMLIRPythonCAPI.so(pip 26 构建隔离清空 PYTHONPATH)。 - **pyproject.toml**:新增 [tool.setuptools.package-data] 显式声明 catlass/lib/bc/**/*.bc。 - **TlaCompile 不打包**:128MB 二进制仅用于测试/lit(直接引用构建树),release wheel 不携带,运行时降级可回退 PATH。 另外,将一些注释修改为英文版。 ## 验证 - dev 构建成功,so/bc/TlaCompile 软链接就位; - pytest 全量:1497 passed, 7 skipped, 0 failed; - lit 测试:125/125 通过; - release wheel 内容完整(so、22 个 bc、TlaCompile),无工程路径泄漏。 See merge request: cann/catlass!1152 | 23 天前 |
CATLASS DSL
CATLASS DSL 是 CATLASS 的 Python 前端。它在 AscendNPU-IR 的基础上构建 TLA Dialect,将 Python 中描述的 TLA 操作降级为 MLIR,并由 AscendNPU-IR 工具链编译为可执行的核函数产物。
目前,CATLASS DSL 主要对 TLA 框架提供了DSL封装,可以使用tla.make_tensor等API来描述TLA操作,完成算子的实现。未来,我们将继续扩展CATLASS DSL,在全量支持TLA tensor抽象接口、矩阵向量计算等接口的基础之上,进行类似CATLASS 模板的封装,实现对齐CATLASS C++模板算子的开发体验。
文档
- 环境准备:环境要求及安装入口。
- 编译与测试:构建、pytest、lit 和端到端用例。
- Host API 参考:Host 侧
@tla.kernel、tla.compile/ 启动、Host tensor。 - Kernel API 参考:Kernel 侧 Core API。
- API 文档生成:从源码 docstring 重新生成英文 API 参考。
- AscendNPU-IR 构建:手动构建AscendNPU-IR。
- 手动 CMake 构建:直接配置
csrc/mlir的进阶用法。
快速开始
安装 CATLASS DSL 并运行首个算子示例,请参阅快速开始。
兼容性
CATLASS DSL 各版本支持的硬件平台及所需的最低 CANN 版本如下表:
| CATLASS DSL 版本 | 最低支持 CANN 包版本 | 支持昇腾产品 |
|---|---|---|
| 当前 | >= 9.1.0 |
Ascend 950PR / Ascend 950DT |
软硬件环境要求:
- CPU 架构:
aarch64/x86_64 - 系统:CANN 支持的 Linux
- 软件依赖:Python
>= 3.10, < 3.14、CMake>= 3.28, < 4.0、Ninja>= 1.12、Clang / Clang++>= 10(构建 AscendNPU-IR 时;推荐 19)、lld、lit、FileCheck 与 LLVM 配套、AscendNPU-IRfeature/regbase@a07821269…
完整的环境要求与安装方式见环境准备。
目录概览
python/tla_dsl/
├── 3rdparty/AscendNPU-IR/ # AscendNPU-IR 子模块
├── catlass/ # Python 前端与运行时
├── csrc/mlir/ # TLA Dialect 与编译器实现
├── docs/zh/ # 中文文档
├── docs/en/ # 英文文档
├── examples/ # 端到端示例
├── tests/ # 单元、lit 与端到端测试
├── Dockerfile # 开发环境镜像定义
├── build_docker_image.sh # 镜像构建入口
├── build.sh # 项目构建入口
└── requirements.txt # 非 CANN Python 依赖