本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(ci): run examples and UT check only for master Co-authored-by: NewCoderChenxi<chenxi116@huawei.com> # message auto-generated for no-merge-commit merge: !15206 merge fix/examples-ut-master-only-20261103 into master fix(ci): run examples and UT check only for master Created-by: mayafei Commit-by: NewCoderChenxi Merged-by: cann-robot Description: ## 描述 将 examples/UT 完整性检查限制为仅对目标分支为 master 的 PR 执行。目标为 9.2.0 的 PR #15196 在 run #13871 中实际报错:找不到 scripts/ci/check_examples_ut.py,随后上传报告又因 build/check_examples_ut.csv 不存在失败。 本次仅在 JOB_check_examples_ut 的 job 层增加一行 if: env.TARGET_BRANCH == 'master',与同文件 Pre_compile_host_910B、Pre_compile_package_910B 等作业保持一致。TARGET_BRANCH 已由 atomgit.base_ref 提供,因此按 PR 目标分支判断。非 master 分支整项检查(含 Checkout、文件清单下载、检测和报告上传)跳过,避免只跳过脚本而仍执行 always() 上传。 ## 关联的Issue 无。关联故障:PR #15196,流水线 https://gitcode.com/CANN/ops-transformer/actions/runs/a7a2319f076e42049fe240c461a28d52 。 ## 测试 - GitCode 官方 Workflow YAML 校验接口返回 valid=true、diagnostics=[]。 - YAML 结构对比通过:唯一变化是目标 job 新增 if;现有步骤和其他作业保持一致。 - git diff --check 通过。 - 对照真实 9.2.0 流水线 #13871:相同分支条件的 Pre_compile_host_910B、Pre_compile_package_910B 均为 IGNORED;未加条件的 Check_examples_ut 为 FAILED。已核对脚本不存在与报告不存在的原始日志。 - 创建后通过 compile 触发本 PR 的 CI;修复后非 master 的实际跳过结果需在工作流生效后复跑确认,不将对照记录算作本次修复的实跑结果。 ## 文档更新 无。 ## 类型标签 - [x] 🐛 Bug修复 - [x] 📦 构建/CI - [x] 🔧 配置变更 See merge request: cann/ops-transformer!15206 | 3 天前 | |
qsmla文档描述修改 Co-authored-by: yipyip<chenyipeng6@huawei.com> # message auto-generated for no-merge-commit merge: !15128 merge master into master qsmla文档描述修改 Created-by: yipyip Commit-by: yipyip Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> qsmla 量化模式文档错误修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/6795 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15128 | 2 天前 | |
test(opapi): remove failing worker scheduler cases Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !14892 merge test/opapi-filter-worker-scheduler-cases into master test(opapi): remove failing worker scheduler cases Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 删除以下两个在在线 x86_64 CANN 9.3 环境失败的 Worker Scheduler op_api UT 用例: - l2_attention_worker_scheduler_test.normal_input_success - l2_ffn_worker_scheduler_test.case_norm_int8 同时修正增量编译范围解析:算子目录下的 */tests/ 文件不再被识别为产品源码,避免纯测试改动误触发对应算子的定制包编译。 保留两个算子的其他参数校验用例;不修改 CMake、算子实现及产品构建逻辑。 ## 关联的Issue 暂无。 ## 测试 - pre-commit(包含格式、ruff 及 OAT 检查)通过。 - git diff --check 通过。 - 编译范围正反例通过:测试文件改动不选择产品算子,产品源码改动仍正确选择对应算子。 - compile scope 白名单自检通过(21 项)。 - 提交后评论 compile 执行线上验证。 ## 文档更新 不涉及。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 重构 - [x] 测试 - [x] 构建/CI - [ ] 配置变更 - [ ] 文档更新 - [ ] 依赖升级 - [ ] 安全修复 - [x] 代码清理 - [ ] 其他,请描述: See merge request: cann/ops-transformer!14892 | 3 天前 | |
fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !15126 merge master into master fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15126 | 3 天前 | |
docs(AddExample): 修正快速入门中的算子包名称 Co-authored-by: zzzzzzyf_<zhouyunfei10@huawei.com> # message auto-generated for no-merge-commit merge: !15256 merge fix/issue-6777-20261104 into master docs(AddExample): 修正快速入门中的算子包名称 Created-by: zzzzzzyf_ Commit-by: zzzzzzyf_ Merged-by: cann-robot Description: ## 描述 快速入门中的编译成功提示将算子包名写成 cann-ops-transformer-custom_linux.${arch}.run,与实际打包名称不一致。 将架构前的分隔符改为连字符,统一为 cann-ops-transformer-custom_linux-${arch}.run,保留架构占位符。 ## 关联的Issue 关联 #6777:https://gitcode.com/cann/ops-transformer/issues/6777 该 Issue 另涉及 9.1.0 分支的安装校验失败;相关构建修复已在 master 的 [历史构建修复 PR](https://gitcode.com/cann/ops-transformer/pull/6921) 合入,9.1.0 场景仍需单独验证。本 PR 仅修正文档包名。 ## 测试 - 核对 cmake/custom_build.cmake 中 CPACK_PACKAGE_FILE_NAME,文档包名格式与打包配置一致。 - git -c core.whitespace=cr-at-eol diff --check:通过。 - 仅修改一行文档,未执行编译或 NPU 测试。 ## 文档更新 更新 docs/QUICKSTART.md 的编译成功提示。 ## 类型标签 - [x] 📝 文档更新 See merge request: cann/ops-transformer!15256 | 2 天前 | |
基于<<<>>>调用的CCU AlltoAll+MXFP8 matmul融合算子 example Co-authored-by: chuguowei<chuguowei@huawei.com> # message auto-generated for no-merge-commit merge: !13259 merge master-0914 into master 基于<<<>>>调用的CCU AlltoAll+MXFP8 matmul融合算子 example Created-by: chuguowei Commit-by: chuguowei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13259 | 4 天前 | |
【社区任务】AscendC实现KvCacheTurboQuant算子 Co-authored-by: gca_u2301_79797147<snj050802@163.com> # message auto-generated for no-merge-commit merge: !14198 merge feature/kv-cache-turbo-quant into master 【社区任务】AscendC实现KvCacheTurboQuant算子 Created-by: gca_u2301_79797147 Commit-by: gca_u2301_79797147 Merged-by: cann-robot Description: ## 描述 新增 KvCacheTurboQuant 算子,用于标准 MHA/GQA KV cache 在线低比特编码。 本 PR 包含: - 2/3/4-bit 主量化索引编码; - QJL 残差符号编码; - norm/gamma metadata 输出; - mixed AIC/AIV pipeline 和 generic vector fallback; - OpDef、InferShape/InferDataType、Tiling、Ascend C Kernel; - README、ACLNN 文档、示例和 Host UT。 ## 关联的Issue 关联的issue:https://gitcode.com/cann/ops-transformer/issues/6363 ## 测试 环境:CANN 9.1,Atlas A2 / Ascend 910B3,Release 构建。 ## 文档更新 - 新增算子 README; - 新增 ACLNN 接口文档; - 新增调用示例; - 新增 Host UT。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14198 | 3 天前 | |
test(opapi): remove failing worker scheduler cases Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !14892 merge test/opapi-filter-worker-scheduler-cases into master test(opapi): remove failing worker scheduler cases Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 删除以下两个在在线 x86_64 CANN 9.3 环境失败的 Worker Scheduler op_api UT 用例: - l2_attention_worker_scheduler_test.normal_input_success - l2_ffn_worker_scheduler_test.case_norm_int8 同时修正增量编译范围解析:算子目录下的 */tests/ 文件不再被识别为产品源码,避免纯测试改动误触发对应算子的定制包编译。 保留两个算子的其他参数校验用例;不修改 CMake、算子实现及产品构建逻辑。 ## 关联的Issue 暂无。 ## 测试 - pre-commit(包含格式、ruff 及 OAT 检查)通过。 - git diff --check 通过。 - 编译范围正反例通过:测试文件改动不选择产品算子,产品源码改动仍正确选择对应算子。 - compile scope 白名单自检通过(21 项)。 - 提交后评论 compile 执行线上验证。 ## 文档更新 不涉及。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 重构 - [x] 测试 - [x] 构建/CI - [ ] 配置变更 - [ ] 文档更新 - [ ] 依赖升级 - [ ] 安全修复 - [x] 代码清理 - [ ] 其他,请描述: See merge request: cann/ops-transformer!14892 | 3 天前 | |
fix(gmmia): 修正 ACLNN 样例转置 view 并迁移至 arch35 Co-authored-by: zhoushaolong<zhoushaolong3@huawei.com> # message auto-generated for no-merge-commit merge: !15192 merge fix/gmmia-aclnn-example-arch35-20261103 into master fix(gmmia): 修正 ACLNN 样例转置 view 并迁移至 arch35 Created-by: zhoushaolong Commit-by: zhoushaolong Merged-by: cann-robot Description: ## 描述 修复 QuantGroupedMatmulInplaceAdd ACLNN 调用样例的 x1 布局,并按架构目录组织样例。 1. CreateAclTensor 新增默认值为 false 的 transpose 参数:以传入 shape 表示连续 storage;开启转置时交换 viewShape 与 strides 的前两个维度,保持底层数据和 storage shape 不变。 2. 创建 x1 时显式传入 true,构造 storage [K,M]、view [M,K]、stride [1,M] 的转置视图,以满足样例所述的 TN-only 接口要求。即使当前方阵示例转置前后 shape 相同,也必须交换 stride,不能仅凭 shape 判断已转置。 3. 将样例从 examples/ 迁移至 examples/arch35/,同步 README 的样例链接。 4. 补充 <utility>,删除未使用的 out 变量,并将 aclrtStream 初始化为 nullptr。 本次仅修改样例及 README,不修改算子 API 或 kernel 实现。 ## 关联的Issue 关联 Issue #7050:https://gitcode.com/cann/ops-transformer/issues/7050 ## 测试 提交 3e78774ab913e15007266f5a9f45a5fbca608df1 的提交说明记录:在 Ascend 950、CANN 9.3.0 weekly.20261014.01 环境下,旧布局返回 161002,修正后样例运行成功,8 个输出均为 5。此为提交说明中的验证记录,本次未独立复跑或核验原始日志。 本次已核对完整 diff(两处文件变更,+14/-7);未执行编译、UT 或设备测试。上述样例验证不等同于算子全量回归,PR 未新增 UT。 ## 文档更新 更新 gmm/quant_grouped_matmul_inplace_add/README.md 的 ACLNN 样例链接,指向 examples/arch35/test_aclnn_quant_grouped_matmul_inplace_add.cpp。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15192 | 2 天前 | |
master英文合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !14969 merge master into master master英文合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 商发的英文文档合入 ## 关联的Issue 关联Issue [#6488](https://gitcode.com/cann/ops-transformer/issues/6488) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14969 | 7 天前 | |
v1接口默认aicpu通路,取消通信量限制 Co-authored-by: w00951525<wangfuhao7@huawei.com> # message auto-generated for no-merge-commit merge: !15210 merge fix_agmmv1_md into master v1接口默认aicpu通路,取消通信量限制 Created-by: w00951525 Commit-by: w00951525 Merged-by: cann-robot Description: ## 描述 agmmv1算子在950环境默认走aicpu通路,去除针对ccu才有的通信量限制 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15210 | 2 天前 | |
fix(block_attention_residuals): 空指针入参返回码修正为 161001 Co-authored-by: kdy18482276080<kongdeyuan3@huawei.com> # message auto-generated for no-merge-commit merge: !14588 merge fix/block-attention-residuals-nullptr-6687 into master fix(block_attention_residuals): 空指针入参返回码修正为 161001 Created-by: kdy18482276080 Commit-by: kdy18482276080 Merged-by: cann-robot Description: ## 描述 aclnnBlockAttentionResidualsGetWorkspaceSize 中 CheckNotNull 失败分支原返回 ACLNN_ERR_PARAM_INVALID(161002),与资料《返回值》表声明的 ACLNN_ERR_PARAM_NULLPTR(161001)不一致,也与算子内部 plog 已打印的 errno[161001] 日志不一致。 本 PR 将该分支修正为返回 ACLNN_ERR_PARAM_NULLPTR(161001),覆盖以下 6 类空指针场景: - partialBlock / blockRes / projWeight / normWeight / hiddenStates 为空 - needBackward=true 时 invNorm 为空(probs 同理) 与仓内其他算子(如 aclnn_mhc_pre、aclnn_fused_gdn_decode、aclnn_grouped_matmul_finalize_routing)的 CHECK_RET(CheckNotNull(params), ACLNN_ERR_PARAM_NULLPTR) 惯例保持一致。 ## 关联的Issue Closes https://gitcode.com/cann/ops-transformer/issues/6687 ## 测试 按 issue #6687 中的 repro 脚本预期,6 个置空场景的 ret_gws 由 161002 变为 161001: CONTROL(legal) ret_gws=0 partialBlock=nullptr ret_gws=161001 blockRes=nullptr ret_gws=161001 projWeight=nullptr ret_gws=161001 normWeight=nullptr ret_gws=161001 hiddenStates=nullptr ret_gws=161001 invNorm=nullptr(needBwd) ret_gws=161001 ## 文档更新 无需更新,代码修正后与 mhc/block_attention_residuals/docs/aclnnBlockAttentionResiduals.md 中已有的《返回值》错误码表一致。 ## 类型标签 - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14588 | 4 天前 | |
fix(moe): 修复 routing map 空输出、排序 repeat 上限和 UB 预算 Co-authored-by: xftxyz<pangxiaoyu@h-partners.com> # message auto-generated for no-merge-commit merge: !15148 merge fix/moe-routing-map-empty-output-and-ub into master fix(moe): 修复 routing map 空输出、排序 repeat 上限和 UB 预算 Created-by: xftxyz Commit-by: xftxyz Merged-by: cann-robot Description: ## 修改内容 - permute 沿用 #14802 的空输出短路条件,并将每个排序分块限制为 255 次 repeat。 - permute 和 unpermute 的 masked-select 按参与核数分配 offsetBuf,host 同步预留 offsetBuf 和 sumBuf 的 UB 空间。 - unpermute-grad 在 non-pad 且带 probs 的路径按对齐后的槽位数和概率 dtype 预留 UB,并保留原有预留量作为下限。 ## 验证 原版 A5 真机用例使用 BF16 token、FP32 probs,T=1792、E=64、topK=8、H=16384。Host 日志显示 56 核、有效 UB 253952 B、索引槽位 256、hidden tile 10448。按 kernel 分配计算共需 254144 B,超出预算 192 B。本次用例的两个梯度均通过数值检查。 修复后同一用例的预期 hidden tile 为 10432,对应 253760 B。修复版仍待真机复测。分支 diff 已通过 git diff --check。 相关 PR:#14802。 See merge request: cann/ops-transformer!15148 | 3 天前 | |
refactor: 抽取 kv_rms_norm_rope_cache arch35 寄存器级向量函数到 regbase_vf.h Co-authored-by: zzz_yuntao<18015824983@163.com> # message auto-generated for no-merge-commit merge: !15257 merge revert-mr-14130-1793755986504-auto into master refactor: 抽取 kv_rms_norm_rope_cache arch35 寄存器级向量函数到 regbase_vf.h Created-by: zzz_yuntao Commit-by: zzz_yuntao Merged-by: cann-robot Description: Closes #7100(部分精度用例失败跟踪) ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15257 | 2 天前 | |
fix(package): uninstall built-in AICPU kernel and config directories Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !15204 merge feat/aicpu-builtin-package-manifest into master fix(package): uninstall built-in AICPU kernel and config directories Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 修复 built-in AICPU 产物卸载残留问题。 在 AICPU built-in 整包机制中,安装后会在以下路径生成 AICPU 产物: text opp/built-in/op_impl/aicpu/config/aicpu_transformer.json opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so 此前打包 XML 中 config / kernel 是普通 copy 条目,生成的 filelist.csv 记录为普通 copy。卸载逻辑中,普通 copy 条目如果目标是一个目录,会直接跳过;只有 copy_entity 条目才会递归删除目录内容。因此卸载时会跳过 AICPU 的 config / kernel 目录,导致 aicpu_transformer.json 和 libtransformer_aicpu_kernels.so 残留未被删除。 本 PR 将这两个目录标记为实体目录: xml <file value="config" entity="true" install_mod="755"/> <file value="kernel" entity="true" install_mod="755"/> 使 filelist.csv 生成 copy_entity 记录,卸载器会递归删除这两个目录,AICPU json 和 device so 不再残留。 ## 关联的Issue 7062 ## 测试 ### 环境与构建命令 bash source /home/anaconda3/etc/profile.d/conda.sh conda activate pec_py310 source /home/qzy/cann/set_env.sh bash build.sh --pkg --soc=ascend910_93 -n mixed_quant_sparse_flash_mla_metadata,block_sparse_attention -j16 其中 block_sparse_attention 用于补齐范围编译时的 tiling 链接依赖。 ### TC-01 打包成功 预期包含: text add_aicpu_cust_kernel_modules for mixed_quant_sparse_flash_mla_metadata_cust_obj Merging aicpu json inputs into .../aicpu_transformer.json Built target mixed_quant_sparse_flash_mla_metadata_cust_obj Linking cust_aicpu_kernels.so using ARM toolchain Build pkg success 结果:通过。 ### TC-02 安装成功 命令: bash bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --full --install-path=/tmp/uninstall_fix_install 结果:通过,install_exit=0。 安装后存在: text cann/opp/built-in/op_impl/aicpu/config/aicpu_transformer.json cann/opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so aicpu_transformer.json 中包含 MixedQuantSparseFlashMlaMetadata。 ### TC-03 filelist 记录正确 安装目录中的 filelist.csv 包含: text NA,copy_entity,opp/built-in/op_impl/aicpu/config,... NA,copy_entity,opp/built-in/op_impl/aicpu/kernel,... 结果:通过,不再生成普通 copy。 ### TC-04 卸载成功 命令: bash bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --uninstall --install-path=/tmp/uninstall_fix_install 结果:通过,uninstall_exit=0。 ### TC-05 AICPU 产物清理检查 命令: bash find /tmp/uninstall_fix_install -type f -path '*built-in/op_impl/aicpu/*' 结果:无输出。 即以下文件均被删除: text aicpu_transformer.json libtransformer_aicpu_kernels.so ### 验证结果汇总 | TC | 内容 | 结果 | |---|---|---| | TC-01 | AICPU 产物打包 | ✅ | | TC-02 | 安装成功,json/so 存在 | ✅ | | TC-03 | filelist 使用 copy_entity | ✅ | | TC-04 | 卸载命令成功 | ✅ | | TC-05 | json/so 被清理 | ✅ | 说明:卸载后外层 opp/built-in/op_impl/aicpu 可能作为空目录保留,目录内文件已全部清理,不影响功能。 ## 文档更新 无 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15204 | 3 天前 | |
fix(opgen): reject invalid generated C++ type names Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !13772 merge fix/rated-20261013-opgen-invalid-type-name into master fix(opgen): reject invalid generated C++ type names Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 opgen只验证原始名称的字符范围,允许3d_add、_9_value以及仅下划线名称。生成C++类型名时按下划线分词并capitalize:上述名称分别变成数字开头的3dAdd/9Value或空类型名。完整模板替换后出现class 3dAdd及OP_ADD(3dAdd)等无效声明;CLI仍exit0并报告成功,留下不可编译工程。 在复制模板前验证实际派生C++类型名必须非空且满足标识符规则。非法名称exit1,不创建工程;保留正常名称、数字后缀和有效前导下划线的既有映射。 ## 关联的Issue 由统一入口关联本次opgen非法派生类型名Issue。 ## 测试 master基线 27f9054a7f155cc56cbdd48828ae4d98e6124fce;DevEnvC_mmdv8、Ubuntu20.04/aarch64 Host、Python3.11.4、GCC9.4.0、实际完整CANN9.0.0 SDK /home/developer/Ascend/cann-9.0.0/aarch64-linux 与该安装的tools/opbuild/op_build;原生GCC编译完整生成的*_def.cpp为共享库,_GLIBCXX_USE_CXX11_ABI=0,链接真实libregister;实际op_build以OPS_PROTO_SEPARATE=1、OPS_ACLNN_GEN=1、OPS_PROJECT_NAME=aclnn生成产物。未裁剪SDK头或模板、未模拟编译器/producer。未构建完整算子包、编译设备kernel或运行NPU;驱动和芯片不参与,不声明未实测SDK/NPU版本兼容。 CANN_OPGEN_NATIVE_SDK=/home/developer/Ascend/cann-9.0.0/aarch64-linux CANN_OPGEN_NATIVE_OPBUILD=/home/developer/Ascend/cann-9.0.0/tools/opbuild/op_build python3 -m unittest discover -s tests/ut/scripts -p test_opgen_invalid_type_name.py -v 2方法/8场景:原版3d_add、_9_value、_、___均CLI exit0而完整生成OpDef在SDK/GCC下编译失败,4个回归失败;native_add、add_3d、_custom_add、add9四个合法控制完整生成、GCC编译、实际op_build均通过,并核对实际REG_OP类型名、aclnn头/源及两个SoC配置。修复后非法输入在复制前exit1且无工程残留,四个合法控制仍完整原生通过,总8通过。相同最终格式化测试在最新原版和修复执行。当前变更完整pre-commit、两处变更OAT十类0、Git/LFS fsck、diff --check、作者/提交者及唯一源提交核实。 ## 文档更新 回归写明真实SDK/Host OpDef编译及op_build产物验证范围。 ## 类型标签 - [x] Bug修复 - [x] 测试 Closes https://gitcode.com/cann/ops-transformer/issues/6089 See merge request: cann/ops-transformer!13772 | 3 天前 | |
fix[QFA]: aclnn_common HIFLOAT4数据类型兼容性修改回退 Co-authored-by: gcw_y7jrbx71<liao28@huawei.com> # message auto-generated for no-merge-commit merge: !14720 merge master into master fix[QFA]: aclnn_common HIFLOAT4数据类型兼容性修改回退 Created-by: gcw_y7jrbx71 Commit-by: gcw_y7jrbx71 Merged-by: cann-robot Description: ## 描述 PR 14417的修改影响了mc2算子,会导致torch-extension编译失败。此PR对该问题进行修复。 ## 关联的Issue 关联Issue [#6805](https://gitcode.com/cann/ops-transformer/issues/6805) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14720 | 10 天前 | |
feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !12834 merge fix_2 into master feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5016 ## 描述 #### 🐛 Bug 修复 / ✨ 特性增强 围绕既有 pre-commit 体系的三处完善(8 文件 +38/-12,1 笔提交):**拦截类钩子报告落盘**、**脚本健壮性修复**、**策略与文档对齐**。全部经 --all-files 全量实测校准。 ### 一、拦截类钩子报告统一落盘 pre-commit_reports/(不入 git) | 改动 | 内容 | |---|---| | scripts/run_codespell.sh(新增) | codespell 输出 tee 到 pre-commit_reports/codespell.log(entry 覆写仍跑托管 venv,PIPESTATUS 保退出码) | | .pre-commit-config.yaml | codespell entry 指向包装脚本 | | scripts/oat_check.sh | 报告落点 oat_reports/result.txt → pre-commit_reports/oat_result.txt(单文件与批量两条写路径同步) | | .gitignore | oat_reports/ → pre-commit_reports/ | | docs/zh/develop/pre-commit_guide.md | 失败排查节补报告位置说明 | 自动修类钩子(clang-format/ruff)直接改好文件无需报告;拼写/合规须人工处理,报告落盘便于复查与喂给 agent 修复。 ### 二、健壮性修复(姊妹仓全量实测暴露的同款隐患) | 改动 | 内容 | |---|---| | scripts/oat_check.sh | eval 拼接改数组传参 + -f 加引——文件名含 ()/&/[]/空格时 eval 会打断 shell 致扫描假死/假过(本仓当前 0 此类文件名,防御性修复) | | scripts/format_cpp.sh | 目录不存在时原仅打印提示仍继续执行,改为报错退出(exit 1) | ### 三、策略与文档对齐 | 改动 | 内容 | |---|---| | OAT.xml | 豁免 requirements*.txt(依赖清单,双过滤器)、*.info(cmake help,双过滤器)——全量扫描 250→240,残留均为真实缺头债(增量消化) | | trailing-whitespace | 补 --markdown-linebreak-ext=md(防静默剥掉 md 双空格硬换行语法,实测:双空格保留、三空格收敛、单空格照删) | | .clang-format | PointerAlignment 改 **Left**(int* p 指针随类型,领导确认口径;引用 & 同规则);年份 2025→2026 | ## 测试 - 全量 OAT 16 批真实扫描(无双误退出码);缺头 py 拦截有效、豁免类型放行 - md 双空格保留实测通过;codespell 命中落盘、OAT 报告落盘且目录不被 git 跟踪 - 本提交自身过全部钩子(含 OAT);yaml/xml/bash 语法全过 ## 留作仓主决策(本 PR 不动) - ruff --ignore 现行清单含 F841,F821,F401 等 F 系列——skills-dev 口径为「F 系列全启用抓真 bug」,两仓策略不同,建议仓主确认后另行统一 - third_party/catlass、third_party/opbase 下同名 oat_check.sh 为上游副本,未动 ## 类型标签 - [x] 🐛 Bug 修复 - [x] ✨ 特性增强 See merge request: cann/ops-transformer!12834 | 1 个月前 | |
产品文档png文件名改为英文名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9654 merge master into master 产品文档png文件名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中的png图片名由中文改为英文 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> png和相关的link md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9654 | 2 个月前 | |
ci(pre-commit): OAT 检查切换为远程 compliance hook Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13627 merge moonep_8 into master ci(pre-commit): OAT 检查切换为远程 compliance hook Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/6573 ## 描述 #### 🔧 配置变更 按社区统一接入方式(issue #6573,chenyx_2012)切换:OAT 合规检查由「仓内自维护 oat_check.sh + repo: local」切换为「HiAgent/compliance 远程 Python hook」,业务仓不再维护 OAT 脚本,OAT 版本由 rev 标签(v1.0.6)统一管控。 ## 改动(3 文件) - .pre-commit-config.yaml:repo: local 的 oat-check 块替换为 repo: https://gitcode.com/HiAgent/compliance, rev: v1.0.6(id: oat-check,pass_filenames/stages/verbose 与原配置一致) - 删除 scripts/oat_check.sh(本地脚本退役) - .gitignore 补 oat_reports/(远程 hook 报告目录) ## 行为等价性评估(已读 compliance v1.0.6 源码) 本地脚本的全部修复点均由远程 hook 覆盖,且架构更优: | 本地脚本修复点 | 远程 hook 实现 | |---|---| | 120KB 分批(E2BIG 防护) | **in-process 调用**(import oat 直接跑 pipeline),无 subprocess argv 限制,问题不存在 | | RC=1 无报告阻断 | report_file.is_file() 守卫:无报告且 RC!=0 → return 1 阻断 ✅ | | 跨批次旧报告复用 | state_file 按 HEAD SHA 聚合 + lock,_cleanup_stale_run_state 清理同 HEAD 残留 ✅ | | done-marker 去重 | "one terminal report per HEAD" 终局报告模型 + CI 分批调度取代 ✅ | | OAT.xml 支持 | _resolve_oat_xml 读仓根 OAT.xml ✅ | ## 测试 - YAML 解析通过;pre-commit run oat-check 实测通过(hook 环境自动克隆 compliance 仓并安装 OAT) - 报告目录变化:pre_commit_reports/oat_result.txt → oat_reports/result.txt(已 gitignore) ## 类型标签 - [x] 🔧 配置变更 See merge request: cann/ops-transformer!13627 | 11 天前 | |
master英文合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !14969 merge master into master master英文合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 商发的英文文档合入 ## 关联的Issue 关联Issue [#6488](https://gitcode.com/cann/ops-transformer/issues/6488) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14969 | 7 天前 | |
chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 个月前 | |
fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !15126 merge master into master fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15126 | 3 天前 | |
docs: CONTRIBUTING新增算子分类与贡献区别章节,补充生态算子覆盖率与用例上库要求 Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !14305 merge docs/contributing-builtin-experimental into master docs: CONTRIBUTING新增算子分类与贡献区别章节,补充生态算子覆盖率与用例上库要求 Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/6942 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14305 | 4 天前 | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 个月前 | |
fix(pre-commit): 全仓OAT合规整改——许可证/版权头存量修复与豁免策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13363 merge fix_3 into master fix(pre-commit): 全仓OAT合规整改——许可证/版权头存量修复与豁免策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5885 ## 描述 全仓 OAT 合规整改( pre-commit run oat-check --all-files 从 200 条问题清零): **1. OAT.xml 豁免策略对齐**(仅新增 6 行 filteritem,零删除): - experimental/.*:孵化目录豁免 license/copyright/binary 三类检查(含 swiglu_gated_mlp 等第三方 Apache-2.0 双版权贡献代码,策略上不归管) - *.jpg:文档图片豁免二进制拦截(与已有 *.png 一致) - LICENSE:许可证正文本身,豁免许可证头检查 - Third_Party_Open_Source_Software_Notice:第三方声明文件,豁免版权头检查 **2. 文件头修复(167 个源文件)**: - 旧版许可证头(redistribute it and/or modify. 句式,2026-03 入库、04-03 OAT 上线前时间差遗留)→ 标准 CANN V2 头 - 变体错别字:Copyend (c)、You can not use、in in compliance、free software; 分号、CANN 1.0 许可证等 - 无头文件补标准头(如 golden.py、executor_aclnnMoeFusedTopk.py) - 版权年保留各文件原有年份;CRLF/混合行尾文件逐字节保持原行尾,diff 仅头部 **3. 历史遗留原因**:存量问题多经网页端合并(不触发本地钩子)或 OAT 上线前入库积累。 ## 验证 - pre-commit run oat-check --all-files:9 个批次全部 0 issue,Passed - git pc HEAD~1 + 显式 pre-commit run --files 复核收敛,第 2 笔为 clang-format/ruff/end-of-files 自动修复 - py/sh 语法、OAT.xml XML 合法性校验通过 基线 master:d9d81a50a See merge request: cann/ops-transformer!13363 | 27 天前 | |
remove README 文件中NPUFlashAttention的失效链接 Co-authored-by: wym_666<wangyumei11@huawei.com> # message auto-generated for no-merge-commit merge: !14157 merge readme into master remove README 文件中NPUFlashAttention的失效链接 Created-by: wym_666 Commit-by: wym_666 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> remove README 文件中NPUFlashAttention的失效链接 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#5932](https://gitcode.com/cann/ops-transformer/issues/5932) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14157 | 17 天前 | |
fix: 修复离线场景三方件下载与在线构建URL不一致问题 Co-authored-by: Leeshoujem<michael.lixiaojie@huawei.com> # message auto-generated for no-merge-commit merge: !14028 merge fix/offline-3rd-party-download into master fix: 修复离线场景三方件下载与在线构建URL不一致问题 Created-by: Leeshoujem Commit-by: Leeshoujem Merged-by: cann-robot Description: ## 描述 fix: 修复离线场景三方件下载与在线构建URL不一致问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14028 | 17 天前 | |
支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Co-authored-by: lidongsheng<lidongsheng43@huawei.com> Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2170 merge 910_lds into master 支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Created-by: qq_46353993 Commit-by: 吴剑飞;lidongsheng Merged-by: cann-robot Description: ## 描述 本次修改支持用户通过build.sh的编译入口传入模板参数--kernel_template_input后按tilingkey编译、传入--bisheng_flags进行调试异常 ## 关联的Issue [支持按模板参数指定编译kernel](https://gitcode.com/cann/ops-transformer/issues/1036) [支持编译入参新增调试异常和调优参数](https://gitcode.com/cann/ops-transformer/issues/1044) ## 测试 二级冒烟、指定模板参数编译并执行测试用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!2170 | 7 个月前 | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 个月前 | |
fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !15126 merge master into master fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15126 | 3 天前 | |
删除dispatch/combine_setup/teardown aclnn接口,graph文件 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !12568 merge issue into master 删除dispatch/combine_setup/teardown aclnn接口,graph文件 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 moe_distribute_dispatch_setup,moe_distribute_dispatch_teardown,moe_distribute_combine_setup,moe_distribute_combine_teardown算子经评审日落,删除相关算子aclnn接口,graph文件。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/6943 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12568 | 4 天前 | |
update cmake minimum required to 3.18.4 Co-authored-by: poorwill<wangbing110@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master update cmake minimum required to 3.18.4 Created-by: wangbing110 Commit-by: poorwill Merged-by: cann-robot Description: update cmake minimum required to 3.18.4 See merge request: cann/ops-transformer!9634 | 2 个月前 | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 个月前 | |
fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !15126 merge master into master fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 fix(cmake): opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15126 | 3 天前 | |
check_compile_version Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2085 merge check_version into master check_compile_version Created-by: hid81635372 Commit-by: 吴剑飞 Merged-by: cann-robot Description: ## 描述 工程上支持在编译时对子包版本进行校验 ## 关联的Issue https://gitcode.com/cann/ops-transformer/pull/2085 ## 测试 功能上可以在子包版本低于构建依赖时进行告警,RDV已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 工程能力增加编译时版本校验功能 See merge request: cann/ops-transformer!2085 | 7 个月前 |
🔥Latest News
- [2026/08] 仓内集成pre-commit代码检查框架,配置后
git commit时自动检查并修复格式问题,将规范问题拦截在提交阶段、提升代码合入效率,详见pre-commit配置指导书。 - [2026/07] A5上新支持算子quant_flash_attn,Dense Attention全量化场景专用,以及experimental目录新增同名算子支持A5的MxFP4全量化;chunk_gated_delta_rule算子支持A5;A5新增DSV4 dense训练阶段TopK筛选反向算子dense_lightning_indexer_grad_kl_loss、dense_lightning_indexer_softmax_lse;mc2新支持算子engram_fetch_grad。
- [2026/06] A5上新增支持sparse_flash_mla、mixed_quant_sparse_flash_mla以及对应的metadata算子,用于DSV4场景稀疏Attention计算。新增lightning_indexer_v2、quant_lightning_indexer_v2以及对应的metadata算子,用于DSV4场景TopK筛选。A5新增DSV4 sparse训练阶段Attention反向算子sparse_flash_mla_grad、sparse_lightning_indexer_kl_loss_grad;mc2新支持算子engram_fetch、engram_fetch_wait。
- [2026/05] fused_infer_attention_score算子A5上支持MxFP8全量化;A5上新支持算子flash_attn,Dense Attention非量化场景专用。
- [2026/04] mc2新支持算子mega_moe。
- [2026/03] recurrent_gated_delta_rule算子支持A5。
- [2026/02] 新支持算子mhc_post、mhc_pre、mhc_res。
- [2026/01] 新支持算子grouped_matmul<<<>>>调用示例,方便用户自定义使用。
- [2026/01] 新支持算子fused_floyd_attention、fused_floyd_attention_grad、matmul_allto_all。
- [2025/12] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导。
- [2025/12] 支持transformer类onnx算子插件,包括NPUMultiHeadAttention、NPUMoeComputeExpertTokens等。
- [2025/12] 新支持算子kv_rms_norm_rope_cache、attention_update、attention_worker_scheduler、gather_pa_kv_cache、kv_quant_sparse_flash_attention、lightning_indexer_grad、mla_preprocess、mla_preprocess_v2、grouped_matmul_swiglu_quant_v2、attention_to_ffn、ffn_to_attention。
- [2025/12] 开源算子支持NPU Simulator仿真工具开发调试。
- [2025/12] 开源算子支持Ascend 950PR&950DT系列产品/KirinX90系列产品。
- [2025/11] 新支持算子kv_quant_sparse_flash_attention、lightning_indexer、quant_lightning_indexer、sparse_flash_attention。
- [2025/11] 新支持示例算子rope_matrix和all_gather_add。
- [2025/11] 新增算子开发工程模板NpuOpsTransformerExt,无缝集成PyTorch张量操作,支持自动微分和GPU/NPU统一接口。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-transformer项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-transformer是CANN(Compute Architecture for Neural Networks)算子库中提供transformer类大模型计算的进阶算子库,包括attention类、moe类、mc2类等,覆盖各类attention、MoE计算、通算融合等场景,算子库在架构图中的位置如下。

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,通用命令如下,${tag_version}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://atomgit.com/cann/ops-transformer.git
git clone -b 9.0.0 https://atomgit.com/cann/ops-transformer.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。