本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 2 个月前 | |
通过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 个月前 | |
refactor: eliminate duplicate code in flash_attn GQA kernels via variable renaming Co-authored-by: linengyao<linengyao@huawei.com> # message auto-generated for no-merge-commit merge: !8020 merge cleancode-0701 into master refactor: eliminate duplicate code in flash_attn GQA kernels via variable renaming Created-by: linengyao Commit-by: linengyao Merged-by: cann-robot Description: ## 描述 通过变量重命名消除 flash_attn GQA 核函数中 IterateBmm1DnSplitK 与 IterateBmm1Dn 之间的重复代码块。 ## 改动 - flash_attn_block_cube_noquant_gqa.h: IterateBmm1DnSplitK 中变量 mm1B->mm1BBuffer、mm1A->mm1ABuffer,消除与 IterateBmm1Dn 的文本重复 - flash_attn_block_vec_noquant_gqa.h: 局部变量声明顺序调整、CopyAttentionOut 中 if-else 分支顺序调整,保持逻辑等价 - flash_attn.cpp: FlashAttn 函数签名参数排版整理 ## 关联的Issue #3499 ## 测试 - 变量重命名不影响运行时行为,仅改变变量名 - if-else 分支顺序交换不影响逻辑等价性 - 不传新参数时原有行为不受影响 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [x] 重构 - [ ] 测试 - [ ] 构建/CI - [ ] 配置变更 - [ ] 文档更新 - [ ] 依赖升级 - [ ] 安全修复 - [x] 代码清理 - [ ] 其他 See merge request: cann/ops-transformer!8020 | 1 个月前 | |
移除 mc2 op_kernel 摊平机制,统一编译框架与 include 风格 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !7544 merge compile into master 移除 mc2 op_kernel 摊平机制,统一编译框架与 include 风格 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 背景 ops-transformer 出包时 op_kernel/ 目录被扁平化展开:mc2/common/op_kernel/xxx.h → ascendc/common/xxx.h。对于 static_true(JIT 在线编译)算子,kernel 代码需兼容两种环境: 1. **本地预编译**:源码树,op_kernel/ 层级存在 2. **CANN 包 JIT 编译**:扁平化,op_kernel/ 层级消失 ## 治理原则 ### 核心规则 - **static_true 算子**:需要 __has_include 守卫,兼容两种路径 - **static_false 算子**:不需要守卫,直接用本地 op_kernel/ 路径 - **同目录引用**:不需要守卫 ### 三种标准模式 // 1. op_kernel 层 → common #if __has_include("../common/xxx.h") // CANN(无 op_kernel) #include "../common/xxx.h" #else #include "../../common/op_kernel/xxx.h" // 本地(有 op_kernel) #endif // 2. arch 层 → common #if __has_include("../../common/xxx.h") #include "../../common/xxx.h" #else #include "../../../common/op_kernel/xxx.h" #endif // 3. op_kernel 层 → 兄弟算子 #if __has_include("../sibling_op/xxx.h") #include "../sibling_op/xxx.h" #else #include "../../sibling_op/op_kernel/xxx.h" #endif ### 合并原则 同深度、紧邻的 __has_include 块可合并为一个。**不可合并**的情况: - 两个块之间有其他 #include(依赖排序) - 第一个块在 #if defined(__NPU_ARCH__) 条件编译内 - quantize_functions.h 等特殊依赖 ## 已完成工作清单 ### 1. cmake 出包扁平化 - common/: install 目标去掉 op_kernel 中间层 - 3rd/: install 加尾 /(op_kernel → op_kernel/),展开内容 ### 2. __CCE_KT_TEST__ 守卫还原(4 个文件) matmul_all_reduce 下 common.h + 3 个 *_tiling_data.h,被误删的守卫恢复,并修正 else 分支路径(combined.h 的 ../common/ → ../../common/) ### 3. __has_include 路径纠正 - op_kernel 层:../../common/ → ../common/ - arch 层:../../../common/ → ../../common/ - 覆盖全部 static_true 算子(14 个 → 20 个) ### 4. 同级块合并(8 个文件) 相邻同深度的 __has_include 块合并 ### 5. setup/teardown 预加守卫(4 个算子,8 个文件 → 已纳入守护范围) 已加 __has_include 守卫,后续切 static_true 无需修改 .h 文件: - moe_distribute_combine_setup - moe_distribute_dispatch_setup - moe_distribute_combine_teardown - moe_distribute_dispatch_teardown ### 6. 高风险拆分 moe_distribute_combine_v2_quant.h:quantize_functions.h 从合并块拆出,单独守卫 ### 7. 无效守卫清理 - engram_fetch_wait(纯 static_false):移除守卫,直接用本地路径 ### 8. 新增 EP 算子守护(3 个算子) 新增 3 个 static_true 算子: - moe_ep_dispatch(守卫已正确) - moe_ep_combine(修正 __has_include 路径中多余 op_kernel/ 层级) - moe_ep_dispatch_epilogue(同上) ### 9. MegaMoe 跨算子引用加守卫(2 个文件,4 处) mega_moe/op_kernel/arch35/ 下 mega_moe.h + mega_moe_combine_send.h: - quantize_functions.h 加 __has_include 双路径守卫 - 原裸 "moe_distribute_dispatch_v2/op_kernel/..." 路径(依赖 -Imc2/)改为相对路径 ### 10. MegaMoe CMake 清理 - 删除 -I${CMAKE_CURRENT_SOURCE_DIR}/../../(-Imc2/,仅 mega_moe 使用) - 删除 -I${CMAKE_CURRENT_SOURCE_DIR}/../../3rd(目录不存在,无引用) - 新增 mega_moe_apt_depends,声明 apt 编译依赖 mc2/moe_distribute_dispatch_v2 mc2/moe_distribute_dispatch_v3,确保 opc 编译时跨算子头文件可解析 ## 当前 static_true 算子清单(共 17 个已启用 + 3 个守卫待启用 = 20 个) | 算子 | 目录 | 守卫状态 | |------|------|---------| | AttentionToFFN | mc2/attention_to_ffn/ | ✓ | | DistributeBarrier | mc2/distribute_barrier/ | ✓ | | DistributeBarrierExtend | mc2/distribute_barrier_extend/ | ✓(*) | | FFNToAttention | mc2/ffn_to_attention/ | ✓ | | MegaMoe | mc2/mega_moe/ | ✓ | | MoeDistributeCombine | mc2/moe_distribute_combine/ | ✓ | | MoeDistributeCombineAddRmsNorm | mc2/moe_distribute_combine_add_rms_norm/ | ✓(*) | | MoeDistributeCombineSetup | mc2/moe_distribute_combine_setup/ | ✓(†) | | MoeDistributeCombineTeardown | mc2/moe_distribute_combine_teardown/ | ✓ | | MoeDistributeCombineV2 | mc2/moe_distribute_combine_v2/ | ✓ | | MoeDistributeCombineV3 | mc2/moe_distribute_combine_v3/ | ✓(*) | | MoeDistributeDispatch | mc2/moe_distribute_dispatch/ | ✓ | | MoeDistributeDispatchSetup | mc2/moe_distribute_dispatch_setup/ | ✓(†) | | MoeDistributeDispatchTeardown | mc2/moe_distribute_dispatch_teardown/ | ✓(†) | | MoeDistributeDispatchV2 | mc2/moe_distribute_dispatch_v2/ | ✓ | | MoeDistributeDispatchV3 | mc2/moe_distribute_dispatch_v3/ | ✓(*) | | MoeEpCombine | mc2/moe_ep_combine/ | ✓ | | MoeEpDispatch | mc2/moe_ep_dispatch/ | ✓ | | MoeEpDispatchEpilogue | mc2/moe_ep_dispatch_epilogue/ | ✓ | | MoeUpdateExpert | mc2/moe_update_expert/ | ✓ | > (\*) 守卫仅存在于 .cpp 文件,.h 文件无跨目录引用,无需守卫 > (†) 守卫已就位,当前 jitCompile.flag 为 static_false,后续切换不需改 .h 文件 ## 后续开发注意事项 ### 新增算子 1. 确认 jitCompile.flag(在 op_host/*_def.cpp) 2. static_true → 所有跨 common/兄弟算子的 include 加守卫 3. 同目录引用、系统头文件不需要守卫 ### 切换 static_false → static_true 1. 改 jitCompile.flag 为 "static_true" 2. 扫描全部跨算子 include,加 __has_include 守卫 3. 参照已有 setup/teardown 做法 ### 代码审查要点 - op_kernel 层引用 common:是否用了 ../common/(非 ../../common/) - arch 层引用 common:是否用了 ../../common/(非 ../../../) - #else 分支路径是否包含 op_kernel/ - 同目录引用是否被误加了守卫 See merge request: cann/ops-transformer!7544 | 1 个月前 | |
fp8 fullquant Co-authored-by: wangke293<wangke293@huawei.com> # message auto-generated for no-merge-commit merge: !6637 merge master into master fp8 fullquant Created-by: wangke293 Commit-by: wangke293 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增fp8 fullquant, qk pertoken-head, v perhead ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3217 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> pytest下golden脚本 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/fused_infer_attention_score/docs/aclnnFusedInferAttentionScoreV5.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6637 | 2 个月前 | |
fag quant md remove Co-authored-by: yanwenshu<yanwenshu1@huawei.com> # message auto-generated for no-merge-commit merge: !7965 merge delete_quant_master into master fag quant md remove Created-by: yan-wenshu Commit-by: yanwenshu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 因fag quant现在不支持了,删除md文档中关于fag quant接口的描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [Requirement|需求建议]: A5 FAG算子HIFP8功能需迁移至experimental下 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7965 | 1 个月前 | |
fix(example): rename NPU_ARCH to NPU_SOC_VERSION and dynamically adapt Python version tag Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !7520 merge fix/example-build-docs-and-python-version into master fix(example): rename NPU_ARCH to NPU_SOC_VERSION and dynamically adapt Python version tag Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 fast_kernel_launch_example 示例工程中 NPU_ARCH 变量命名与社区规范不一致,且 README 缺少编译款型说明,setup.py 中 wheel 构建的 Python 版本标签硬编码为 cp38,与 README 文档描述不一致。 本次改动将 NPU_ARCH 全量重命名为 NPU_SOC_VERSION,并在 README 中补充编译款型说明;同时 wheel Python 版本标签从硬编码 cp38 改为动态适配。 ## 改动 - CMakeLists.txt: NPU_ARCH 重命名为 NPU_SOC_VERSION - cmake/func.cmake: NPU_ARCH 重命名为 NPU_SOC_VERSION - README.md: 新增 NPU_SOC_VERSION 编译款型说明(ascend910b / ascend910_93 / ascend950) - setup.py: Python 版本标签从硬编码 cp38 改为 f"cp3{sys.version_info.minor}";NPU_ARCH 重命名为 NPU_SOC_VERSION - csrc/moe_distribute_combine_v2/ascend910_93/README.md: NPU_ARCH 重命名为 NPU_SOC_VERSION - csrc/moe_distribute_dispatch_v2/ascend910_93/README.md: NPU_ARCH 重命名为 NPU_SOC_VERSION ## 关于 abi3 兼容性的说明 本项目为 example 示例工程,用户根据自身环境自行构建 wheel 并安装,不存在跨版本分发场景。动态标签使产物名与 README 文档描述一致,用户构建即用,不影响实际使用。 ## 关联的Issue #3310 ## 测试 - Python 3.8 环境构建产物标签为 cp38,Python 3.12 环境构建产物标签为 cp312,与文档描述一致 - 不传 NPU_SOC_VERSION 时默认 ascend910b,行为不变 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7520 | 2 个月前 | |
quant_block_sparse_attn&quant_block_sparse_attn_metadata合入 Co-authored-by: yangyajie<yangyajie3@huawei.com> Co-authored-by: 吴剑飞<wujianfei15@huawei.com> Co-authored-by: qq_45097958<wujiayi30@huawei.com> Co-authored-by: chenglongyu<chenglongyu@huawei.com> Co-authored-by: Wang Zhen<wangzhen407@huawei.com> Co-authored-by: dengyixiao0618<dengyixiao1@huawei.com> # message auto-generated for no-merge-commit merge: !7610 merge test1 into master quant_block_sparse_attn&quant_block_sparse_attn_metadata合入 Created-by: ddddyx Commit-by: ddddyx;吴剑飞;qq_45097958;yangyajie;chenglongyu;hid81635372;Wang Zhen;dengyixiao0618 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增quant_block_sparse_attn及quant_block_sparse_attn_metadata算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7610 | 2 个月前 | |
FFN算子移除冗余的Cast操作 Co-authored-by: huang-wei-chen<chenhuangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !7127 merge ffn_cast into master FFN算子移除冗余的Cast操作 Created-by: huang-wei-chen Commit-by: huang-wei-chen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> FFN算子移除冗余的Cast操作 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2637](https://gitcode.com/cann/ops-transformer/issues/2637) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7127 | 2 个月前 | |
nz优化分支添加offset拦截 Co-authored-by: Caoyu_Jiang<jiangcaoyu@huawei.com> # message auto-generated for no-merge-commit merge: !7795 merge master into master nz优化分支添加offset拦截 Created-by: Caoyu_Jiang Commit-by: Caoyu_Jiang Merged-by: cann-robot Description: ## 描述 前处理 NZ 优化分支中,添加对 offset 场景的拦截。withOffset 非 0 时不启用 A8W4 MSD PreNZ 分支,保持 offset 场景走原路径。 ## 关联的Issue 关联Issue #3459 ## 测试 compile 门禁通过 ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7795 | 1 个月前 | |
fix: causal_conv1d_fn change input bias as optional Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !7778 merge br_causal_conv1d into master fix: causal_conv1d_fn change input bias as optional Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. causal_conv1d_fn torch接口bias输入改为可选 2. has_init_status未指定情况下,输入结果不做清零处理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3312 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7778 | 2 个月前 | |
移除 mc2 op_kernel 摊平机制,统一编译框架与 include 风格 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !7544 merge compile into master 移除 mc2 op_kernel 摊平机制,统一编译框架与 include 风格 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 背景 ops-transformer 出包时 op_kernel/ 目录被扁平化展开:mc2/common/op_kernel/xxx.h → ascendc/common/xxx.h。对于 static_true(JIT 在线编译)算子,kernel 代码需兼容两种环境: 1. **本地预编译**:源码树,op_kernel/ 层级存在 2. **CANN 包 JIT 编译**:扁平化,op_kernel/ 层级消失 ## 治理原则 ### 核心规则 - **static_true 算子**:需要 __has_include 守卫,兼容两种路径 - **static_false 算子**:不需要守卫,直接用本地 op_kernel/ 路径 - **同目录引用**:不需要守卫 ### 三种标准模式 // 1. op_kernel 层 → common #if __has_include("../common/xxx.h") // CANN(无 op_kernel) #include "../common/xxx.h" #else #include "../../common/op_kernel/xxx.h" // 本地(有 op_kernel) #endif // 2. arch 层 → common #if __has_include("../../common/xxx.h") #include "../../common/xxx.h" #else #include "../../../common/op_kernel/xxx.h" #endif // 3. op_kernel 层 → 兄弟算子 #if __has_include("../sibling_op/xxx.h") #include "../sibling_op/xxx.h" #else #include "../../sibling_op/op_kernel/xxx.h" #endif ### 合并原则 同深度、紧邻的 __has_include 块可合并为一个。**不可合并**的情况: - 两个块之间有其他 #include(依赖排序) - 第一个块在 #if defined(__NPU_ARCH__) 条件编译内 - quantize_functions.h 等特殊依赖 ## 已完成工作清单 ### 1. cmake 出包扁平化 - common/: install 目标去掉 op_kernel 中间层 - 3rd/: install 加尾 /(op_kernel → op_kernel/),展开内容 ### 2. __CCE_KT_TEST__ 守卫还原(4 个文件) matmul_all_reduce 下 common.h + 3 个 *_tiling_data.h,被误删的守卫恢复,并修正 else 分支路径(combined.h 的 ../common/ → ../../common/) ### 3. __has_include 路径纠正 - op_kernel 层:../../common/ → ../common/ - arch 层:../../../common/ → ../../common/ - 覆盖全部 static_true 算子(14 个 → 20 个) ### 4. 同级块合并(8 个文件) 相邻同深度的 __has_include 块合并 ### 5. setup/teardown 预加守卫(4 个算子,8 个文件 → 已纳入守护范围) 已加 __has_include 守卫,后续切 static_true 无需修改 .h 文件: - moe_distribute_combine_setup - moe_distribute_dispatch_setup - moe_distribute_combine_teardown - moe_distribute_dispatch_teardown ### 6. 高风险拆分 moe_distribute_combine_v2_quant.h:quantize_functions.h 从合并块拆出,单独守卫 ### 7. 无效守卫清理 - engram_fetch_wait(纯 static_false):移除守卫,直接用本地路径 ### 8. 新增 EP 算子守护(3 个算子) 新增 3 个 static_true 算子: - moe_ep_dispatch(守卫已正确) - moe_ep_combine(修正 __has_include 路径中多余 op_kernel/ 层级) - moe_ep_dispatch_epilogue(同上) ### 9. MegaMoe 跨算子引用加守卫(2 个文件,4 处) mega_moe/op_kernel/arch35/ 下 mega_moe.h + mega_moe_combine_send.h: - quantize_functions.h 加 __has_include 双路径守卫 - 原裸 "moe_distribute_dispatch_v2/op_kernel/..." 路径(依赖 -Imc2/)改为相对路径 ### 10. MegaMoe CMake 清理 - 删除 -I${CMAKE_CURRENT_SOURCE_DIR}/../../(-Imc2/,仅 mega_moe 使用) - 删除 -I${CMAKE_CURRENT_SOURCE_DIR}/../../3rd(目录不存在,无引用) - 新增 mega_moe_apt_depends,声明 apt 编译依赖 mc2/moe_distribute_dispatch_v2 mc2/moe_distribute_dispatch_v3,确保 opc 编译时跨算子头文件可解析 ## 当前 static_true 算子清单(共 17 个已启用 + 3 个守卫待启用 = 20 个) | 算子 | 目录 | 守卫状态 | |------|------|---------| | AttentionToFFN | mc2/attention_to_ffn/ | ✓ | | DistributeBarrier | mc2/distribute_barrier/ | ✓ | | DistributeBarrierExtend | mc2/distribute_barrier_extend/ | ✓(*) | | FFNToAttention | mc2/ffn_to_attention/ | ✓ | | MegaMoe | mc2/mega_moe/ | ✓ | | MoeDistributeCombine | mc2/moe_distribute_combine/ | ✓ | | MoeDistributeCombineAddRmsNorm | mc2/moe_distribute_combine_add_rms_norm/ | ✓(*) | | MoeDistributeCombineSetup | mc2/moe_distribute_combine_setup/ | ✓(†) | | MoeDistributeCombineTeardown | mc2/moe_distribute_combine_teardown/ | ✓ | | MoeDistributeCombineV2 | mc2/moe_distribute_combine_v2/ | ✓ | | MoeDistributeCombineV3 | mc2/moe_distribute_combine_v3/ | ✓(*) | | MoeDistributeDispatch | mc2/moe_distribute_dispatch/ | ✓ | | MoeDistributeDispatchSetup | mc2/moe_distribute_dispatch_setup/ | ✓(†) | | MoeDistributeDispatchTeardown | mc2/moe_distribute_dispatch_teardown/ | ✓(†) | | MoeDistributeDispatchV2 | mc2/moe_distribute_dispatch_v2/ | ✓ | | MoeDistributeDispatchV3 | mc2/moe_distribute_dispatch_v3/ | ✓(*) | | MoeEpCombine | mc2/moe_ep_combine/ | ✓ | | MoeEpDispatch | mc2/moe_ep_dispatch/ | ✓ | | MoeEpDispatchEpilogue | mc2/moe_ep_dispatch_epilogue/ | ✓ | | MoeUpdateExpert | mc2/moe_update_expert/ | ✓ | > (\*) 守卫仅存在于 .cpp 文件,.h 文件无跨目录引用,无需守卫 > (†) 守卫已就位,当前 jitCompile.flag 为 static_false,后续切换不需改 .h 文件 ## 后续开发注意事项 ### 新增算子 1. 确认 jitCompile.flag(在 op_host/*_def.cpp) 2. static_true → 所有跨 common/兄弟算子的 include 加守卫 3. 同目录引用、系统头文件不需要守卫 ### 切换 static_false → static_true 1. 改 jitCompile.flag 为 "static_true" 2. 扫描全部跨算子 include,加 __has_include 守卫 3. 参照已有 setup/teardown 做法 ### 代码审查要点 - op_kernel 层引用 common:是否用了 ../common/(非 ../../common/) - arch 层引用 common:是否用了 ../../common/(非 ../../../) - #else 分支路径是否包含 op_kernel/ - 同目录引用是否被误加了守卫 See merge request: cann/ops-transformer!7544 | 1 个月前 | |
fix: add const to aclrtStream stream parameter in aclnnMhcPostBackward Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !7951 merge fix/mhc_post_backward_const_stream into master fix: add const to aclrtStream stream parameter in aclnnMhcPostBackward Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 修复 aclnnMhcPostBackward 第二段接口中 stream 参数缺少 const 修饰的问题。 文档(aclnnMhcPostBackward.md)中声明的函数原型为 const aclrtStream stream,但头文件(aclnn_mhc_post_backward.h)和实现文件(aclnn_mhc_post_backward.cpp)中均为 aclrtStream stream,缺少 const,与文档不一致。 仓库中绝大多数算子(78个)的第二段接口均使用 const aclrtStream stream,本次修改与主流写法对齐。 修改内容: - mhc/mhc_post_backward/op_host/op_api/aclnn_mhc_post_backward.h:aclrtStream stream → const aclrtStream stream - mhc/mhc_post_backward/op_host/op_api/aclnn_mhc_post_backward.cpp:aclrtStream stream → const aclrtStream stream - 同时对超长行进行换行,确保行宽不超过120字符 ## 关联的Issue [#3481](https://gitcode.com/cann/ops-transformer/issues/3481) ## 测试 该修改为函数参数添加顶层 const 修饰,不影响 ABI 和链接,编译层面完全兼容。现有单元测试(tiling、infershape)不受影响。 冒烟测试 单元测试回归 ## 文档更新 无,本次修改是将代码与已有文档对齐。 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7951 | 1 个月前 | |
fix: 由于 UpdateMask 的引用递减特性导致计数器状态污染 Co-authored-by: cpy_123456<chenpengyi@huawei.com> # message auto-generated for no-merge-commit merge: !8002 merge cpyd into master fix: 由于UpdateMask 的引用递减特性导致计数器状态污染 Created-by: cpy_123456 Commit-by: cpy_123456 Merged-by: cann-robot Description: ## 描述 fix: moeinitroutingv3 groupquant由于UpdateMask 的引用递减特性导致计数器状态污染 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3496 ## 测试 st & david冒烟 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8002 | 2 个月前 | |
调整mrope算子broadcast越界问题 Co-authored-by: weixin_44156099<heyuhang20@h-partners.com> # message auto-generated for no-merge-commit merge: !8001 merge fix_rope_brcb into master 调整mrope算子broadcast越界问题 Created-by: weixin_44156099 Commit-by: weixin_44156099 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3500 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 【精度验证】冒烟case:  【精度验证】泛化case:  【性能验证】基线看护case:  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8001 | 2 个月前 | |
megamoe 分布式编译 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !1906 merge fix into master megamoe 分布式编译 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!1906 | 1 个月前 | |
修复依赖问题,提升moe_distribute_dispatch_v2算子ut覆盖率 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !7631 merge moe_d_ut into master 修复依赖问题,提升moe_distribute_dispatch_v2算子ut覆盖率 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 - fix( [#7414](https://gitcode.com/cann/ops-transformer/merge_requests/7414) ): 为 opapi 添加 opbase_util_objs 构建依赖 - 通过 $<TARGET_OBJECTS:opbase_util_objs> 链入 log 等 object,但未声明 target 依赖,补 add_dependencies 修复 - 提升moe_distribute_dispatch_v2算子ut覆盖率 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2341 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7631 | 2 个月前 | |
修复kv_compress_epilog和indexer_quant_cache算子图模式 Co-authored-by: zhu-lei0614<zhulei113@huawei.com> # message auto-generated for no-merge-commit merge: !8030 merge master into master 修复kv_compress_epilog和indexer_quant_cache算子图模式 Created-by: zhu-lei0614 Commit-by: zhu-lei0614 Merged-by: cann-robot Description: ## 描述 修改kv_compress_epilog和indexer_quant_cache算子图模式 修复kv_compress_epilog和indexer_quant_cache算子找不到geir原型的问题 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3501 ## 测试 本地出包验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8030 | 1 个月前 | |
更新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 个月前 | |
transformer仓引入tensor仓 Co-authored-by: zhangzhizhuo<zhangzhizhuo1@huawei.com> # message auto-generated for no-merge-commit merge: !6256 merge transformertensor into master transformer仓引入tensor仓 Created-by: zhangzhizhuo Commit-by: zhangzhizhuo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ops-nn仓引入ops-tensor作为子模块,ops-tensor包含tensor_api的实现及blaze模板 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联issue [#2842](https://gitcode.com/cann/ops-transformer/issues/2842) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地编包正常出包,验证离线编译功能正常,线上出包正常。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> na ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6256 | 2 个月前 | |
通过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 个月前 | |
fix: 修复clang-format配置 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !6029 merge master into master fix: 修复clang-format配置 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 fix: 修复clang-format配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2728 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6029 | 2 个月前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 2 个月前 | |
feat: add causal_conv1d for ascend950 Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !6870 merge br_causal_conv1d_no_run_mode into master feat: add causal_conv1d for ascend950 Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add causal_conv1d for ascend950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3312 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6870 | 2 个月前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 2 个月前 | |
init | 10 个月前 | |
规范化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 | 4 个月前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 2 个月前 | |
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 个月前 | |
ops-transformer仓支持指定模块编译 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !1889 merge test_compile_ut into master ops-transformer仓支持指定模块编译 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!1889 | 2 个月前 | |
修改gmm责任田算子文件 Co-authored-by: Crrryyyy<chenruiyu4@huawei.com> # message auto-generated for no-merge-commit merge: !8035 merge adjust_responsibility into master 修改gmm责任田算子文件 Created-by: Crrryyyy Commit-by: Crrryyyy Merged-by: cann-robot Description: ## 描述 本次 PR 调整 classify_rule.yaml 中 gmm@ops-transformer 模块的 release huawei_style 责任田规则,将原先偏粗粒度的 GMM 算子目录级配置,细化为更明确的子目录/文件级路径,便于 Ascend 950 相关代码的责任归属、评审人匹配和后续维护。 ## 主要改动 - grouped_matmul:由整目录路径拆分为 op_api、op_graph、host 侧 def/infershape/checker/util 文件、公共 tiling 文件、op_host/op_tiling/arch35、op_kernel/arch35 以及 kernel 入口/工具文件。 - grouped_matmul_finalize_routing:由整目录路径拆分为 op_api、op_graph、host 侧 base_tiling/def/infershape/tiling 文件、op_host/op_tiling/arch35、op_kernel/arch35 以及 kernel 入口/工具文件。 - grouped_matmul_swiglu_quant_v2:由整目录路径拆分为 op_api、op_graph、host 侧 def/infershape/host_utils、公共 tiling 文件、op_host/op_tiling/arch35、op_kernel/arch35 以及 kernel 入口/工具文件。 - quant_grouped_matmul_inplace_add:当前仍保留原目录级 release 路径,维持该算子现有覆盖范围。 ## 范围说明 - 本次修改仅涉及 classify_rule.yaml 中 GMM 责任田配置,不修改算子实现逻辑。 - 新增路径重点覆盖 arch35 相关实现及其必要的 host/kernel 公共入口、基类和工具文件。 - tests、examples 等 unrelease 路径仍沿用原有 unrelease 配置,不纳入 release huawei_style。 ## 关联的Issue 关联Issue #3512 ## 测试 pipeline 通过。不涉及算子逻辑修改。 ## 文档更新 不涉及。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8035 | 1 个月前 | |
fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !6194 merge fix/add-packaging-dependency into master fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 仓库代码依赖了 packaging 包(cmake/scripts/util/const_var.py:15 使用 from packaging import version),但 requirements.txt 和 install_deps.sh 中未声明该依赖,导致全新环境下缺少该包时构建会报 ImportError。 ## 改动 - requirements.txt:添加 packaging>=26.0 - install_deps.sh:在 COMMON_PKGS 数组中添加 "packaging>=26.0" ## 关联的Issue #2812 ## 测试 - 执行 bash install_deps.sh 脚本无报错 - python3 -c "from packaging import version" 验证模块可用 - 不传新参数时原有依赖安装行为不受影响 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6194 | 2 个月前 | |
fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !6194 merge fix/add-packaging-dependency into master fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 仓库代码依赖了 packaging 包(cmake/scripts/util/const_var.py:15 使用 from packaging import version),但 requirements.txt 和 install_deps.sh 中未声明该依赖,导致全新环境下缺少该包时构建会报 ImportError。 ## 改动 - requirements.txt:添加 packaging>=26.0 - install_deps.sh:在 COMMON_PKGS 数组中添加 "packaging>=26.0" ## 关联的Issue #2812 ## 测试 - 执行 bash install_deps.sh 脚本无报错 - python3 -c "from packaging import version" 验证模块可用 - 不传新参数时原有依赖安装行为不受影响 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6194 | 2 个月前 | |
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}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-transformer.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-transformer.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。