本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复action流水线编译报错 Co-authored-by: tanghaoran7<tanghaoran7@huawei.com> # message auto-generated for no-merge-commit merge: !10790 merge master into master fix: 修复action流水线编译报错 Created-by: tanghaoran7 Commit-by: tanghaoran7 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10790 | 2 个月前 | |
新增算子generic_block_sparse_attetnion Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !10628 merge feature/generic_block_sparse_attetnion into master 新增算子generic_block_sparse_attetnion Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 generic_block_sparse_attention 稀疏注意力算子,支持沿着 S 轴任意粒度的块稀疏模式。通过 sparseBlockIdx 指定每个 Q 块选择的 KV 块索引, sparseBlockCount 指定每个 Q 块保留的 KV 块数量,实现高效的稀疏注意力计算。须先调用 aclnnGenericBlockSparseAttentionMetadata 生成 metadata 后再调用主算子。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10628 | 2 个月前 | |
修复静态库编译打包问题 | 2 个月前 | |
整改安装重名头文件:cgmct/gmm等 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !10750 merge clear_last into master 整改安装重名头文件:cgmct/gmm等 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 消除主仓安装后头文件 basename 重名问题,对 37 个头文件执行 git mv 重命名,并同步更新主仓内 #include 引用。 临时关闭fused_infer_attention_score,prompt_flash_attention算子ut ### 重命名文件映射(37 项) #### cgmct(10) | 旧路径 | 新路径 | | --- | --- | | gmm/common/cgmct/utils/arch.h | gmm/common/cgmct/utils/cgmct_arch.h | | gmm/common/cgmct/utils/common_utils.h | gmm/common/cgmct/utils/cgmct_common_utils.h | | gmm/common/cgmct/utils/layout_utils.h | gmm/common/cgmct/utils/cgmct_layout_utils.h | | gmm/common/cgmct/policy/dispatch_policy.h | gmm/common/cgmct/policy/cgmct_dispatch_policy.h | | gmm/common/cgmct/epilogue/fusion/default_fusion_op.h | gmm/common/cgmct/epilogue/fusion/cgmct_default_fusion_op.h | | gmm/common/cgmct/block/block_mmad.h | gmm/common/cgmct/block/cgmct_block_mmad.h | | gmm/common/cgmct/kernel/kernel_qgmm_mx.h | gmm/common/cgmct/kernel/cgmct_kernel_qgmm_mx.h | | gmm/common/cgmct/epilogue/block_epilogue_empty.h | gmm/common/cgmct/epilogue/cgmct_block_epilogue_empty.h | | gmm/common/cgmct/epilogue/block_epilogue_dequant.h | gmm/common/cgmct/epilogue/cgmct_block_epilogue_dequant.h | | gmm/common/cgmct/epilogue/block_epilogue_swiglu_mx_quant.h | gmm/common/cgmct/epilogue/cgmct_block_epilogue_swiglu_mx_quant.h | #### attention(4) | 旧路径 | 新路径 | | --- | --- | | attention/common/op_kernel/buffer.h | attention/common/op_kernel/attn_buffer.h | | attention/common/op_kernel/buffer_manager.h | attention/common/op_kernel/attn_buffer_manager.h | | attention/common/op_kernel/memcopy/copy_gm_to_l1.h | attention/common/op_kernel/memcopy/attn_copy_gm_to_l1.h | | attention/common/op_kernel/memcopy/copy_gm_to_ub.h | attention/common/op_kernel/memcopy/attn_copy_gm_to_ub.h | #### common / tests(2) | 旧路径 | 新路径 | | --- | --- | | common/include/op_kernel/layout.h | common/include/op_kernel/op_kernel_layout.h | | tests/ut/framework_special/utils/inc/tests/utils/log.h | tests/ut/framework_special/utils/inc/tests/utils/tests_utils_log.h | #### wq constant(3) | 旧路径 | 新路径 | | --- | --- | | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/constant.h | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/wq_catlass_constant.h | | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/utils/constant.h | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/utils/wq_utils_constant.h | | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/block/constant.h | mc2/3rd/weight_quant_batch_matmul_v2/op_kernel/arch35/catlass/block/wq_block_constant.h | #### TLA(7) | 旧路径 | 新路径 | | --- | --- | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/epilogue/dispatch_policy.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/epilogue/tla_epilogue_dispatch_policy.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/dispatch_policy.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/tla_gemm_dispatch_policy.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/helper.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/tla_gemm_helper.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemv/helper.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemv/tla_gemv_helper.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/epilogue/tile/tile_copy.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/epilogue/tile/tla_epilogue_tile_copy.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/tile/tile_copy.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemm/tile/tla_gemm_tile_copy.hpp | | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemv/tile/tile_copy.hpp | mc2/3rd/template_linear_algebra/op_kernel/template_linear_algebra/gemv/tile/tla_gemv_tile_copy.hpp | #### gmm copy(4) | 旧路径 | 新路径 | | --- | --- | | gmm/grouped_matmul/op_kernel/gmm_infra/epilogue/tile/gmm_copy_gm_to_ub.hpp | gmm/grouped_matmul/op_kernel/gmm_infra/epilogue/tile/gmm_epilogue_copy_gm_to_ub.hpp | | gmm/grouped_matmul/op_kernel/gmm_infra/epilogue/tile/gmm_copy_ub_to_gm.hpp | gmm/grouped_matmul/op_kernel/gmm_infra/epilogue/tile/gmm_epilogue_copy_ub_to_gm.hpp | | gmm/grouped_matmul/op_kernel/gmm_infra/gemm/tile/gmm_copy_gm_to_ub.hpp | gmm/grouped_matmul/op_kernel/gmm_infra/gemm/tile/gmm_gemm_copy_gm_to_ub.hpp | | gmm/grouped_matmul/op_kernel/gmm_infra/gemm/tile/gmm_copy_ub_to_gm.hpp | gmm/grouped_matmul/op_kernel/gmm_infra/gemm/tile/gmm_gemm_copy_ub_to_gm.hpp | #### apace ST kernel_launcher(3) | 旧路径 | 新路径 | | --- | --- | | mc2/common/op_kernel/apace/tests/st/all_gather_quant_matmul/ubmem/src/kernel_launcher.h | mc2/common/op_kernel/apace/tests/st/all_gather_quant_matmul/ubmem/src/apace_agm_kernel_launcher.h | | mc2/common/op_kernel/apace/tests/st/all_to_all_quant_matmul/src/kernel_launcher.h | mc2/common/op_kernel/apace/tests/st/all_to_all_quant_matmul/src/apace_a2a_kernel_launcher.h | | mc2/common/op_kernel/apace/tests/st/quant_matmul_reduce_scatter/ubmem/src/kernel_launcher.h | mc2/common/op_kernel/apace/tests/st/quant_matmul_reduce_scatter/ubmem/src/apace_qmrs_kernel_launcher.h | #### qbmv3 tiling(2) | 旧路径 | 新路径 | | --- | --- | | mc2/3rd/quant_batch_matmul_v3/op_kernel/quant_batch_matmul_v3_tiling_data.h | mc2/3rd/quant_batch_matmul_v3/op_kernel/qbmv3_tiling_data.h | | mc2/3rd/quant_batch_matmul_v3/op_kernel/arch35/quant_batch_matmul_v3_tiling_data.h | mc2/3rd/quant_batch_matmul_v3/op_kernel/arch35/qbmv3_arch35_tiling_data.h | #### math_util(2,仅文件 rename) | 旧路径 | 新路径 | | --- | --- | | mc2/common/utils/math_util.h | mc2/common/utils/mc2_math_util.h | | mc2/3rd/common/op_host/math_util.h | mc2/3rd/common/op_host/mc2_3rd_math_util.h | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/4356 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10750 | 2 个月前 | |
新增算子generic_block_sparse_attetnion Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !10628 merge feature/generic_block_sparse_attetnion into master 新增算子generic_block_sparse_attetnion Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 generic_block_sparse_attention 稀疏注意力算子,支持沿着 S 轴任意粒度的块稀疏模式。通过 sparseBlockIdx 指定每个 Q 块选择的 KV 块索引, sparseBlockCount 指定每个 Q 块保留的 KV 块数量,实现高效的稀疏注意力计算。须先调用 aclnnGenericBlockSparseAttentionMetadata 生成 metadata 后再调用主算子。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10628 | 2 个月前 | |
安装重名头文件整改:common.h Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !10537 merge clear_repeat_h_comm into master 安装重名头文件整改:common.h Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 按**安装重名**头文件规范,完成 ** common.h / moe_common.h / moe_v2_common.h 跨算子同名整改**,消除安装包内跨算子同名头冲突。 **原因**: **common.h(13 份)**、**moe_common.h(5 份)**、**moe_v2_common.h(7 份)** 属安装规则 **3.9**(仓内非对外、不同算子/组件目录拷贝同名头),且口径为「同名不同实现亦改名」。权威 common/include/op_kernel/common.h 与 mc2/common/op_kernel/moe_distribute_base.h **保留原名**。 **方法**:低风险只改次要副本——各算子/组件侧 common.h / moe_common.h / moe_v2_common.h / setup 侧 moe_distribute_base.h 加算子或组件前缀(如 agm_v2_、matmul_all_reduce_、moe_init_routing_、mega_moe_、setup_ 等);同步更新 #include、\file、include guard。无业务逻辑变更。禁止软链接。 ### 安装分类规则 | # | 场景 | 是否整改 | 处置 | |---|------|---------|------| | 3.9 | 仓内非对外同名拷贝 | 是 | 次要侧改名 | | 权威 common | common/include/op_kernel/common.h | 否 | 保留原名 | | 权威 mc2 base | mc2/common/op_kernel/moe_distribute_base.h | 否 | 保留原名(v2/combine 等仍 #include 此路径) | ### 范围与结果 | 项 | 说明 | |----|------| | 重命名组数 | **26** | | 涉及域 | attention(scatter_pa / sfag / sfmg)、examples fkle、mc2(agm_v2 / matmul_all_reduce / mega_moe / dispatch setup/teardown/v2、mhc tiling)、moe(gating / init_routing / token_permute 系列) | | 附带修复 | dispatch setup base/common 映射;teardown 跨组件引用;v2 arch35 a5_ccu 裸 include;v3/combine_v3 apt 依赖 v2/v2_combine 的 __has_include 多布局路径 | | 变更文件数 | **166** | | 行变更 | +253 / -238 | ### 26 组重命名(旧 → 新) | # | 旧路径 | 新路径 | |--:|--------|--------| | 1 | attention/scatter_pa_kv_cache/op_kernel/arch35/common.h | attention/scatter_pa_kv_cache/op_kernel/arch35/scatter_pa_kv_cache_arch35_common.h | | 2 | attention/sparse_flash_attention_grad/op_kernel/arch35/common.h | attention/sparse_flash_attention_grad/op_kernel/arch35/sparse_flash_attention_grad_arch35_common.h | | 3 | attention/sparse_flash_mla_grad/op_kernel/arch35/common.h | attention/sparse_flash_mla_grad/op_kernel/arch35/sparse_flash_mla_grad_arch35_common.h | | 4 | examples/fast_kernel_launch_example/csrc/moe_distribute_dispatch_v2/ascend910_93/op_kernel/common.h | examples/fast_kernel_launch_example/csrc/moe_distribute_dispatch_v2/ascend910_93/op_kernel/fkle_mdd_v2_common.h | | 5 | mc2/all_gather_matmul_v2/op_kernel/common.h | mc2/all_gather_matmul_v2/op_kernel/agm_v2_common.h | | 6 | mc2/matmul_all_reduce/op_kernel/common.h | mc2/matmul_all_reduce/op_kernel/matmul_all_reduce_common.h | | 7 | mc2/moe_distribute_dispatch_setup/op_kernel/common.h | mc2/moe_distribute_dispatch_setup/op_kernel/moe_distribute_dispatch_setup_common.h | | 8 | mc2/moe_distribute_dispatch_v2/op_kernel/common.h | mc2/moe_distribute_dispatch_v2/op_kernel/moe_distribute_dispatch_v2_common.h | | 9 | mhc/mhc_pre_sinkhorn_backward/op_host/op_tiling/arch22/common.h | mhc/mhc_pre_sinkhorn_backward/op_host/op_tiling/arch22/mhc_pre_sinkhorn_backward_common.h | | 10 | moe/moe_gating_top_k/op_kernel/arch35/common.h | moe/moe_gating_top_k/op_kernel/arch35/moe_gating_top_k_arch35_common.h | | 11 | moe/moe_gating_top_k/op_kernel/common.h | moe/moe_gating_top_k/op_kernel/moe_gating_top_k_common.h | | 12 | moe/moe_gating_top_k_backward/op_kernel/arch35/common.h | moe/moe_gating_top_k_backward/op_kernel/arch35/moe_gating_top_k_backward_arch35_common.h | | 13 | moe/moe_gating_top_k_backward/op_kernel/common.h | moe/moe_gating_top_k_backward/op_kernel/moe_gating_top_k_backward_common.h | | 14 | moe/moe_init_routing/op_kernel/moe_common.h | moe/moe_init_routing/op_kernel/moe_init_routing_common.h | | 15 | moe/moe_init_routing/op_kernel/arch35/moe_common.h | moe/moe_init_routing/op_kernel/arch35/moe_init_routing_arch35_common.h | | 16 | moe/moe_token_permute/op_kernel/moe_common.h | moe/moe_token_permute/op_kernel/moe_token_permute_common.h | | 17 | moe/moe_token_permute_with_ep/op_kernel/moe_common.h | moe/moe_token_permute_with_ep/op_kernel/moe_token_permute_with_ep_common.h | | 18 | moe/moe_token_permute_with_routing_map/op_kernel/moe_common.h | moe/moe_token_permute_with_routing_map/op_kernel/moe_token_permute_with_routing_map_common.h | | 19 | mc2/mega_moe/op_kernel/arch22/moe_init_routing_v2/moe_v2_common.h | mc2/mega_moe/op_kernel/arch22/moe_init_routing_v2/mega_moe_moe_v2_common.h | | 20 | mc2/mega_moe/op_kernel/arch22/moe_init_routing_quant_v2/moe_v2_common.h | mc2/mega_moe/op_kernel/arch22/moe_init_routing_quant_v2/mega_moe_quant_moe_v2_common.h | | 21 | moe/moe_init_routing_v2/op_kernel/moe_v2_common.h | moe/moe_init_routing_v2/op_kernel/moe_init_routing_v2_common.h | | 22 | moe/moe_init_routing_v2/op_kernel/arch35/moe_v2_common.h | moe/moe_init_routing_v2/op_kernel/arch35/moe_init_routing_v2_arch35_common.h | | 23 | moe/moe_init_routing_quant_v2/inner/moe_v2_common.h | moe/moe_init_routing_quant_v2/inner/moe_init_routing_quant_v2_pkg_inner_common.h | | 24 | moe/moe_init_routing_quant_v2/op_kernel/arch35/moe_v2_common.h | moe/moe_init_routing_quant_v2/op_kernel/arch35/moe_init_routing_quant_v2_arch35_common.h | | 25 | moe/moe_init_routing_quant_v2/op_kernel/inner/moe_v2_common.h | moe/moe_init_routing_quant_v2/op_kernel/inner/moe_init_routing_quant_v2_inner_common.h | | 26 | mc2/moe_distribute_dispatch_setup/op_kernel/moe_distribute_base.h | mc2/moe_distribute_dispatch_setup/op_kernel/moe_distribute_dispatch_setup_base.h | ### 命名约定 | 场景 | 约定 | |------|------| | all_gather_matmul_v2 | agm_v2_* | | matmul_all_reduce | matmul_all_reduce_common.h | | mega_moe 内 moe_v2 | mega_moe_* / mega_moe_quant_* | | moe 算子 | moe_<op>_common.h、arch35 加 _arch35_common | | dispatch setup | setup_base.h / setup_common.h(与 mc2/common 权威 base 区分) | | include guard | 与文件名一致(如 MOE_DISTRIBUTE_DISPATCH_V2_COMMON_H) | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/4356 ## 测试 ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10537 | 2 个月前 | |
更新QBSA_FP8 csv表格 Co-authored-by: yangyajie<yangyajie3@huawei.com> # message auto-generated for no-merge-commit merge: !10891 merge master into master 更新QBSA_FP8 csv表格 Created-by: yangyajie Commit-by: yangyajie Merged-by: cann-robot Description: 1. 新增 4 条 Profiling 用例: - B=8,N1/N2=64/8,S=65536 - B=8,N1/N2=32/4,S=65536 - B=8,N1/N2=64/8,S=131072 - B=8,N1/N2=32/4,S=131072 新增文件: - tests/pytest/batch/cases_profiling.csv - tests/ttk/bsa_fullquant_fp8_test/ttk_cases_profiling.csv 2. 对齐 QBSA pytest 与 TTK 红线配置: - 17 条用例的 softmax_scale 对齐为完整精度。 - 8 条用例的 return_softmax_lse 改为 FALSE。 - 对应 pytest 用例名后缀由 _lse1 改为 _lse0。 - 64K、128K 用例的 layout_q 由 TND 改为 NTD。 - 保持现有 ttk_QBSA_redline_fp8.csv 不变。 3. 同步 Profiling NTD shape: - Query:由 (T, N1, D) 调整为 (N1, T, D)。 - Q-descale:由 (T, N1) 调整为 (N1, T)。 - K/V 继续使用 PA_BNBD,shape 不受影响。 - N1/N2=32/4 的变体仅调整名称、N1/N2 及相关 tensor 头数维。 See merge request: cann/ops-transformer!10891 | 2 个月前 | |
FFN Tiling增加数据类型不支持的报错提示 Co-authored-by: huang-wei-chen<chenhuangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !10136 merge ffn_log into master FFN Tiling增加数据类型不支持的报错提示 Created-by: huang-wei-chen Commit-by: huang-wei-chen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> FFN Tiling增加数据类型不支持的报错提示 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#3842](https://gitcode.com/cann/ops-transformer/issues/3842) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10136 | 2 个月前 | |
fix(gmm): 补齐 GMM aclnn 接口 L2_DFX_PHASE_1 的 DFX_IN 入参 Co-authored-by: kknan<xukenan@huawei.com> # message auto-generated for no-merge-commit merge: !10581 merge fix/gmm-dfx-in-completeness into master fix(gmm): 补齐 GMM aclnn 接口 L2_DFX_PHASE_1 的 DFX_IN 入参 Created-by: kknan Commit-by: kknan Merged-by: cann-robot Description: ## 描述 修复 [issue #4272](https://gitcode.com/cann/ops-transformer/issues/4272): L2_DFX_PHASE_1 宏的 DFX_IN 未按规定包含全部入参,导致 GetFromCache 计算 L2 op exec cache key 时缺失关键输入。当两次调用的差异恰好落在缺失入参上时,会命中错误缓存或走入 MarkOpCacheInvalid 异常分支,存在 coredump 风险(对应 [opbase#305](https://gitcode.com/cann/opbase/issues/305) 的 vllm 整网 coredump 现象)。 按 aclnn_quant_grouped_matmul_dequant.cpp 已有的正确惯例(DFX_IN 与函数签名一一对应,含 optional tensor、标量 attr、char*、aclIntArray,opbase 的 AddParamToBuf 均支持),补齐以下 A5(Ascend 950)支持接口: - aclnnGroupedMatmulSwigluQuantWeightNzV2 / aclnnGroupedMatmulSwigluQuantV2:补 weightAssistMatrix、bias、smoothScale、dequantMode、dequantDtype、quantMode、groupListType、tuningConfigOptional - aclnnGroupedMatmulFinalizeRoutingWeightNzV2 / V3:补 offsetOptional、antiquantScaleOptional、antiquantOffsetOptional、tuningConfigOptional - aclnnGroupedMatmulActivationQuantWeightNz:补 activationType、groupListType、tuningConfig、quantMode、roundMode、scaleAlg、dstTypeMax - aclnnGroupedMatmulWeightNz:补 quantGroupSize - 顺带将 aclnnGroupedMatmulWeightNz / V5 / V4 的 DFX_IN 中 groupListOptional 对齐到与接口签名一致的顺序(perTokenScaleOptional 之后),确保 DFX_IN 入参顺序与 aclnn 接口入参顺序一致 ## 排查范围 全量审计 gmm/ 下 8 个 op_api 文件、21 个 GetWorkspaceSize 函数(A5/arch35 GMM 类算子的 aclnn 一阶段接口),逐函数比对签名入参与 DFX_IN/DFX_OUT。除上述接口外,其余函数(含 aclnnGroupedMatmulSwigluQuant/WeightNZ、aclnnQuantGroupedMatmulDequant 系列、aclnnGroupedMatmulAdd 系列、aclnnQuantGroupedMatmulInplaceAdd 等)DFX_IN 均已完整。 ## 测试 RDV验证相关修改 ## 关联Issue - [#4272](https://gitcode.com/cann/ops-transformer/issues/4272) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-transformer!10581 | 2 个月前 | |
torch extension整改成分布式 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !9712 merge torch_extension_split into master torch extension整改成分布式 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 ops-transformer仓支持各个算子独立编译torch_extention,并将torch_extension从集中式改成分布式(算子的文件分布到算子源码目录下新建的torch_extension文件夹) ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/4502 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9712 | 2 个月前 | |
perf(mega_moe): optimize wave dispatch and combine pipelines Co-authored-by: macech<chenluchun1@huawei.com> # message auto-generated for no-merge-commit merge: !10302 merge codex/mega-moe-wave-perf-mainline-20260818 into master perf(mega_moe): optimize wave dispatch and combine pipelines Created-by: macech Commit-by: macech Merged-by: cann-robot Description: ## 描述 MegaMoe 的非 layered 路径已经使用 token-group 组织 GMM Wave,但在小 BS、专家较多且路由不均衡的场景中,关键路径仍存在以下固定开销: - 冷专家的 Dispatch/Combine 每次都从固定 AIV 重新分核,连续冷专家容易集中到少数核; - Dispatch count 分散在各专家数据尾部,接收侧需要逐专家、逐 rank 读取和同步; - 没有 GMM tile owner 的 AIC 仍会完成 problem 构造、地址计算和 scheduler 准备; - 量化 Combine 的固定双缓冲限制了 MTE2、Vector、MTE3 的流水深度; - A8W8、A8W4、A4W4 保留多套 Dispatch/Combine 状态和调用协议,公共优化容易遗漏部分路径。 本 PR 在不改变算子输出 ABI、token/scale 数据布局和 layered URMA 协议的前提下,压缩上述控制与搬运开销,并将 A8W8、A8W4、A4W4 的非 layered Dispatch/Combine 归一到同一套实现。 分支已 rebase 到 upstream/master=0f2296ba3,包含主线最新的 Dispatch/Combine 架构整改和 A4W4 Wave 调度能力。 ### 1. Dispatch count 紧凑化与批量发布 - SendMask 按连续专家区间分核,将 route count 发布为紧凑的 [localExpert][sourceRank] peer-memory 表; - 每个物理 block 一次加载完整 count 表,使用 Vector 指令完成精确的 int32 前缀和; - 将逐专家 count barrier/ready 收敛为整张表一次通知; - 在 prefix scan 的两段 Vector 操作之间显式加入 LocalMemBar<VEC_STORE, VEC_LOAD>,保证后一段 Gather 可见前一段写回; - 同步更新 Kernel workspace、Host tiling 和 Torch Extension 的 CCL workspace 容量计算。 该修改消除了接收侧逐专家 strided copy、逐 rank GM 标量读取和逐专家同步的固定开销,同时保持整数 count 精确性。 ### 2. Dispatch 跨专家滚动分核与无效扫描裁剪 - 保存上一专家结束后的 AIV owner cursor,下一专家从该位置继续分配,不再让每个冷专家都从固定核开始; - 每个核仍处理连续的 expert-row 区间,数据布局和远端写入格式不变; - 利用紧凑前缀表定位第一个相交 source rank,只扫描与本核 row 区间真正相交的 rank; - 无 row owner 的核在进入地址和传输准备前直接返回。 热点专家仍覆盖全部活跃 AIV;该修改主要改善连续冷专家对少数核的集中占用。 ### 3. 无 GMM owner 的 AIC 提前返回 GMM1/GMM2 在构造 problem、更新 GlobalBuffer 和进入 scheduler 前,先根据当前 slice 的 tile 范围判断本 AIC 是否拥有任务: - 无 owner 时只推进与原逻辑一致的 rolling block/token cursor,然后提前返回; - 有 owner 时完全沿用原计算路径; - GMM2 的最后一个 slice 即使在当前 AIC 上无 tile,也仍发布 per-expert ready,保证 Combine 依赖边界不变; - A8W8、A8W4、A4W4 的 Wave 路径统一使用该判断。 该修改针对冷专家和尾 slice,减少两段有效 GMM 之间的 Scalar 调度空隙,不改变 tile ownership。 ### 4. 量化 Combine 流水深化与搬运合并 - 在扣除 Dispatch、归约、量化和元数据常驻 UB 区域后,使用剩余 UB 构造自适应 row ring,替代固定双缓冲; - 每个 row slot 独立管理 MTE2、Vector、MTE3 复用事件,使输入读取、MXFP8 量化和远端写出能够跨更多行重叠; - GMM2 的 BF16 row 在 GM 中连续,将原先 data/scale-span 两次 MTE2 读取合并为一次连续传输; - Combine owner cursor 跨专家滚动,减少冷专家反复从固定核开始造成的负载不均; - 非量化 Combine 行为及对外输出布局保持不变。 ### 5. A8W8/A8W4/A4W4 非 layered Dispatch/Combine 实现归一 - 三种模式共用 compact-count preparation、rolling ownership 和同一套 Dispatch helper,但保留各自原有调度; - A8W8 继续在 GMM pipeline 前通过 RunAllWaveExpertDispatchStages 完成全部专家 Dispatch; - A8W4/A4W4 不使用 Run-all 调度:启动阶段先 Dispatch 第一个完整 Wave,稳态阶段由 AIV1 Dispatch 下一 Wave,同时 AIC/AIV0 执行当前 Wave 的 GMM1/Activation; - 三种模式统一使用 per-expert GMM2-ready、adaptive row ring、rolling ownership、量化和远端 Combine; - A8W4/A4W4 的 GMM2 仅在专家最后一个 token slice 完成后发布 ready,Combine 按完整专家启动; - 删除旧的逐专家 SendCount/Dispatch、W4 专用量化 Combine scheduler 和废弃 workspace; - layered URMA Dispatch/Combine 及其 group-grained counter 继续保持独立。 因此,本 PR 归一的是非 layered Dispatch/Combine 的实现和通信协议,不改变 W4 原有的 Wave-ahead Dispatch/GMM 穿插关系。 ### 6. 最后一轮 Combine 使用全部 AIV - 普通 Wave 仍由原 Combine 半核执行,保持与 SwiGLU 的重叠关系; - 最后一个非空专家已不再与后续 GMM1/SwiGLU 重叠,因此 AIV0/AIV1 共同处理最终 Combine; - AIV0 使用与 AIV1 相同的专家状态和地址准备,不复用 AIC 私有状态; - A8W4/A4W4 在 AIV0 从 W4 prologue 切换到最终 Combine 前增加 MTE3_MTE2 依赖,避免 prologue 的 MTE3 尚未结束时复用 UB; - 不增加跨核 SyncAll,避免无必要地排空整体流水。 ## 提交拆分与审查重点 | Commit | 内容 | 建议关注点 | | --- | --- | --- | | 03c221fc8 | Combine 跨专家 rolling ownership | owner cursor 推进及专家边界 | | 9064c1259 | Dispatch count 紧凑表与 Vector prefix scan | 表布局、容量和一次性 ready 协议 | | e4ca04936 | Dispatch rolling ownership 与 source-rank 裁剪 | row 区间、rank 定位和远端地址 | | f84167d3c | GMM1 无 owner 快退 | rolling block/token cursor 等价性 | | 30d69d0a0 | GMM2 无 owner 快退 | 最后 slice 的 ready 发布 | | 79e86271e | 量化 Combine 自适应 row ring | UB 容量、slot 生命周期和三级流水事件 | | 269d2512d | Combine row 搬运合并 | GM 连续布局及 UB offset | | 6afd8f718 | 非 layered Dispatch 实现归一 | compact-count helper 和共享状态 | | 87f4b65c1 | 非 layered Combine 归一 | per-expert ready 和 W4 旧路径移除 | | 51b26edbe | 最终 Combine 使用全部 AIV | 最后非空专家识别及全核 ownership | | 5c8ef9d0d | 修复 compact count scan 的 Vector 可见性 | 两段 VF 之间的 UB RAW 依赖 | | 4e7608c06 | 修复 W4 prologue 到最终 Combine 的 UB 复用时序 | AIV0 的 MTE3_MTE2 依赖 | | 442d6d34c | 暴露 W4 使用的共享 Dispatch 状态 | A8W4/A4W4 派生模板的基类成员可见性 | | 003d4bf47 | 重置已 drain 的 Combine row ring | 通信域复用和多轮调用状态 | | 41efea597 | 删除旧 non-layered tile sequence | per-expert ready 协议完整性 | | 6144a5daf | 放宽共享专家 GMM2 ready 轮询退避 | 高频轮询稳定性 | | db81e5d11 | 删除无效 Vector barrier | 去除 Arch 3510 空操作 | | 45610e5b0 | 恢复 W4 原有 Wave-ahead Dispatch 调度 | 实现归一但保持 A8W4/A4W4 穿插关系 | ## 关联的Issue 不涉及。 ## 测试 - rebase 前已验证版本完成设备侧测试,用户确认结果正常; - rebase 后在当前 upstream/master=0f2296ba3 上执行: - git diff --check:通过; - 冲突标记和废弃非 layered Dispatch/Combine 符号检查:通过; - bash build.sh --opkernel --soc=ascend950 --ops=mega_moe -j12:非增量编译通过; - Ascend 950 MegaMoe 8 个 kernel 配置均生成成功。 - 当前本地环境未执行 rebase 后设备侧精度、性能和多卡回归,需在设备环境继续验证;本 PR 不更新 UT。 ## 文档更新 不涉及。 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10302 | 2 个月前 | |
MhcPost接口增加ge converter,支持torch图模式,eager模式支持hRes缺省 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !10570 merge converter into master MhcPost接口增加ge converter,支持torch图模式,eager模式支持hRes缺省 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 MhcPost算子增加ge converter,支持torch图模式,eager模式支持hRes缺省 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/4289 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10570 | 2 个月前 | |
permute类算子的aclnn新增paddedMode校验提示 Co-authored-by: JimmyLam2<linjingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !10870 merge master into master permute类算子的aclnn新增paddedMode校验提示 Created-by: JimmyLam2 Commit-by: JimmyLam2 Merged-by: cann-robot Description: ## 描述 permute类算子的aclnn文档指明了不支持paddedMode为true,如果输入了true时,报错信息不够,没办法很好提示开发者是什么地方的输入有问题,补充提示。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/4708 ## 测试 已跑ST、二级冒烟、OBP冒烟  ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10870 | 2 个月前 | |
Add New op ApplyRotaryPosEmbGrad Co-authored-by: yeeyanghsia<xiayiyang@huawei.com> # message auto-generated for no-merge-commit merge: !10684 merge ApplyRotaryPosEmbGrad0826 into master Add New op ApplyRotaryPosEmbGrad Created-by: yeeyanghsia Commit-by: yeeyanghsia Merged-by: cann-robot Description: ## 描述 新增apply_rotary_pos_emb_grad算子,实现apply_rotary_pos_emb算子的反向算子,同步相比单路反向算子做出性能优化,同等算例带宽下,相同shape下,apply_rotary_pos_emb_grad的耗时优于2次rotary_mul的反向算子。 ## 关联的Issue 关联Issue #4697 ## 测试 冒烟通过,测试900条泛化用例和24条网络用例精度PASS。 ## 文档更新 涉及的文档更新如下: ascend950_op_list.md、menu_aclnn_api.md、menu_torch_api.md、op_api_list.md、op_list.md、torch_api_list.md、 README.md、apply_rotary_pos_emb.md、apply_rotary_pos_emb_grad.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10684 | 2 个月前 | |
新增算子generic_block_sparse_attetnion Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !10628 merge feature/generic_block_sparse_attetnion into master 新增算子generic_block_sparse_attetnion Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 generic_block_sparse_attention 稀疏注意力算子,支持沿着 S 轴任意粒度的块稀疏模式。通过 sparseBlockIdx 指定每个 Q 块选择的 KV 块索引, sparseBlockCount 指定每个 Q 块保留的 KV 块数量,实现高效的稀疏注意力计算。须先调用 aclnnGenericBlockSparseAttentionMetadata 生成 metadata 后再调用主算子。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10628 | 2 个月前 | |
新增算子generic_block_sparse_attetnion Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !10628 merge feature/generic_block_sparse_attetnion into master 新增算子generic_block_sparse_attetnion Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 generic_block_sparse_attention 稀疏注意力算子,支持沿着 S 轴任意粒度的块稀疏模式。通过 sparseBlockIdx 指定每个 Q 块选择的 KV 块索引, sparseBlockCount 指定每个 Q 块保留的 KV 块数量,实现高效的稀疏注意力计算。须先调用 aclnnGenericBlockSparseAttentionMetadata 生成 metadata 后再调用主算子。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10628 | 2 个月前 | |
smla/qsmla/mqsmla maskmode泛化资料修改 Co-authored-by: jinyingbo<jinying22@huawei.com> # message auto-generated for no-merge-commit merge: !10901 merge master into master smla/qsmla/mqsmla maskmode泛化资料修改 Created-by: jinyingbo Commit-by: jinyingbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> smla/qsmla/mqsmla maskmode泛化资料修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/4721 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/mixed_quant_sparse_flash_mla/README.md attention/mixed_quant_sparse_flash_mla/docs/aclnnMixedQuantSparseFlashMla.md attention/quant_sparse_flash_mla/README.md attention/quant_sparse_flash_mla/docs/aclnnQuantSparseFlashMla.md attention/sparse_flash_mla/README.md attention/sparse_flash_mla/docs/aclnnSparseFlashMla.md attention/sparse_flash_mla/op_host/checkers/README.md torch_extension/cann_ops_transformer/docs/zh/mixed_quant_sparse_flash_mla.md torch_extension/cann_ops_transformer/docs/zh/quant_sparse_flash_mla.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10901 | 2 个月前 | |
pre-commit: set AllowShortFunctionsOnASingleLine to Empty Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !10461 merge fix_2 into master pre-commit: set AllowShortFunctionsOnASingleLine to Empty 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修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10461 | 2 个月前 | |
产品文档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 个月前 | |
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 个月前 | |
aclnnGroupedMatmulWeightNz补充WeightQuantPreProcess接口aclnn资料 Co-authored-by: renzetao<renzetao2@huawei.com> # message auto-generated for no-merge-commit merge: !10251 merge aclnn_example into master aclnnGroupedMatmulWeightNz补充WeightQuantPreProcess接口aclnn资料 Created-by: renzetao Commit-by: renzetao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnGroupedMatmulWeightNz补充WeightQuantPreProcess接口aclnn资料 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4412](https://gitcode.com/cann/ops-transformer/issues/4412) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> bash build.sh --run_example 测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> gmm/grouped_matmul/docs/aclnnGroupedMatmulWeightNz.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10251 | 2 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !9326 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改AIDD扫描的核心资料问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3995](https://gitcode.com/cann/ops-transformer/issues/3995) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> torch_api_list.md op_list.md ascend950_op_list.md aclnn返回码.md 互推导关系.md ... ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9326 | 2 个月前 | |
切换依赖CATLASS的方式为cmake fetch(参考ops-tensor) Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !10404 merge fetch_catlass into master 切换依赖CATLASS的方式为cmake fetch(参考ops-tensor) Created-by: yuantao_ Commit-by: Yuan Tao;yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以cmake fetch形式引入catlass,并补充对应编译选项和脚本。 由于kda算子之前以源码粘贴形式引入catlass,直接编译会产生冲突,因此将kda中的catlass删除,并将头文件修改为原名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10404 | 2 个月前 | |
产品文档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 个月前 | |
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 个月前 | |
pre-commit: 豁免 *.png 文件,支持文档图片上传 Co-authored-by: youzhen5418<664699733@qq.com> # message auto-generated for no-merge-commit merge: !10197 merge png into master pre-commit: 豁免 *.png 文件,支持文档图片上传 Created-by: youzhen5418 Commit-by: youzhen5418 Merged-by: cann-robot Description: ## 描述 在 OAT.xml 的 binaryFileTypePolicyFilter 中新增 *.png 文件豁免,解决提交包含 png 文档配图时被 OAT 判定为"Invalid File Type: binary"而拦截的问题。 改动原因:OAT 合规检查将 png 文件识别为违规二进制文件,导致 pre-commit 失败,无法上传文档配图。png 作为文档图片(非可执行二进制),应在二进制文件检查中豁免。 改动内容:仅 OAT.xml 一个文件,新增一行: <filteritem type="filename" name="*.png" desc="PNG image files for documentation"/> 位于 binaryFileTypePolicyFilter(第 59 行)。 验证:本地用 oat-py 直接扫描 png 文件验证——豁免前 Issues found: 1(Invalid File Type: binary),豁免后 Issues found: 0。许可证头/版权头检查对二进制文件自动跳过,无需额外豁免。 ## 关联的Issue 关联Issue #4382 ## 测试 验证:豁免前报 Invalid File Type: binary,豁免后 Issues found: 0 pre-commit 全部 hook 通过(trailing-whitespace / end-of-file / clang-format / ruff / codespell / OAT) ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10197 | 2 个月前 | |
cannsim改名为npusim Co-authored-by: liangbinglong<liangbinglong@huawei.com> # message auto-generated for no-merge-commit merge: !9686 merge master into master cannsim改名为npusim Created-by: liangbinglong Commit-by: liangbinglong Merged-by: cann-robot Description: ## 描述 经TSC评审,cannsim工具正式更名为npusim,相关命令行、资料同步刷新,cannsim作为别名兼容一段时间,需要尽快切换 ## 关联的Issue NA ## 测试 使用最新链接版本测试,相关命令行已经全部更名为npusim ## 文档更新 更新doc下面的调优部分文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9686 | 2 个月前 | |
修复文档链接跳转失效问题 Co-authored-by: weihao18<weihao16@h-partners.com> # message auto-generated for no-merge-commit merge: !8061 merge fix_security_md into master 修复文档链接跳转失效问题 Created-by: weihao18 Commit-by: weihao18 Merged-by: cann-robot Description: ## 描述 修复SECURITY.md文档 [A-文件(夹)各场景权限管控推荐最大值] 链接跳转失效问题 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3373 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8061 | 3 个月前 | |
支持按模板参数编译算子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 个月前 | |
npu-smi info get soc while soc not set Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !10678 merge master into master npu-smi info get soc while soc not set Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-transformer/issues/3401 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10678 | 2 个月前 | |
fix mc2_infer to mc2_inference Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !10829 merge master into master fix mc2_infer to mc2_inference Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-transformer/issues/4689 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!10829 | 2 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 |
ops-transformer
🔥Latest News
- [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算子插件,包括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] 开源算子支持NPU 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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。