本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: 移除Markdown章节标题中的手工序号(issue #598) Co-authored-by: fishkimi<longzhichengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !1324 merge fix/issue-598-remove-manual-heading-numbers into master docs: 移除Markdown章节标题中的手工序号(issue #598) Created-by: fishkimi Commit-by: fishkimi Merged-by: cann-robot Description: ## Summary 按 issue #598 的修复建议,移除全仓 Markdown 章节标题中手工添加的序号,保留标题文字本身: - 共修改 **87 个文件**(docs / examples / experimental / python / tests / .agents/skills 下全部 .md),移除形如 ## 1. …、### 1.1 …、### 2、… 的手工序号前缀约 **1164 处**; - 同步更新受影响的文档内与跨文件 #anchor 锚点链接(如 #5-调用 → #调用),避免移除序号后章节锚点失效; - 中英文成对文档已同步修改; - 序号 0. 前缀、中文顿号分隔(1、)及多级序号(1.1.1)一并处理; - 代码块内的 # 1. … 注释(如 python/catlass_cppgen/README.md)不属于 Markdown 标题,保持不变。 ## 验证 - 非代码块内残留 ^#{1,6} +[0-9]+[.、] 标题数量:**0** - 锚点链接有效性对比(修改前/后全仓 638 个内部锚点链接):**未新增任何坏链接** - git diff --check(尾随空格):通过 - 标题去重冲突检查:无(无 AMBIGUOUS 锚点) Related issue: #598 See merge request: cann/catlass!1324 | 4 天前 | |
ci: 在线检查适配 Ascend-CANN 与脚本调用加固 Co-authored-by: s0707<songchunlong4@h-partners.com> # message auto-generated for no-merge-commit merge: !1335 merge ci/online_align into master ci: 在线检查适配 Ascend-CANN 与脚本调用加固 Created-by: s0707 Commit-by: s0707 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1335 | 4 天前 | |
update: 修复label名称的错误 Co-authored-by: yuantao_<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1276 merge master into master update: 修复label名称的错误 Created-by: yuantao_ Commit-by: yuantao_ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 机器人配置文件中,approve实应为approved ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1276 | 11 天前 | |
增加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 | 5 个月前 | |
用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 | 2 个月前 | |
docs: Fix issues 557, 558, 582, 584 Co-authored-by: fishkimi<longzhichengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !1339 merge fix-issues-557-558-582-584 into master docs: Fix issues 557, 558, 582, 584 Created-by: fishkimi Commit-by: LongCheng;fishkimi Merged-by: cann-robot Description: ## Summary 修复文档相关的四个问题: ### Issue 557 - basic_mmad_streamk 示例文档链接修复 **文件**: python/tla_dsl/examples/end_to_end/basic_mmad_streamk/README.md - 删除目录树和表格中已不存在的 streamk_config.py 条目 - 该文件已在代码重构中移除,但文档未同步更新 ### Issue 558 - 文档标点与拼写错误修复 **文件**: 1. docs/zh/2_Design/01_kernel_design/00_basics/atlasA2_gemm_instruction_set.md:535 - 删除多余逗号:"分为以下几种模式,:" → "分为以下几种模式:" 2. examples/102_dynamic_optimized_matmul/docs/zh/工程结构介绍.md:242 - 修复拼写:"defalut" → "default" 3. examples/102_dynamic_optimized_matmul/include/select_kernel_b16.h:287 - 修复拼写:"defalut" → "default" ### Issue 582 - TLA DSL 中文 API 文档补全 **文件**: python/tla_dsl/docs/zh/api/kernel_api_reference.md - 在 bitwise_xor 章节前添加 shift_left 章节(约40行) - 在 shift_left 章节后添加 shift_right 章节(约40行) - 补齐英文文档已有的移位操作API说明,消除中英文不对称 - 包含完整的约束说明(移位量非负、有符号整数限制、算术右移语义等) ### Issue 584 - 英文文档中残留中文翻译 **文件**: docs/en/1_Practice/evaluation/performance_tools.md:143-144 - 将 Edge/Chrome Trace Viewer 条目中的中文说明翻译为英文 - 与同段的 Perfetto 条目格式保持一致 ## Related Issues - Closes #557 - Closes #558 - Closes #582 - Closes #584 🤖 Generated with CodeArts AI See merge request: cann/catlass!1339 | 4 天前 | |
00_basic_matmul/README.md文档优化 Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1347 merge readme_polish into master 00_basic_matmul/README.md文档优化 Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 对示范文档00_basic_matmul/README.md补充优化:(1)补充描述样例内的参数默认值;(2)优化约束说明的描述和章节名;(3)补充命令行参数的详细解释 ## 关联的Issue https://gitcode.com/cann/catlass/issues/627 ## 原因 详见关联issue ## 测试 文档优化,不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1347 | 3 天前 | |
[FAG_TLA] add FAG_TLA to experimental Co-authored-by: shiniya<18991832004@163.com> # message auto-generated for no-merge-commit merge: !1245 merge fagTLA_02 into master [FAG_TLA] add FAG_TLA to experimental Created-by: shiniya Commit-by: shiniya Merged-by: cann-robot Description: ## 描述 - 新增FAG的TLA写法到 experimental目录下,格式合规 - 为FAG生成optest并应用到catlass/test/optest下且通过编译运行校验 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 实现agent自动生成FAG算子能力的突破,提供基本参考 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 增加前agent生成FAG算子性能落后**500~1000倍**,新增FAG样例后性能稳定达到**0.6x**(部分特殊条件可能略有下降)。 测试生成FAG-BNSD与FAG-TND在大shape下(测试运行时长**大于2ms**)性能均达到**1.0x+**,新情境FAG-Sink模式下性能达到0.6x。 optest测试结果:  <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1245 | 4 天前 | |
[FAG_TLA] add FAG_TLA to experimental Co-authored-by: shiniya<18991832004@163.com> # message auto-generated for no-merge-commit merge: !1245 merge fagTLA_02 into master [FAG_TLA] add FAG_TLA to experimental Created-by: shiniya Commit-by: shiniya Merged-by: cann-robot Description: ## 描述 - 新增FAG的TLA写法到 experimental目录下,格式合规 - 为FAG生成optest并应用到catlass/test/optest下且通过编译运行校验 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 实现agent自动生成FAG算子能力的突破,提供基本参考 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 增加前agent生成FAG算子性能落后**500~1000倍**,新增FAG样例后性能稳定达到**0.6x**(部分特殊条件可能略有下降)。 测试生成FAG-BNSD与FAG-TND在大shape下(测试运行时长**大于2ms**)性能均达到**1.0x+**,新情境FAG-Sink模式下性能达到0.6x。 optest测试结果:  <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1245 | 4 天前 | |
refactor(dsl): remove unused _acl_status after HostArgs switch launch_kernel_with_host_args returns a plain status int, unlike the old kernel_args_* APIs that needed tuple normalization. Co-authored-by: Cursor <cursoragent@cursor.com> | 2 天前 | |
[Bug-Report|缺陷反馈]: 修复build脚本构建目录依赖当前路径 Co-authored-by: robellliu-dev<robell.liu@huawei.com> # message auto-generated for no-merge-commit merge: !890 merge codex/issue-336-build-workdir into master [Bug-Report|缺陷反馈]: 修复build脚本构建目录依赖当前路径 Created-by: gcw_oroHQZs3 Commit-by: robellliu-dev Merged-by: cann-robot Description: ## 描述 将 torch_library 与 mstuner_catlass 分支中的 CMake 构建、安装目录统一为脚本已解析的 CMAKE_SOURCE_DIR 和 BUILD_DIR,保证从非仓库根目录调用时仍在仓库内构建。 ## 关联的Issue Fixes #336 ## 原因 这两个分支混用相对路径 build 和脚本的绝对目录变量,当前工作目录会影响 CMake 的源码和构建位置。 ## 测试 - bash -n scripts/build.sh(对 LF 规范化后的脚本文本执行) - git diff --check --cached - 提交时 pre-commit:全部通过。 未执行完整构建:当前环境未配置可用的 Ascend CANN 工具链与硬件。 ## 文档更新 N/A ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!890 | 29 天前 | |
add mask interleave op Co-authored-by: astronaut_yyy<2398315240@qq.com> Co-authored-by: astronaut_yyy<dengyue19@huawei.com> # message auto-generated for no-merge-commit merge: !1287 merge feature/mask-interleave into master add mask interleave op Created-by: astronaut_yyy Commit-by: astronaut_yyy Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 tla.interleave 和 tla.deinterleave 新增 MaskSSA 支持,支持 mask<256/128/64>,分别直接降低为 Regbase pintlv.b8/b16/b32 和 pdintlv.b8/b16/b32,并拒绝混合输入、类型不一致及不支持的 mask<32>,保留原有 VectorSSA 行为。 补充前端、verifier/lowering 测试及端到端示例,已验证 i8、f16、f32 的完整编译和 NPU 执行;两个算子的两个输出均与独立CPU 参考结果一致。 ## 关联的Issue [[Requirement|需求建议]: 支持 MaskSSA 版 interleave 和 deinterleave 算子](https://gitcode.com/cann/catlass/issues/578) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1287 | 3 天前 | |
[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 | 2 个月前 | |
docs(dsl): 优化DSL文档部分表述,修复无序列表的缩进问题 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1233 merge docs/dsl_quickstart into master docs(dsl): 优化DSL文档部分表述,修复无序列表的缩进问题 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> DSL提供了python package打包功能,但对应文档有部分未更新,容易产生误解,现统一修复,同时修复部分环境配置文件。 DSL多数文档使用两个空格缩进无序列表,但mkdocs仅支持4缩进,因此统一刷新,保证文档站观看效果 ## 关联的Issue #545 https://gitcode.com/cann/catlass/issues/545 ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1233 | 18 天前 | |
fix(tla_dsl): integrate mlir python bindings Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1168 merge mlir_intergration into master fix(tla_dsl): integrate mlir python bindings Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> catlassdsl依赖外部mlir python bindings,易用性较差,需使用mlir python bindings的private化将其整合成一个wheel 主要改动: - 更新所有import mlir - 构建系统增加一些封装,调用AddMlirPython.cmake预置函数 - 使NPUIR_ROOT_DIR和NPUIR_PREBUILT两个变量意义更清晰,完善fallback链路,因为mlir部分是增量的编译 - 删除过时测试用例 - 更新e2e脚本为release wheel模式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1168 | 24 天前 | |
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 | 1 个月前 | |
docs(dsl): refactor DSL docs framework and integrate to origin docs Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: atomgit-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1159 merge dsl_doc into master docs(dsl): refactor DSL docs framework and integrate to origin docs Created-by: yuantao_ Commit-by: yuantao;atomgit-bot;Yuan Tao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 建立DSL的文档框架,并整合到文档站框架。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1159 | 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 | 1 个月前 | |
docs: 修复笔误与文档结构,新增常见术语检查清单 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1304 merge codex/translation-tla-docs into master docs: 修复笔误与文档结构,新增常见术语检查清单 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: 修复笔误与文档结构,新增常见术语检查清单 See merge request: cann/catlass!1304 | 5 天前 | |
catlass v2.1更新文档 Co-authored-by: lijiaming_hw<lijiaming74@huawei.com> # message auto-generated for no-merge-commit merge: !1265 merge feature/release_note into master catlass v2.1更新文档 Created-by: lijiaming_hw Commit-by: lijiaming_hw Merged-by: cann-robot Description: catlass v2.1更新文档 ## 文档更新 更新了README.md、更新了CHANGELOG.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1265 | 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 | 2 个月前 | |
docs: 修复 CLAUDE.md 悬空引用及 README/CHANGELOG 失效链接 Co-authored-by: CDragon<617413776@qq.com> # message auto-generated for no-merge-commit merge: !1185 merge docs/issue-470-claude-md into master docs: 修复 CLAUDE.md 悬空引用及 README/CHANGELOG 失效链接 Created-by: CDragon Commit-by: CDragon Merged-by: cann-robot Description: ## 描述 以单提交(f8499bf)修复 issue #470 上报的全部 7 处文档问题: - **问题 2(MD041)**:根目录 CLAUDE.md 引用了仓库中不存在的 @AGENTS.zh.md,实际代理文档为 AGENTS.md,引用已改为 @AGENTS.md。 - **问题 1**:README.md 第 21 行链接 blob/v2.0.0/catlass_cppgen/README.md,但 v2.0.0 tag 中该目录实际位于 python/ 下,已改指 blob/v2.0.0/python/catlass_cppgen/README.md。 - **问题 3~6**:CHANGELOG.md 第 24 行四条 DSL 文档链接指向重构前的平铺路径(python/tla_dsl/docs/*.md),该路径在 v2.0.0 tag 中不存在,实际位于 python/tla_dsl/docs/zh/ 且为下划线命名,四条链接已改指实际位置。 - **问题 7**:CHANGELOG.md 第 84 行对 .agents(v1.6.0 中的目录)误用了 blob/ 链接,已改为 tree/v1.6.0/.agents。 所有替换目标均通过仓库 contents API 在对应 tag 上逐一验证存在后才提交。 ## 关联的Issue Fixes #470 ## 原因 检查报告的失效链接源于:链接锚定在发布 tag 上、但路径早于仓库目录重构(catlass_cppgen/ 迁至 python/、tla_dsl 平铺文档拆分为 docs/zh/ + docs/en/);另有一处悬空的代理文档引用(@AGENTS.zh.md)和一处对目录误用 blob/ 的链接。 ## 测试 - 通过 contents API 验证各替换目标在对应 tag 上存在(v2.0.0/python/catlass_cppgen/README.md、四个 v2.0.0/python/tla_dsl/docs/zh/*.md、v1.6.0/.agents 目录、master 的 AGENTS.md)。 - 压缩为单提交后回查分支内容:三处改动行的链接均已更新。 - 不涉及任何代码路径,仅文档链接修正。 ## 文档更新 CLAUDE.md、README.md、CHANGELOG.md —— 仅链接/引用修正。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1185 | 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 | 2 个月前 | |
文档低错整改 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 | 2 个月前 | |
补充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 | 1 个月前 | |
增加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 | 5 个月前 | |
增加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 | 5 个月前 | |
用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 | 2 个月前 | |
add Apache2.0 license Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1222 merge other/license-update into master add Apache2.0 license Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加apache license,因为依赖了AscendNPU-IR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1222 | 17 天前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !531 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!531 | 29 天前 | |
用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 | 2 个月前 | |
docs: CANN下载链接刷新到新版本,支持双语 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1303 merge codex/translation-docs into master docs: CANN下载链接刷新到新版本,支持双语 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: CANN下载链接刷新到新版本,支持双语 See merge request: cann/catlass!1303 | 5 天前 | |
docs: CANN下载链接刷新到新版本,支持双语 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !1303 merge codex/translation-docs into master docs: CANN下载链接刷新到新版本,支持双语 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: CANN下载链接刷新到新版本,支持双语 See merge request: cann/catlass!1303 | 5 天前 | |
整改文档部分描述符合开源规范 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 | 2 个月前 | |
整改文档部分描述符合开源规范 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 | 2 个月前 | |
用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 | 2 个月前 | |
添加 OAT.xml 及 Third_Party_Open_Source_Software_Notice Co-authored-by: zhanghaobo<zhanghaobo6@huawei.com> | 11 个月前 | |
增加依赖描述文件 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 | 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 | 2 个月前 | |
用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 | 2 个月前 | |
用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 | 2 个月前 | |
用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 | 2 个月前 | |
用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 | 2 个月前 | |
docs(dsl): refactor DSL docs framework and integrate to origin docs Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: atomgit-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1159 merge dsl_doc into master docs(dsl): refactor DSL docs framework and integrate to origin docs Created-by: yuantao_ Commit-by: yuantao;atomgit-bot;Yuan Tao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 建立DSL的文档框架,并整合到文档站框架。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1159 | 1 个月前 | |
docs(dsl): refactor DSL docs framework and integrate to origin docs Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: atomgit-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !1159 merge dsl_doc into master docs(dsl): refactor DSL docs framework and integrate to origin docs Created-by: yuantao_ Commit-by: yuantao;atomgit-bot;Yuan Tao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 建立DSL的文档框架,并整合到文档站框架。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1159 | 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 | 1 个月前 | |
补充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 | 3 个月前 |
CATLASS
Latest News
-
[2026/09] v2.1.0 发布:围绕低精度计算、编译期复用和发布交付能力升级 CATLASS DSL。面向 Ascend950 新增 MXFP8/MXFP4 矩阵乘,扩展寄存器搬运与逻辑计算;
@tla.kernel支持 Constexpr Callable 入参,并支持构建安装ascend-catlass-dslWheel 包。新增实验性 AutoSync 与@tla.extern能力,降低流水同步和已有 Ascend C 实现复用的开发成本;补充 Vector Op 执行指南及 DSL 控制流文档。CATLASS C++ 新增 Ascend950 Basic SYRK和 Atlas A2 X-Attention算子样例。 -
[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 950 系列产品的支持
-
[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 950 系列产品
- 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 950 系列产品) 9.1.0(CATLASS-DSL Ascend 950 系列产品) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950 系列产品 |
| v2.1.0 | 8.5.0 9.0.0(Ascend 950 系列产品) 9.1.0(CATLASS-DSL Ascend 950 系列产品) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950 系列产品 |
| v2.0.0 | 8.5.0 9.0.0(Ascend 950 系列产品) 9.1.0(CATLASS-DSL Ascend 950 系列产品) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950 系列产品 |
| v1.6.0 | 8.5.0 9.0.0(Ascend 950 系列产品) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950 系列产品 |
| v1.5.0 | 8.2.RC1 9.0.0(Ascend 950 系列产品) |
Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Ascend 950 系列产品 |
| 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 950 系列产品中,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 |