本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
补充A2/A3到Ascend950迁移工作流Skill Co-authored-by: zhaohujie<zhaohujie@huawei.com> # message auto-generated for no-merge-commit merge: !1067 merge feat/catlass-ascend950-migration-skill-pr into master 补充A2/A3到Ascend950迁移工作流Skill Created-by: zhaohujie Commit-by: zhaohujie Merged-by: cann-robot Description: 补充A2/A3到Ascend950迁移工作流Skill: ## 关联Issue https://gitcode.com/cann/catlass/issues/402 ## 背景 CATLASS 存量示例中有一部分非tla开发的AtlasA2/A3算子,如果想在Ascend950复用这些算子的话,要做额外的迁移工作。 当前迁移完全依赖人工逐个操作,存在以下问题: - 目标目录结构、构建入口、注册点、CPU 标杆等约定分散在各处,靠经验推断,容易遗漏或误判; - "编译通过"经常被误当作"迁移完成",缺少统一的上板精度证明标准; - 共享组件(policy、校验器、搬运包装等)被改动时,其现有使用方的回归影响无人追踪; - 迁移过程无留痕,事后无法回答"改了什么、为什么改、精度结论依据是什么"。 同时,Ascend950 上存在一些特殊的性能优化通路,比如 L0C→UB (替代 L0C→GM→UB 绕行),需要一套可复用、有门禁的筛查与应用流程。 ## skill简述 本 PR 引入 catlass-ascend950-migration Skill,为 AI Agent(Claude Code / 兼容 Agent 框架)提供一套**证据驱动、人工门禁**的批量迁移工作流: - **降低迁移成本**:Agent 按标准化流程自动完成探测(PROBE)、分析(ANALYZE)、实现(IMPLEMENT)、验证(PROVE),人工只需在关键决策点介入; - **保证迁移质量**:COMPILED ≠ PROVEN —— 精度结论只能由匹配的 A5 硬件上 errors == 0 的实测建立,编译成功、退出码、成功字符串均不构成精度证明; - **契约不变**:数据类型、布局、命令行参数、CPU 标杆、容忍度、computeNum 全部冻结,杜绝迁移过程中悄悄改变算子行为; - **全程可审计**:所有决策逐字留痕(events.jsonl 只追加),最终报告对未能确立的结论显式标注 **Not established**,不夸大不虚报; - **附带优化能力**:对已验证的 Gemm 类单元,可筛查并应用 L0C→UB 直达通路改写(SPLIT_M/NO_SPLIT 两种交付模式),且改写后必须原样重新证明精度。 See merge request: cann/catlass!1067 | 22 天前 | |
catlass仓上gitcode action Co-authored-by: han zhang<316931656@qq.com> # message auto-generated for no-merge-commit merge: !1036 merge master into master catlass仓上gitcode action Created-by: overfitting_zh Commit-by: han zhang Merged-by: cann-robot Description: ## 描述 catlass仓上gitcode action ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 catlass仓上gitcode action,暂时不影响门禁待陪跑完成后切换。 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1036 | 25 天前 | |
增加unittest单元测试 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !449 merge unittest into master 增加unittest单元测试 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!449 | 4 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !1109 merge expr into master 迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 涉及样例: - experimental/gmm/grouped_matmul_slice_m_gelu - experimental/matmul/planar_complex_matmul - experimental/matmul/symm - experimental/matmul/trmm optest/atk测试交付件均完备 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 基于开源社区精度标准泛化自验,精度通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1109 | 15 天前 | |
迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !1109 merge expr into master 迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 涉及样例: - experimental/gmm/grouped_matmul_slice_m_gelu - experimental/matmul/planar_complex_matmul - experimental/matmul/symm - experimental/matmul/trmm optest/atk测试交付件均完备 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 基于开源社区精度标准泛化自验,精度通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1109 | 15 天前 | |
迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !1109 merge expr into master 迁移symm/trmm/planarComplex/950gmmGelu至examples目录 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 涉及样例: - experimental/gmm/grouped_matmul_slice_m_gelu - experimental/matmul/planar_complex_matmul - experimental/matmul/symm - experimental/matmul/trmm optest/atk测试交付件均完备 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 基于开源社区精度标准泛化自验,精度通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1109 | 15 天前 | |
support l0c2l1 zN Co-authored-by: Yao Weijie<yaoweijie2@h-partners.com> # message auto-generated for no-merge-commit merge: !1128 merge l0c2l1 into master support l0c2l1 zN Created-by: lavateinn Commit-by: Yao Weijie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增l0c2l1的copy通路,功能和DSL分支对齐 核心改动包括:新增 CopyL0CToL1Tla 模板及其 Ascend950 特化,实现 L0C→L1 的 DataCopy(特化 DstLayout zN),使得C=A@B之后 可以执行E=C@D,减少C->gm->L1的搬运时间 ## 关联的Issue https://gitcode.com/cann/catlass/issues/434 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1128 | 10 天前 | |
Retain the DLPack producer in tla.from_dlpack Co-authored-by: Alessio<alessio.russo@h-partners.com> # message auto-generated for no-merge-commit merge: !1139 merge fix-dlpack-lifetime into master Retain the DLPack producer in tla.from_dlpack Created-by: arusso Commit-by: Alessio Merged-by: cann-robot Description: ## 描述 from_dlpack parses the dltensor capsule with borrowed fields (the capsule deleter is never invoked) and kept only data_ptr on the returned _Tensor, so nothing kept the DLPack producer alive. The returned tensor now stores a reference to the source object in a new _Tensor._dlpack_source field, so the producer lives at least as long as the tensor borrowing its device buffer. This matches the ownership semantics callers expect from zero-copy wrappers such as torch.from_dlpack. The from_dlpack docstring now states the lifetime guarantee explicitly and names tla.from_dlpack(x.contiguous().to(device), ...) as a safe pattern. ## 关联的Issue N/A ## 原因 A temporary source such as tla.from_dlpack(x.contiguous().to(device), layout_tag=...) was freed right after the call, and the kernel then read whatever had since been allocated at that address. The failure mode is silent: no crash and no warning, just wrong numbers, which makes it expensive to diagnose from a kernel result alone. ## 测试 On device (bz-a5, Ascend950PR, NPU 4): a basic_vadd repro that hands from_dlpack only temporaries, drops them, forces reuse of the freed device memory with 64 junk allocations, then runs the kernel — with the fix the max abs diff versus the golden is 0.0 (PASS). The same repro with the retained reference cleared (emulating the previous behavior) reports a max abs diff of 2007.9 (FAIL), reproducing the silent-wrong-numbers bug on device. pytest tests/test_dlpack_bridge.py on the box: 2 passed, including the new test_from_dlpack_keeps_producer_alive, which weakrefs the producer, drops the caller's only reference, asserts it survives while the tensor lives, and asserts it is released once the tensor dies. pytest tests/test_host_tensor_construction.py tests/test_tensor_types.py also ran clean on the box (exit 0). ## 文档更新 The from_dlpack docstring in python/tla_dsl/catlass/tla/runtime.py documents the borrow-and-retain lifetime contract. ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1139 | 9 天前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
dsl: 合入迁移后剩余 DSL 提交 Co-authored-by: CheaterAbec<niyuhao2@huawei.com> Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> Co-authored-by: cann-robot<cann@cann.team> Co-authored-by: Yao Weijie<yaoweijie2@h-partners.com> Co-authored-by: Mario Drumond<mario.paulo.oliveira@huawei.com> Co-authored-by: RiccardoFiorentini<riccardo.fiorentini@h-partners.com> # message auto-generated for no-merge-commit merge: !1146 merge bring/dsl-remaining-no-include into master dsl: 合入迁移后剩余 DSL 提交 Created-by: CheaterAbec Commit-by: cann-robot;CheaterAbec;init__zhb__;Mario Drumond;RiccardoFiorentini;Yao Weijie Merged-by: cann-robot Description: ## 描述 基于**最新** master(含 !1128 support l0c2l1 zN 的 include/ 特化)与 dsl 剩余提交,补齐尚未落入 master 的 DSL 侧改动,并保留原作者信息。 ### 策略 - **include/ 仓根 C++ tile 特化:一律以 master 为准**(!1128 已合入),本 PR **不修改** include/。 - 仅补 DSL 侧接线:python/tla_dsl/**、tests/dsl_battery、tests/run_dsl_test.sh。 - 已跳过 master 已有内容:hf32、样例补回、BSA 删除、以及 l0c2l1 的 include 特化。 ### 提交(作者已还原) 1. **Yao Weijie** — DSL 侧接通 L0C→L1(zN)(依赖 master !1128 头文件) 2. **RiccardoFiorentini** — ShapeInfo 序列化修复(!1118 / Issue 416) 3. **Mario Drumond** — compose decorated control-flow helpers(!1079) 4. **init__zhb__** — README 残余修订 5. 文档:kernel_api_reference 刷新 ## 关联的Issue - ShapeInfo:https://gitcode.com/cann/catlass/issues/416 - L0C→L1 主线特化:https://gitcode.com/cann/catlass/issues/434 (include 已在 !1128) ## 测试 - [x] ./build.sh - [x] python -m pytest -q tests(1494 passed, 7 skipped) - [x] lit -sv csrc/mlir/build/tests/lit(124 passed) - [x] git diff master -- include/ 为空 ## 类型标签 - [x] 新特性 - [x] Bug修复 - [x] 文档更新 > 替换 !1145:该 MR 基于过期 master 且误带 include/ 冲突,已废弃。 See merge request: cann/catlass!1146 | 10 天前 | |
[refactor] mstuner使用aclrtGetDeviceInfo接口获取aicore_num和L2Cache size Co-authored-by: gong-siwei<gongsiwei@huawei.com> # message auto-generated for no-merge-commit merge: !966 merge 0728_l2cache_size into master [refactor] mstuner使用aclrtGetDeviceInfo接口获取aicore_num和L2Cache size Created-by: gong-siwei Commit-by: gong-siwei Merged-by: cann-robot Description: ## 描述 GetTiling 由 SoC 名称硬编码查表改为运行时调用 aclrtGetDeviceInfo 获取 AICore 数量与 L2 Cache 大小,删除静态映射表,入参由 socName 改为 deviceId 。 ## 关联的Issue https://gitcode.com/cann/catlass/issues/328 ## 原因 消除硬编码映射表,避免每新增芯片型号需手动维护,提升扩展性。 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 950测试: ================================ case_id : 354 task_duration(us) : 164.028 device_id : 0 operation : Gemm description : catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_256x256x128_256x256x32_swizzle3x1 l0_tile_shape : 256x256x32 l1_tile_shape : 256x256x128 swizzle : swizzle3x1 m : 256 n : 512 k : 1024 A : fp32:row B : fp32:row C : fp32:row ================================ Top 10: case_id,task_duration(us),device_id,operation,description,m,n,k,A,B,C 3,43.291,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x128_128x128x64_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 1,43.395,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x128_128x128x32_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 2,43.525,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x128_128x128x48_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 5,43.643,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x144_128x128x48_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 6,43.771,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x144_128x128x64_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 4,43.799,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x144_128x128x32_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 7,43.807,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x160_128x128x32_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 8,43.813,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x160_128x128x48_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 11,43.830,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x176_128x128x48_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row 15,44.041,0,Gemm,catlass_gemm_43_ascend950_basic_matmul_fp32xRowMajor_fp32xRowMajor_fp32xRowMajor_128x128x192_128x128x64_swizzle3x1,256,512,1024,fp32:row,fp32:row,fp32:row [INFO ] Save profile data to /home/xxx/catlass/results.csv success A2/A3测试:  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!966 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
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 | 11 天前 | |
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 | 11 天前 | |
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 | 11 天前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
补充A2/A3到Ascend950迁移工作流Skill Co-authored-by: zhaohujie<zhaohujie@huawei.com> # message auto-generated for no-merge-commit merge: !1067 merge feat/catlass-ascend950-migration-skill-pr into master 补充A2/A3到Ascend950迁移工作流Skill Created-by: zhaohujie Commit-by: zhaohujie Merged-by: cann-robot Description: 补充A2/A3到Ascend950迁移工作流Skill: ## 关联Issue https://gitcode.com/cann/catlass/issues/402 ## 背景 CATLASS 存量示例中有一部分非tla开发的AtlasA2/A3算子,如果想在Ascend950复用这些算子的话,要做额外的迁移工作。 当前迁移完全依赖人工逐个操作,存在以下问题: - 目标目录结构、构建入口、注册点、CPU 标杆等约定分散在各处,靠经验推断,容易遗漏或误判; - "编译通过"经常被误当作"迁移完成",缺少统一的上板精度证明标准; - 共享组件(policy、校验器、搬运包装等)被改动时,其现有使用方的回归影响无人追踪; - 迁移过程无留痕,事后无法回答"改了什么、为什么改、精度结论依据是什么"。 同时,Ascend950 上存在一些特殊的性能优化通路,比如 L0C→UB (替代 L0C→GM→UB 绕行),需要一套可复用、有门禁的筛查与应用流程。 ## skill简述 本 PR 引入 catlass-ascend950-migration Skill,为 AI Agent(Claude Code / 兼容 Agent 框架)提供一套**证据驱动、人工门禁**的批量迁移工作流: - **降低迁移成本**:Agent 按标准化流程自动完成探测(PROBE)、分析(ANALYZE)、实现(IMPLEMENT)、验证(PROVE),人工只需在关键决策点介入; - **保证迁移质量**:COMPILED ≠ PROVEN —— 精度结论只能由匹配的 A5 硬件上 errors == 0 的实测建立,编译成功、退出码、成功字符串均不构成精度证明; - **契约不变**:数据类型、布局、命令行参数、CPU 标杆、容忍度、computeNum 全部冻结,杜绝迁移过程中悄悄改变算子行为; - **全程可审计**:所有决策逐字留痕(events.jsonl 只追加),最终报告对未能确立的结论显式标注 **Not established**,不夸大不虚报; - **附带优化能力**:对已验证的 Gemm 类单元,可筛查并应用 L0C→UB 直达通路改写(SPLIT_M/NO_SPLIT 两种交付模式),且改写后必须原样重新证明精度。 See merge request: cann/catlass!1067 | 22 天前 | |
2.0.0版本changeLog+README更新 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !1032 merge tag_release into master 2.0.0版本changeLog+README更新 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 总结CATLASS master分支从v1.6.0 tag 到 v2.0.0 tag 的相关更新。更新changeLog、README相关内容 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1032 | 10 天前 | |
文档低错整改 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !859 merge debug into master 文档低错整改 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用doc tools工具排查文档存在 - 代码块未指定语言 - 代码块前后换行 - 本地路径链接无法访问 - 列表前后换行 - 加粗符号空格 - 标签匹配失败 - 有序列表编号错误 等问题 基于大模型扫描修复文字描述中出现的低级错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!859 | 1 个月前 | |
补充A2/A3到Ascend950迁移工作流Skill Co-authored-by: zhaohujie<zhaohujie@huawei.com> # message auto-generated for no-merge-commit merge: !1067 merge feat/catlass-ascend950-migration-skill-pr into master 补充A2/A3到Ascend950迁移工作流Skill Created-by: zhaohujie Commit-by: zhaohujie Merged-by: cann-robot Description: 补充A2/A3到Ascend950迁移工作流Skill: ## 关联Issue https://gitcode.com/cann/catlass/issues/402 ## 背景 CATLASS 存量示例中有一部分非tla开发的AtlasA2/A3算子,如果想在Ascend950复用这些算子的话,要做额外的迁移工作。 当前迁移完全依赖人工逐个操作,存在以下问题: - 目标目录结构、构建入口、注册点、CPU 标杆等约定分散在各处,靠经验推断,容易遗漏或误判; - "编译通过"经常被误当作"迁移完成",缺少统一的上板精度证明标准; - 共享组件(policy、校验器、搬运包装等)被改动时,其现有使用方的回归影响无人追踪; - 迁移过程无留痕,事后无法回答"改了什么、为什么改、精度结论依据是什么"。 同时,Ascend950 上存在一些特殊的性能优化通路,比如 L0C→UB (替代 L0C→GM→UB 绕行),需要一套可复用、有门禁的筛查与应用流程。 ## skill简述 本 PR 引入 catlass-ascend950-migration Skill,为 AI Agent(Claude Code / 兼容 Agent 框架)提供一套**证据驱动、人工门禁**的批量迁移工作流: - **降低迁移成本**:Agent 按标准化流程自动完成探测(PROBE)、分析(ANALYZE)、实现(IMPLEMENT)、验证(PROVE),人工只需在关键决策点介入; - **保证迁移质量**:COMPILED ≠ PROVEN —— 精度结论只能由匹配的 A5 硬件上 errors == 0 的实测建立,编译成功、退出码、成功字符串均不构成精度证明; - **契约不变**:数据类型、布局、命令行参数、CPU 标杆、容忍度、computeNum 全部冻结,杜绝迁移过程中悄悄改变算子行为; - **全程可审计**:所有决策逐字留痕(events.jsonl 只追加),最终报告对未能确立的结论显式标注 **Not established**,不夸大不虚报; - **附带优化能力**:对已验证的 Gemm 类单元,可筛查并应用 L0C→UB 直达通路改写(SPLIT_M/NO_SPLIT 两种交付模式),且改写后必须原样重新证明精度。 See merge request: cann/catlass!1067 | 22 天前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
文档低错整改 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !859 merge debug into master 文档低错整改 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用doc tools工具排查文档存在 - 代码块未指定语言 - 代码块前后换行 - 本地路径链接无法访问 - 列表前后换行 - 加粗符号空格 - 标签匹配失败 - 有序列表编号错误 等问题 基于大模型扫描修复文字描述中出现的低级错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!859 | 1 个月前 | |
补充A2/A3到Ascend950迁移工作流Skill Co-authored-by: zhaohujie<zhaohujie@huawei.com> # message auto-generated for no-merge-commit merge: !1067 merge feat/catlass-ascend950-migration-skill-pr into master 补充A2/A3到Ascend950迁移工作流Skill Created-by: zhaohujie Commit-by: zhaohujie Merged-by: cann-robot Description: 补充A2/A3到Ascend950迁移工作流Skill: ## 关联Issue https://gitcode.com/cann/catlass/issues/402 ## 背景 CATLASS 存量示例中有一部分非tla开发的AtlasA2/A3算子,如果想在Ascend950复用这些算子的话,要做额外的迁移工作。 当前迁移完全依赖人工逐个操作,存在以下问题: - 目标目录结构、构建入口、注册点、CPU 标杆等约定分散在各处,靠经验推断,容易遗漏或误判; - "编译通过"经常被误当作"迁移完成",缺少统一的上板精度证明标准; - 共享组件(policy、校验器、搬运包装等)被改动时,其现有使用方的回归影响无人追踪; - 迁移过程无留痕,事后无法回答"改了什么、为什么改、精度结论依据是什么"。 同时,Ascend950 上存在一些特殊的性能优化通路,比如 L0C→UB (替代 L0C→GM→UB 绕行),需要一套可复用、有门禁的筛查与应用流程。 ## skill简述 本 PR 引入 catlass-ascend950-migration Skill,为 AI Agent(Claude Code / 兼容 Agent 框架)提供一套**证据驱动、人工门禁**的批量迁移工作流: - **降低迁移成本**:Agent 按标准化流程自动完成探测(PROBE)、分析(ANALYZE)、实现(IMPLEMENT)、验证(PROVE),人工只需在关键决策点介入; - **保证迁移质量**:COMPILED ≠ PROVEN —— 精度结论只能由匹配的 A5 硬件上 errors == 0 的实测建立,编译成功、退出码、成功字符串均不构成精度证明; - **契约不变**:数据类型、布局、命令行参数、CPU 标杆、容忍度、computeNum 全部冻结,杜绝迁移过程中悄悄改变算子行为; - **全程可审计**:所有决策逐字留痕(events.jsonl 只追加),最终报告对未能确立的结论显式标注 **Not established**,不夸大不虚报; - **附带优化能力**:对已验证的 Gemm 类单元,可筛查并应用 L0C→UB 直达通路改写(SPLIT_M/NO_SPLIT 两种交付模式),且改写后必须原样重新证明精度。 See merge request: cann/catlass!1067 | 22 天前 | |
增加dockerfile Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !551 merge master into master 增加dockerfile Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!551 | 4 个月前 | |
增加dockerfile Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !551 merge master into master 增加dockerfile Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!551 | 4 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
2.0.0版本changeLog+README更新 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !1032 merge tag_release into master 2.0.0版本changeLog+README更新 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 总结CATLASS master分支从v1.6.0 tag 到 v2.0.0 tag 的相关更新。更新changeLog、README相关内容 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1032 | 10 天前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
整改文档部分描述符合开源规范 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !930 merge debug into master 整改文档部分描述符合开源规范 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改文档部分描述,如torchNPU、ascend950支持、社区CANN包、社区版等 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!930 | 1 个月前 | |
整改文档部分描述符合开源规范 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !930 merge debug into master 整改文档部分描述符合开源规范 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改文档部分描述,如torchNPU、ascend950支持、社区CANN包、社区版等 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!930 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
添加 OAT.xml 及 Third_Party_Open_Source_Software_Notice Co-authored-by: zhanghaobo<zhanghaobo6@huawei.com> | 10 个月前 | |
增加依赖描述文件 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !609 merge dep into master 增加依赖描述文件 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!609 | 3 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 1 个月前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
Add mkdocs configuration and reorganized docs for web page Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1006 merge mkdocs into master Add mkdocs configuration and reorganized docs for web page Created-by: yuantao_ Commit-by: yuantao;gitcode-bot Merged-by: cann-robot Description: ## 描述 增加mkdocs配置文件并进行资源整理,适配文档编译框架 同时修正一些错误,补充学习资料#373 #371 #354 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1006 | 30 天前 | |
补充python依赖 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !742 merge dep into master 补充python依赖 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!742 | 2 个月前 |
CATLASS
Latest News
-
[2026/08] v2.0.0 发布:正式上线CATLASS DSL支持Pythonic Kernel,原生支持Tile编程。基于 MLIR 编译栈与 AscendNPU-IR 工具链,将 Python 描述自动转换为高性能可执行 Kernel,相比 CATLASS C++ 编译时间缩短 80%+,代码开发更简洁,高性能表现一致,并提供 8 个端到端样例,覆盖矩阵乘(Basic Mmad、StreamK、Multi Core SplitK、Batched、Grouped Matmul 等)、注意力(Flash Attention Infer)等场景;新增 catlass_cppgen 代码生成框架,支持自动生成 C++ 核函数代码;新增Ascend950算子样例6个(如Svd Quant Matmul、A8W4 Grouped MX Matmul等)、AtlasA2算子样例3个(Symm、Trmm、Planar Complex Matmul)。
-
[2026/06] v1.6.0 发布:新增 MXFP8 / MXFP4 量化模板、EVG 声明式后处理框架、基于 Mutex 同步原语的 BlockMmad;新增 Ascend950 Tile 层组件 及全量 单元测试;新增 算子级测试框架(optest);新增 16 个Ascend950算子样例(如 StreamK Matmul、Flash Attention Chunk Prefill、Conv2d 等)。
-
[2026/04] v1.5.0 发布:新增 Ascend950 系列样例(如 基础 Matmul、Flash Attention 推理、Per-Group & Per-Block Quant Matmul TLA 等)、TLA 能力增强(含
origin_shape、TileView等);Matmul 泛化工程 新增 103 动态 W8A8 Per-Token 量化。
更多最新消息
-
[2026/03] 主线正式开始新增对下一代昇腾硬件Ascend 950PR/Ascend 950DT的支持
-
[2026/02] v1.4.0发布,新增 StreamK Matmul、W4A4 Matmul、Sparse Matmul等示例
-
[2025/12] v1.3.0发布,支持
FixPipe随路量化,Matmul泛化工程新增多个模板,并新增INT4反量化、2D卷积等示例 -
[2025/10] v1.2.0发布,新增Matmul算子泛化等示例
-
[2025/09] CATLASS模板库正式开源
请参阅CHANGELOG以查看当前及历史版本的详细更新内容。
📌 简介
CATLASS(CANN Templates for Linear Algebra Subroutines),中文名为昇腾算子模板库,是一个聚焦于提供高性能矩阵乘类算子基础模板的代码库。
通过抽象分层的方式将矩阵类算子代码模板化,从而实现算子计算逻辑的白盒化组装,让算子代码可复用,可替换,可局部修改。针对昇腾硬件特点进行设计,可以支持复杂场景流水排布,如Flash Attention等算子。在上层代码逻辑共享的同时,支持底层硬件差异特化。
模板库针对定制场景使能快速开发能力,提供不同场景下的性能优化模块供开发者组装定制,在定制shape下的性能能达到相应算子标杆性能的0.98~1.2倍。
本代码库为CATLASS联创代码仓。结合昇腾生态力量,共同设计研发算子模板,并提供典型算子的高性能实现代码样例,概述详情参考CATLASS项目介绍。CATLASS DSL 详情参考CATLASS DSL 介绍
⚡️ 快速上手
为快速体验CATLASS的算子开发与使用,请参考下述内容。
-
快速入门:快速上手模板库使用,编译执行已有的算子样例。
-
基础开发指南:以基础Matmul算子为例,介绍基于CATLASS的算子开发实践;
-
开发者实践: 从算子各层代码编写至编译测试,再到Tiling调优与算子优化,从新手到进阶的实践示例。
-
CATLASS DSL 快速开始:CATLASS DSL的环境准备、编译测试、API接口文档等上手路径总入口。
📚 进阶参考
下述资料可助力您深入开展CATLASS算子的开发与调优,实现更优性能的GEMM类算子。
-
创新样例开发流程指南:从需求分析、方案设计到组件开发、测试合入的完整流程,帮助开发者快速掌握创新样例的开发方法;
-
矩阵乘模板总结:介绍模板库的Matmul理论模板和工程优化点,帮助开发者进行Matmul性能调优;
-
CATLASS设计总结: 汇总CATLASS工程的样例算法设计、swizzle策略、TLA设计等文档。
-
CATLASS API: 介绍CATLASS的分层特征与通用矩阵乘法GEMM API。
📁 目录结构说明
关键目录如下,详细目录参见项目目录。
catlass
├── 3rdparty # 三方依赖
├── cmake # 工程配置
├── docs # 文档
├── examples # 算子样例
├── include # 模板头文件
├── python # python类框架
├── scripts # 脚本
├── tests # 测试
└── tools # 工具
💻 软硬件配套说明
CATLASS所需的软硬件环境依赖如下:
- 昇腾产品:
- Atlas A2 训练系列产品 / Atlas A2 推理系列产品
- Atlas A3 训练系列产品 / Atlas A3 推理系列产品
- Ascend 950PR/Ascend 950DT
- CPU架构:
aarch64/x86_64 - 系统:CANN支持的Linux(进行兼容性查询)
- CATLASS C++ 软件依赖:
gcc>= 7.5, < 13.0cmake>= 3.16python>= 3.8, < 3.12 (如需编译单元测试,需gcc<= 12.0)
- CATLASS DSL 软件依赖请参考CATLASS-DSL README
不同CATLASS发行版可支持的硬件平台及所需的最低CANN版本如下表:
| CATLASS版本 | 最低支持CANN包版本 | 支持昇腾产品 |
|---|---|---|
| 当前 | 8.5.0 9.0.0(Ascend 950PR/Ascend 950DT) 9.1.0(CATLASS-DSL Ascend 950PR/Ascend 950DT) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950PR/Ascend 950DT |
| v2.0.0 | 8.5.0 9.0.0(Ascend 950PR/Ascend 950DT) 9.1.0(CATLASS-DSL Ascend 950PR/Ascend 950DT) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950PR/Ascend 950DT |
| v1.6.0 | 8.5.0 9.0.0(Ascend 950PR/Ascend 950DT) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950PR/Ascend 950DT |
| v1.5.0 | 8.2.RC1 9.0.0(Ascend 950PR/Ascend 950DT) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950PR/Ascend 950DT |
| v1.4.0~v1.2.2 | 8.2.RC1 | Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 |
| v1.2.1~v1.0.0 | 8.2.RC1.alpha002 | Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 |
- 若您需要使用
TorchNPU进行精度测试等辅助开发,需要安装cann-ops包(如cann-910b-ops/cann-a3-ops/cann-950-ops)以调用其中的算子实现。在Ascend 950PR/Ascend 950DT系列产品中,cann-950-ops仅在CANN 9.0.0正式版提供。 - 为保证使用体验,请优先使用CANN正式版,beta版本可能存在兼容性问题。
下述环境经测试支持当前CATLASS构建:
| 系统 | CANN |
gcc |
cmake |
python |
|---|---|---|---|---|
| Ubuntu 20.04.5 | 8.5.0 | 9.3 | 3.16 | 3.10 |
| Ubuntu 22.04.5 | 8.5.0 | 11.3 | 3.22 | 3.10 |
| openEuler 22.03 SP4 | 8.5.0 | 10.3 | 3.22 | 3.10 |
| Ubuntu 22.04.5 (编译950样例) | 9.0.0 | 11.3 | 3.22 | 3.10 |