本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
添加 sub_pipline_support.yaml 工作流配置 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5072 merge master into master 添加 sub_pipline_support.yaml 工作流配置 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 添加 sub_pipline_support.yaml 工作流配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2314 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5072 | 3 个月前 | |
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!1765 | 4 个月前 | |
新增aclnn接口aclnnBlockSparseAttentionV2,适配fp8量化的BlockSparseAttention算子 Co-authored-by: t00935269<tangkaidi1@huawei.com> # message auto-generated for no-merge-commit merge: !4820 merge master into master 新增aclnn接口aclnnBlockSparseAttentionV2,适配fp8量化的BlockSparseAttention算子 Created-by: tangkaidi Commit-by: t00935269 Merged-by: cann-robot Description: ## 描述 新增aclnn接口aclnnBlockSparseAttentionV2,适配fp8量化的BlockSparseAttention算子。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue 关联issue #2320 CANN/ops-transformer https://gitcode.com/cann/ops-transformer/issues/2320 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4820 | 3 个月前 | |
add short soc Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !6034 merge v5 into master add short soc Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 rename: mc62cm12a → mc62 short soc name ## 改动 - 将 mc62cm12a 重命名为 mc62 统一短命名格式 - 涉及 CMakeLists.txt、build.sh、cmake/func.cmake 及 attention/posembedding 相关配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2788 ## 测试 - 编译测试通过 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6034 | 3 个月前 | |
订正动态图fallback符号索引逻辑 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !6136 merge fix into master 订正动态图fallback符号索引逻辑 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 描述 目前transformer仓GE动态图回调时寻找符号路径为cust->opapi->各种aclnn,缺少libopapi_transformer.so common/include/fallback/fallback.h中完善寻找路径 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2760 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6136 | 3 个月前 | |
SwigluGatedMlp 算子AscendC实现贡献 Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !6133 merge master into master SwigluGatedMlp 算子AscendC实现贡献 Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 SwigluGatedMlp 算子AscendC实现贡献 来自移动终端方向国家人工智能应用中试基地 Co-authored-by: 联通(广东)产业互联网有限公司 ## 关联的Issue 关联Issue [#2576](https://gitcode.com/cann/ops-transformer/issues/2576) ## 测试 测试指令: bash build.sh -u --ops=swiglu_gated_mlp 测试结果:  ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!6133 | 3 个月前 | |
解除对ascend环境下面的op_common的依赖 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2216 merge test_ut_task into master 解除对ascend环境下面的op_common的依赖 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!2216 | 3 个月前 | |
SwigluGatedMlp 算子AscendC实现贡献 Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !6133 merge master into master SwigluGatedMlp 算子AscendC实现贡献 Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 SwigluGatedMlp 算子AscendC实现贡献 来自移动终端方向国家人工智能应用中试基地 Co-authored-by: 联通(广东)产业互联网有限公司 ## 关联的Issue 关联Issue [#2576](https://gitcode.com/cann/ops-transformer/issues/2576) ## 测试 测试指令: bash build.sh -u --ops=swiglu_gated_mlp 测试结果:  ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!6133 | 3 个月前 | |
fix: aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 Co-authored-by: Developer user<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !5918 merge master into master fix: aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 Created-by: jialimin1 Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 1、修改aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 2、修改日志打印内容 ## 关联的Issue Issue #2640 Issue #2641 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 编译包验证: [2026-05-26 03:18:07] ./uninstall.sh [2026-05-26 03:18:07] ./upgrade.sh [2026-05-26 03:18:07] CRC: 1888598674 [2026-05-26 03:18:07] SHA256: e5e52d301ebc0a74b5f34866bf194936a5fc441b6658e781ba1bc761fd8fbde1 [2026-05-26 03:18:07] Skipping md5sum at user request [2026-05-26 03:18:07] [2026-05-26 03:18:07] Self-extractable archive "cann-ops-transformer-custom_linux-x86_64.run" successfully created. 样例验证: [2026-05-26 03:21:42] Start compile and run example file: ../ffn/ffn_worker_scheduler/examples/test_aclnn_inplace_ffn_worker_scheduler.cpp [2026-05-26 03:21:49] Init ffn success, token_info_buf_size=192,token_data_buf_size= 1024. [2026-05-26 03:21:49] layer_ids_buf_size = 8. [2026-05-26 03:21:49] session_ids_buf_size = 8. [2026-05-26 03:21:49] micro_batch_ids_buf_size = 8. [2026-05-26 03:21:49] expert_ids_buf_size = 80. [2026-05-26 03:21:49] layer_ids[0] is: 55 [2026-05-26 03:21:49] layer_ids[1] is: 55 [2026-05-26 03:21:49] session_ids[0] is: 0 [2026-05-26 03:21:49] session_ids[1] is: 1 [2026-05-26 03:21:49] micro_batch_ids[0] is: 0 [2026-05-26 03:21:49] micro_batch_ids[1] is: 0 [2026-05-26 03:21:49] expert_ids[0] is: 0 [2026-05-26 03:21:49] expert_ids[1] is: 1 [2026-05-26 03:21:49] expert_ids[2] is: 2 [2026-05-26 03:21:49] expert_ids[3] is: 3 [2026-05-26 03:21:49] expert_ids[4] is: 4 [2026-05-26 03:21:49] expert_ids[5] is: 5 [2026-05-26 03:21:49] expert_ids[6] is: 6 [2026-05-26 03:21:49] expert_ids[7] is: 7 [2026-05-26 03:21:49] expert_ids[8] is: 8 [2026-05-26 03:21:49] expert_ids[9] is: 9 [2026-05-26 03:21:49] expert_ids[10] is: 0 [2026-05-26 03:21:49] expert_ids[11] is: 1 [2026-05-26 03:21:49] expert_ids[12] is: 2 [2026-05-26 03:21:49] expert_ids[13] is: 3 [2026-05-26 03:21:49] expert_ids[14] is: 4 [2026-05-26 03:21:49] expert_ids[15] is: 5 [2026-05-26 03:21:49] expert_ids[16] is: 6 [2026-05-26 03:21:49] expert_ids[17] is: 7 [2026-05-26 03:21:49] expert_ids[18] is: 8 [2026-05-26 03:21:49] expert_ids[19] is: 9 [2026-05-26 03:21:50] run test_aclnn_ffn_worker_scheduler, execute samples success [2026-05-26 03:21:50] Example completed successfully <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x]? Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5918 | 3 个月前 | |
grouped_matmul 算子A8W4场景PreNZ前处理 Co-authored-by: jiangcaoyu<jiangcaoyu@huawei.com> # message auto-generated for no-merge-commit merge: !6187 merge codex/pr5399-after-pr6021 into master grouped_matmul 算子A8W4场景PreNZ前处理 Created-by: Wei_NaChuan Commit-by: jiangcaoyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 整改gmm系列算子aclnn tiling logs打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2685](https://gitcode.com/cann/ops-transformer/issues/2685) ## 测试 - Latest commit: 6ae748da5 (Resolve grouped_matmul PreNZ conflicts after PR 6021). - Kernel-side cleanup: removed PR-added debug/comment leftovers from grouped_matmul op_kernel; no added printf, [Dbg], or dbgxOutInt4 remains in the diff. - Build PASS: bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=grouped_matmul -j32 -O3. - Build log: /tmp/ops_transformer_6187_cleanup_build_20260601_101811.log. - Custom package: /tmp/ops-transformer-pr5399-after-6021/build_out/cann-ops-transformer-custom_linux-aarch64.run. - ATK PreNZ smoke after master refresh: /tmp/atk_6187_master_sync_prenz_smoke_20260601_095249/summary.tsv, 4/4 PASS. - ATK GroupedMatmul full accuracy: /tmp/atk_pr5399_after_6021_allcases_20260601_014822/summary.tsv, 23/23 PASS, 4483 cases PASS. - ATK version: 26.4.30; devices: 2,3. - Memory OOB task was skipped per current test plan. ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [.] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6187 | 3 个月前 | |
feat: 新增comm_mode参数 Co-authored-by: tongzy1242<tongzeyun@huawei.com> # message auto-generated for no-merge-commit merge: !5511 merge mma2a_commMode_aclnnV2 into master feat: 新增comm_mode参数 Created-by: tongzy1242 Commit-by: tongzy1242 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为支持MatmulAlltoAll算子用户可以指定HCCL通信方式,为算子原型和ACLNN接口新增comm_mode入参。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2481](https://gitcode.com/cann/ops-transformer/issues/2481) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地测试、RDV ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **项目名称**:NPU算子检视报告 **检视模块**:mc2/matmul_allto_all (PR #5511 全量变更,涉及34个文件) **检视人**:Turing Team **检视日期**:2026-05-30 ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 发现问题总数 | 4 个 | | 严重级(CRITICAL)问题 | 1 个 | | 中等级(MEDIUM)问题 | 2 个 | | 轻微级(LOW)问题 | 1 个 | | 误报数量 | 0 个 | | 检视条款总数 | 14 条 | | 通过条款数 | 10 条 | **核心结论**:PR #5511(V2接口新增commMode参数 + 公共基类提取)整体设计合理,代码结构清晰。存在1处 CRITICAL 级编译条件导致通信模式静默降级风险(CCU/AICPU 选择逻辑在特定编译条件下失效),1处 MEDIUM 级 executor 空指针风险,以及1处 V1 接口向后兼容性破坏。建议优先修复 CRITICAL 和 MEDIUM 级问题后再合入。 **检视模式**:PR 检视(基于 diff 全量条款检视) **代码侧别**:Host 侧(op_api / op_host / op_graph / tiling / UT) **适用规范**:cpp-secure.md + ascendc-topk.md + mc2-specific.md --- ## ❌ 问题详情及修改建议 --- ### 问题ID:ISSUE-001 | 严重级别:CRITICAL(严重) #### 🔬 假设检验过程 **代码段**: CheckAndHandleCommMode 函数(matmul_allto_all_util.cpp,diff 行号 1748-1779) **假设**:H0: 默认 commMode(空字符串)的 CCU/AICPU 自动选择逻辑在所有编译条件下正确工作 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 逻辑缺陷 | MC2-13 | 当 BUILD_OPEN_PROJECT 未定义或 HCOMM_VERSION_NUM < HCCL_CHANNEL_SUPPORT_VERSION 时,rankSize 保持初始值 0,导致 0 <= 8 恒为 true,**总是选择 CCU 模式** | +40% | 40% | | 2 | 业务影响 | MC2-13 | CCU 引擎单次通信 ≤256MB 且仅适用于 ≤8P 场景。在 >8P 集群(如 16P/32P)下使用 CCU 模式会导致通信失败或数据截断 | +30% | 70% | | 3 | 防御缺失 | SEC-4.1 | rankSize == 0 作为无效值未被检测,缺少对"未能获取 rankSize"场景的错误返回 | +15% | 85% | **结论**:自信值 **85%** > 60%,**推翻原假设H0**,该代码段存在严重风险。 --- **关联红线条款**:MC2-13(CCU数据量限制)、SEC-4.1(外部输入合法性校验) **代码路径**:mc2/matmul_allto_all/op_api/matmul_allto_all_util.cpp(新增函数 CheckAndHandleCommMode,diff 行号 1757-1765) **问题类型**:编译条件分支导致通信模式静默降级 **问题描述**: 在 CheckAndHandleCommMode 函数中,当用户传入 commMode=""(默认值,表示自动选择通信引擎)时,函数需根据 rank 数决定使用 CCU(≤8P)还是 AICPU(>8P)。但 GetMc2RankSize 的调用被 #if defined(BUILD_OPEN_PROJECT) && HCOMM_VERSION_NUM >= HCCL_CHANNEL_SUPPORT_VERSION 条件编译保护,当编译条件不满足时: - rankSize 保持为 0 - 0 <= MAX_CCU_RANKSIZE(8) 恒为 true - **所有场景(包括 >8P)都静默选择 CCU 模式** 这违反了 CCU 的硬件约束(CCU 仅适用于 ≤8P 且单次通信 ≤256MB),在大规模集群中可能导致通信失败。 cpp // 问题代码(diff 行号 1757-1765) } else if (strncmp(commModeStr, "", maxLength) == 0) { // default:小于等于8P走CCU,否则走AICPU uint32_t rankSize = 0; #if defined(BUILD_OPEN_PROJECT) && HCOMM_VERSION_NUM >= HCCL_CHANNEL_SUPPORT_VERSION auto getRankSizeRet = Mc2Aclnn::Mc2Context::GetMc2RankSize(group, rankSize); CHECK_RET(getRankSizeRet == ACLNN_SUCCESS, getRankSizeRet); #endif // rankSize == 0 时,总是选择 CCU! commModeEnum = (rankSize <= MAX_CCU_RANKSIZE) ? Mc2Comm::COMM_MODE_CCU : Mc2Comm::COMM_MODE_AICPU; } #### 修改建议 **修改前代码**: cpp } else if (strncmp(commModeStr, "", maxLength) == 0) { uint32_t rankSize = 0; #if defined(BUILD_OPEN_PROJECT) && HCOMM_VERSION_NUM >= HCCL_CHANNEL_SUPPORT_VERSION auto getRankSizeRet = Mc2Aclnn::Mc2Context::GetMc2RankSize(group, rankSize); CHECK_RET(getRankSizeRet == ACLNN_SUCCESS, getRankSizeRet); #endif commModeEnum = (rankSize <= MAX_CCU_RANKSIZE) ? Mc2Comm::COMM_MODE_CCU : Mc2Comm::COMM_MODE_AICPU; } **修改后代码**: cpp } else if (strncmp(commModeStr, "", maxLength) == 0) { uint32_t rankSize = 0; #if defined(BUILD_OPEN_PROJECT) && HCOMM_VERSION_NUM >= HCCL_CHANNEL_SUPPORT_VERSION auto getRankSizeRet = Mc2Aclnn::Mc2Context::GetMc2RankSize(group, rankSize); CHECK_RET(getRankSizeRet == ACLNN_SUCCESS, getRankSizeRet); #else // 编译条件不支持动态获取 rankSize,无法自动选择,要求用户显式指定 OP_LOGE(ACLNN_ERR_PARAM_INVALID, "commMode auto-detect requires BUILD_OPEN_PROJECT && HCOMM_VERSION_NUM >= %d. " "Please explicitly specify commMode as 'ccu' or 'ai_cpu'.", HCCL_CHANNEL_SUPPORT_VERSION); return ACLNN_ERR_PARAM_INVALID; #endif commModeEnum = (rankSize <= MAX_CCU_RANKSIZE) ? Mc2Comm::COMM_MODE_CCU : Mc2Comm::COMM_MODE_AICPU; } **修改说明**:在 #else 分支中返回错误码,要求用户显式指定通信模式,而非静默降级到可能不安全的 CCU 模式。这符合 SEC-4.1"外部输入合法性校验"红线要求,避免在信息不足时做出可能违反硬件约束的决策。 --- ### 问题ID:ISSUE-002 | 严重级别:MEDIUM(中等) #### 🔬 假设检验过程 **代码段**:aclnnMatmulAlltoAllBase 和 aclnnQuantMatmulAlltoAllBase(matmul_allto_all_base.cpp / quant_matmul_allto_all_base.cpp,diff 行号 1657-1685) **假设**:H0: executor 参数在使用前已保证非空 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 空指针风险 | SEC-3.5 | NnopbaseGetUserHandle(executor) 在 executor 未判空的情况下直接调用 | +30% | 30% | | 2 | 调用链分析 | SEC-3.5 | 在 GetWorkspaceSize 阶段,*executor != nullptr 已检查;但 Execute 阶段(Base 函数)的 executor 由框架传入,框架层无公开契约保证非空 | +25% | 55% | | 3 | 防御一致性 | SEC-3.5 | 原始代码(V1 删除部分,diff 行号 397-411)同样未判空,此为预存问题,但重构时未修复 | +15% | 70% | **结论**:自信值 **70%** > 60%,**推翻原假设H0**,该代码段存在空指针风险。 --- **关联红线条款**:SEC-3.5(指针使用前判空) **代码路径**: - mc2/matmul_allto_all/op_api/matmul_allto_all_base.cpp(aclnnMatmulAlltoAllBase,diff 行号 1662) - mc2/matmul_allto_all/op_api/quant_matmul_allto_all_base.cpp(aclnnQuantMatmulAlltoAllBase) **问题类型**:executor 指针未判空直接使用 **问题描述**: aclnnMatmulAlltoAllBase 函数中,executor 参数直接传入 NnopbaseGetUserHandle(executor) 和后续的 NnopbaseSetHcclServerType(executor, ...) 调用,未进行 nullptr 检查。虽然框架层通常保证 executor 非空,但作为公开 API 入口,缺少防御性校验不符合 SEC-3.5 规范要求。 cpp // 问题代码(diff 行号 1657-1662) aclnnStatus aclnnMatmulAlltoAllBase(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream) { if (NnopbaseSetHcclServerType) { if (GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) { void *arg = NnopbaseGetUserHandle(executor); // executor 未判空! #### 修改建议 **修改前代码**: cpp aclnnStatus aclnnMatmulAlltoAllBase(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream) { if (NnopbaseSetHcclServerType) { if (GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) { void *arg = NnopbaseGetUserHandle(executor); **修改后代码**: cpp aclnnStatus aclnnMatmulAlltoAllBase(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream) { CHECK_RET(executor != nullptr, ACLNN_ERR_PARAM_NULLPTR); if (NnopbaseSetHcclServerType) { if (GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) { void *arg = NnopbaseGetUserHandle(executor); **修改说明**:在函数入口添加 executor 空指针校验,使用 CHECK_RET 宏返回 ACLNN_ERR_PARAM_NULLPTR 错误码。同样需要在 aclnnQuantMatmulAlltoAllBase 中添加相同检查。符合 SEC-3.5"指针使用前判空"红线要求。 --- ### 问题ID:ISSUE-003 | 严重级别:MEDIUM(中等) #### 🔬 假设检验过程 **代码段**:V1 接口 aclnnMatmulAlltoAllGetWorkspaceSize 和 aclnnQuantMatmulAlltoAllGetWorkspaceSize **假设**:H0: V1 接口行为与重构前完全一致 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 行为变更 | SEC-4.1 | 原始 A5 代码使用 Mc2Comm::GetCommModeFromEnv() 从环境变量读取通信模式,V1 重构后硬编码为 "ccu" | +35% | 35% | | 2 | 兼容性破坏 | 10.5 | 环境变量 ENV_MC2_COMM_MODE_AICPU 的配置能力被静默移除,用户无法通过环境变量切换到 AICPU 模式 | +25% | 60% | | 3 | 影响范围 | MC2-13 | 在 >8P A5 集群中,用户之前通过环境变量指定 AICPU 模式以绕过 CCU 限制。升级后 V1 接口强制使用 CCU,可能导致通信失败 | +15% | 75% | **结论**:自信值 **75%** > 60%,**推翻原假设H0**,V1 接口存在向后兼容性问题。 --- **关联红线条款**:SEC-4.1(外部输入合法性校验)、10.5(接口变更考虑兼容性)、MC2-13 **代码路径**: - mc2/matmul_allto_all/op_api/aclnn_matmul_allto_all.cpp(diff 行号 387) - mc2/matmul_allto_all/op_api/aclnn_quant_matmul_allto_all.cpp(diff 行号 999) **问题类型**:V1 接口环境变量配置能力被静默移除 **问题描述**: V1 接口重构后,A5 平台的通信模式从"环境变量可配置"变为"硬编码为 CCU"。原始代码(diff 行号 399)使用 Mc2Comm::GetCommModeFromEnv() 支持通过 ENV_MC2_COMM_MODE_AICPU 环境变量切换到 AICPU 模式。重构后 V1 接口(diff 行号 387)硬编码 commMode = "ccu",环境变量配置能力被静默移除,且无任何告警日志。 对于已部署的大规模 A5 集群(>8P),用户可能依赖环境变量强制使用 AICPU 模式。升级后此配置失效且无提示。 cpp // 删除的原始代码(diff 行号 399) uint8_t commMode = Mc2Comm::GetCommModeFromEnv(); // 新增的替代代码(diff 行号 387) const char *commMode = (op::GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) ? "ccu" : ""; #### 修改建议 **方案A(推荐):V1 接口保留环境变量兜底** cpp // aclnn_matmul_allto_all.cpp(V1接口) const char *commMode = ""; if (op::GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) { // 优先使用显式参数(V2行为),V1无显式参数时保留环境变量兼容 if (Mc2Comm::GetCommModeFromEnv() != Mc2Comm::COMM_MODE_CCU) { commMode = "ai_cpu"; } else { commMode = "ccu"; } } **方案B(最小改动):添加告警日志** cpp const char *commMode = (op::GetCurrentPlatformInfo().GetCurNpuArch() == NpuArch::DAV_3510) ? "ccu" : ""; // 至少添加日志,提示用户行为变更 if (op::GetCurrentPlatformInfo().GetCurNpuArch() == NpuChar::DAV_3510) { OP_LOGW("MatmulAlltoAll V1: commMode is hardcoded to 'ccu'. " "For AICPU mode, please use V2 interface with commMode='ai_cpu'."); } **修改说明**:建议采用方案A,保持 V1 接口向后兼容。如果确定要废弃环境变量方式,至少添加告警日志通知用户行为变更,符合规范 10.5"接口变更考虑兼容性"要求。 --- ### 问题ID:ISSUE-004 | 严重级别:LOW(轻微) #### 🔬 假设检验过程 **代码段**:ALLTOALLMATMUL_ATTR_COMM_MODE_INDEX = 0(matmul_allto_all_util_tiling.h,diff 行号 2875) **假设**:H0: 该占位值在当前版本不会导致实际错误 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 占位符注释 | SEC-4.1 | 注释明确标注"AlltoAllMatmul原型修改时再更改该值",表示开发者知晓此值为临时占位 | +20% | 20% | | 2 | 使用位置 | SEC-4.1 | 该值被用于 ALLTOALL_MATMUL_INDEX_SCHEMA.commMode,但 AlltoAllMatmul 算子的 tiling 流程在原型修改前不会触发此路径 | +15% | 35% | | 3 | 潜在冲突 | TOPK-7 | 如果 AlltoAllMatmul 原型未修改但 tiling 代码被意外调用,index 0 会读取到 group 属性而非 comm_mode | +15% | 50% | **结论**:自信值 **50%** < 60%,**无法推翻原假设H0**,标记为疑似,供参考。 --- **关联条款**:SEC-4.1、TOPK-7 **代码路径**:mc2/matmul_allto_all/op_host/matmul_allto_all_util_tiling.h(diff 行号 2875) **问题类型**:占位常量与已有 See merge request: cann/ops-transformer!5511 | 3 个月前 | |
fix_mhc_static | 3 个月前 | |
MoeFinalizeRoutingV2 性能优化 Co-authored-by: guoqiuhao<guoqiuhao1@huawei.con> # message auto-generated for no-merge-commit merge: !6018 merge perf into master MoeFinalizeRoutingV2 性能优化 Created-by: guoqiuhao Commit-by: guoqiuhao Merged-by: cann-robot Description: ## 描述 MoeFinalizeRoutingV2 提升小K小H场景下的性能 ## 关联的Issue [#2808](https://gitcode.com/cann/ops-transformer/issues/2808) ## 测试 ST 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6018 | 3 个月前 | |
norm_rope_concat和norm_rope_concat_grad中的uint_32替换为uint_64 Co-authored-by: huyihang<huyihang6@h-partners.com> # message auto-generated for no-merge-commit merge: !6040 merge 528norm into master norm_rope_concat和norm_rope_concat_grad中的uint_32替换为uint_64 Created-by: huyihang1117 Commit-by: huyihang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> norm_rope_concat和norm_rope_concat_grad中的uint_32替换为uint_64,防止可能存在的数值溢出 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2810 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> atk测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6040 | 3 个月前 | |
添加aclnn头文件弃用警告功能 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5474 merge master into master 添加aclnn头文件弃用警告功能 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 在算子构建安装流程中,为 Level2 目录下的头文件自动添加 #warning 废弃告警,提示用户迁移到 include/aclnnop 路径下的同名头文件。 改动原因 Level2 头文件计划废弃,需要在编译时通过 #warning 提前通知用户切换到新的头文件路径,避免后续版本移除时出现编译失败。 改动方法 新增脚本 scripts/util/add_deprecation_warning.py:解析头文件,定位最后一个 #include 行,在其后插入 #warning "This file is scheduled to be deprecated. Please use the file with the same name under include/aclnnop in the CANN package installation path instead." 修改 cmake/opbuild.cmake:在 Level2 头文件安装完成后,通过 install(CODE ...) 调用上述 Python 脚本,对已安装的头文件执行告警注入 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2516 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5474 | 3 个月前 | |
refactor: remove dead S1 outer split code in flash_attn arch35 tiling and add UT Co-authored-by: PerrySkywalerk<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !5947 merge fix_fa_ut into master refactor: remove dead S1 outer split code in flash_attn arch35 tiling and add UT Created-by: PerrySkywalker Commit-by: PerrySkywalerk Merged-by: cann-robot Description: ## 描述 清理 flash_attn arch35 tiling 中未使用的 S1 外切分代码,新增 arch35 tiling UT 用例提升测试覆盖率。 ## 改动 - 移除 flash_attn_tiling.cpp/.h 中未使用的 GetWinLeftsRightUp、FixParamWithRowInvalid、CheckS1OutSplit、SplitOutSeq 方法 - 移除未使用的成员变量 enableS1OutSplit - 简化 SplitPolicy,移除死代码 S1 outer split 分支 - 新增 arch35 tiling UT 用例(PA_BBND 正常场景、dtype 不一致、headnum 非法、layout 非法、format 非法等 13 条) - 在 test_config.yaml 中启用 flash_attn UT ## 关联的Issue #2693 ## 测试 - UT 新增用例覆盖 arch35 tiling 校验路径 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5947 | 3 个月前 | |
add new sparse_lightning_indexer_kl_loss_grad operator Co-authored-by: xuanyuandy<dingyong19@huawei.com> # message auto-generated for no-merge-commit merge: !5767 merge slikg_pull into master add new sparse_lightning_indexer_kl_loss_grad operator Created-by: xuanyuandy Commit-by: xuanyuandy Merged-by: cann-robot Description: ## 描述 新增sparse_lightning_indexer_kl_loss_grad算子,包含aclnn接口,算子资料,torch适配,kernel实现 ## 关联的Issue 关联Issue [#2785](https://gitcode.com/cann/ops-transformer/issues/2785) ## 测试 python测试脚本见attention/sparse_lightning_indexer_kl_loss_grad/tests/pytest/test_sparse_lightning_indexer_kl_loss_grad.py ## 文档更新 更新sparse_lightning_indexer_kl_loss_grad算子README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5767 | 3 个月前 | |
更新license Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge lic into master 更新license Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新license <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!568 | 8 个月前 | |
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3578 | 5 个月前 | |
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!1765 | 4 个月前 | |
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3578 | 5 个月前 | |
Transformer 更新Latest News Co-authored-by: lidongsheng<lidongsheng43@huawei.com> # message auto-generated for no-merge-commit merge: !771 merge docs into master Transformer 更新Latest News Created-by: qq_46353993 Commit-by: lidongsheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!771 | 7 个月前 | |
fix_mhc | 3 个月前 | |
docs: 补充生态算子精度标准引用 Co-authored-by: chaotang233<tangchao47@hisilicon.com> # message auto-generated for no-merge-commit merge: !5006 merge master into master docs: 补充生态算子精度标准引用 Created-by: chaotang233 Commit-by: chaotang233 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加精度标准的索引,确保仓可以引用到精度标准 会议纪要:https://etherpad-cann.meeting.osinfra.cn/p/TSC  ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5006 | 3 个月前 | |
init | 11 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !3571 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3571 | 5 个月前 | |
新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5187 merge master into master 新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2350 https://gitcode.com/cann/ops-transformer/issues/1683 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5187 | 3 个月前 | |
doc Tools工具扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !3432 merge master into master doc Tools工具扫描问题修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools工具扫描问题修改 See merge request: cann/ops-transformer!3432 | 5 个月前 | |
支持按模板参数编译算子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 | 5 个月前 | |
更新protobuf版本 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !522 merge prof into master 更新protobuf版本 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新protobuf版本 ## 关联的Issue 关联Issue [#316](https://gitcode.com/cann/ops-transformer/issues/316) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!522 | 8 个月前 | |
add short soc Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !6034 merge v5 into master add short soc Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 rename: mc62cm12a → mc62 short soc name ## 改动 - 将 mc62cm12a 重命名为 mc62 统一短命名格式 - 涉及 CMakeLists.txt、build.sh、cmake/func.cmake 及 attention/posembedding 相关配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2788 ## 测试 - 编译测试通过 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6034 | 3 个月前 | |
修复GMMFR算子统计不到UT覆盖率的问题 Co-authored-by: zhangzhizhuo<zhangzhizhuo1@huawei.com> # message auto-generated for no-merge-commit merge: !4938 merge fixgmmfrut into master 修复GMMFR算子统计不到UT覆盖率的问题 Created-by: zhangzhizhuo Commit-by: zhangzhizhuo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 改动原因:目前算子UT覆盖率统计,统计不到GMMFinalizerouting算子,修改配置文件以统计到覆盖率 方法:修改相关配置文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联issue [#2400](https://gitcode.com/cann/ops-transformer/issues/2400) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> na ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新example的命名。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4938 | 3 个月前 | |
移除gawk依赖,使用shell内置命令替代 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4704 merge master into master 移除gawk依赖,使用shell内置命令替代 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 移除gawk依赖,使用shell内置命令替代 资料描述错误修改 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2119 https://gitcode.com/cann/ops-transformer/issues/2049 https://gitcode.com/cann/ops-transformer/issues/2149 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4704 | 3 个月前 | |
前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4532 merge master into master 前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 1、手动安装,最小化环境依赖不清晰 资料调整 2、SOC 参数错误应更新 build.sh 支持列表并完善文档说明 3、requirement.txt Python 依赖冲突应显式声明版本约束与缺失依赖 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2018 https://gitcode.com/cann/ops-transformer/issues/2017 https://gitcode.com/cann/ops-transformer/issues/2016 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4532 | 4 个月前 | |
chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5895 merge chore/version-upgrade-9.1.0 into master chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 ops-transformer 版本升级至 9.1.0,同步更新 opbase 依赖 tag,移除不再需要的 asc-tools 构建依赖。 ## 改动 - version.cmake: 版本号从 9.0.0 升级至 9.1.0 - version.cmake: 移除 asc-tools >=8.5 构建依赖 - cmake/third_party/opbase.cmake: opbase tag ID 从 6604d3c 更新为 ee5334d ## 关联的Issue #2662 https://gitcode.com/cann/ops-transformer/issues/2599 ## 测试 - bash build.sh --pkg --jit 编译打包通过 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:版本升级 See merge request: cann/ops-transformer!5895 | 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 | 5 个月前 |
ops-transformer
🔥Latest News
- [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算子插件,包括NPUFlashAttention、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] 开源算子支持CANN Simulator仿真工具开发调试。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 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}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码 。
git clone -b ${tag_version} https://gitcode.com/cann/ops-transformer.git
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。