本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
action上线适配:checkout改allow-unsafe-pr-checkout,revise-img改comment+TESTTOKEN Co-authored-by: wangyunxiang<wangyunxiang6@h-partners.com> # message auto-generated for no-merge-commit merge: !12257 merge master into master action上线适配:checkout改allow-unsafe-pr-checkout,revise-img改comment+TESTTOKEN Created-by: wangyunxiang1 Commit-by: wangyunxiang Merged-by: cann-robot Description: 统一迁移 .gitcode/workflows 中两类插件参数: 1. process_checkout:token(secrets.GIT_TOKEN) 改为 allow-unsafe-pr-checkout: true 2. revise_image:repo_url(vars.CI_PATH) 改为 comment(atomgit.event.comment.body) + token(secrets.TESTTOKEN) See merge request: cann/ops-transformer!12257 | 2 天前 | |
generic_block_sparse_attention_grad_cleanCode Co-authored-by: cjz_<chenjunzhuo@huawei.com> # message auto-generated for no-merge-commit merge: !11952 merge generic_block_sparse_attention_grad_cleanCode into master generic_block_sparse_attention_grad_cleanCode Created-by: cjz_ Commit-by: cjz_ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> GenericBlockSparseAttentionGrad修改cleancode ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5470 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11952 | 18 小时前 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !12191 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元(arch 目录复用 arch35),支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(8 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT、SOC_VERSION_LIST、ARCH_DIRECTORY_LIST 增加 ascend5162a(arch35) | | build.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | cmake/scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | cmake/scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | tests/ut/framework_normal/common/op_api_csv_case_loader.h | SOC_VERSION 映射增加 Ascend5162A | | tests/ut/framework_normal/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/framework_normal/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5356 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-transformer_9.2.0_linux-aarch64.run;pre-commit 全量检查通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12191 | 3 天前 | |
[FIA][master] 修复 MLA 下沉模板注册和旧模板转置偏移 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !11804 merge fix/fia_mla_sink_transpose_master into master [FIA][master] 修复 MLA 下沉模板注册和旧模板转置偏移 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 修复非量化 MLA TND_NTD 场景 eager 通过但 tiling 下沉精度失败的问题。 - 将 arch35/fia_tiling_nonquant_mla.cpp 加入设备侧 tiling 编译列表,使 priority=5 的新 MLA 模板能够注册。此前 Host 包含该模板,设备库遗漏该文件,下沉运行时会选择旧模板。 - 修复旧模板 CalcAIVMlaAttentionOutOffset 在 gSize<=32 时遗漏起始 head 余数的问题。G=5、M=64 时,正确起点为 (head=4, token=12);补算 cubeSOuterOffset % gSize,并保留后续第二个 AIV 的偏移计算。 ## 关联的Issue 关联 #5226:https://gitcode.com/cann/ops-transformer/issues/5226 ## 测试 - pre-commit 全部 Passed/Skipped,git diff --check 通过。 - 直接抽取并编译修改前后的 C++ 地址计算函数,覆盖 G=1..32、64、128,T=1/3/19/52/65,batch 前缀偏移 0/17,两个 AIV、尾块及三种 SG 转置输出布局,共 20,046 组。修复前 10,662 组失败,修复后全部通过。 - 新增 MLA tiling 源文件通过 AArch64 交叉编译并生成目标文件。 - 修复前 CANN_0828 上板复现:B=1、T=52、Nq=5、Nkv=1、D=512、RoPE=64、actual_seq=[52]、共享 K/V、causal mask。TND_NTD eager/普通图最大绝对误差约 0.00104,下沉约 2.21648;TND 下沉通过且转置后与 eager 完全一致。 - 验证限制:完整设备库构建被本地依赖缺少 op_host/util/op_const_def.h 阻断,尚未完成修复后的整包上板精度验证,需 CI/配套依赖环境继续验证。 ## 文档更新 无。 ## 类型标签 - [x] 🐛 Bug修复 - [x] 📦 构建/CI See merge request: cann/ops-transformer!11804 | 5 天前 | |
feat(kda_input_proj): implement mm_bgg and sigmoid kernel execution Co-authored-by: zhengyuhao3<zhengyuhao3@huawei.com> # message auto-generated for no-merge-commit merge: !12099 merge pr/kda-02-aclnn-mmbgg-sigmoid into master feat(kda_input_proj): implement mm_bgg and sigmoid kernel execution Created-by: zhengyuhao3 Commit-by: zhengyuhao3 Merged-by: cann-robot Description: ## 描述 kda_input_proj算子补充matmul_bgg和sigmod模块的tiling和kernel计算逻辑 以及算子aclnn接口和torch_extension接口补充 分批合入代码:2/3 本PR合入matmulbgg和sigmoid计算流程 以及aclnn接口和torch接口 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5338 ## 测试 本地ATK验证功能正常,精度通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12099 | 4 天前 | |
整改仓内+安装重名头文件 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !11266 merge clear_h into master 整改仓内+安装重名头文件 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 整改仓内及安装场景下的重名头文件冲突,避免同名头文件在编译包含路径或安装打包时互相覆盖。 **改动原因** - 仓内 attention/、gmm/、示例工程等存在 basename 相同的头文件,易在统一 include 搜索路径下发生错误包含。 - 与 third_party(如 catlass)及主仓多算子之间存在安装侧重名,可能覆盖安装产物。 **采取的方法** 1. **仓内重名**(637b7145f):对易冲突头文件按模块加前缀消歧,并同步更新引用,例如: - BSA / GBSA:block_epilogue_* / block_mmad_* → bsa_* / gbsa_* - recurrent_kda:recurrent_kda.h → recurrent_kda_arch22.h / recurrent_kda_arch35.h - grouped_matmul:grouped_matmul_kernel.h → grouped_matmul_kernel_arch35.h / fkl_grouped_matmul_kernel.h 等 - metadata:generic_block_sparse_attention_metadata.h → generic_block_sparse_attention_metadata_tiling.h 2. **安装重名**(975ffde47):对 GBSA/BSA/GMM 基础设施头文件统一加模块前缀(gbsa_ / bsa_ / gmm_,epilogue/gemm/tla 再细分),git mv 后批量更新 #include;**不改** experimental/ 与 third_party/。 3. 同步调整 scripts/check_duplicate_headers.sh 等相关引用。 **范围说明**:本次仅为头文件重命名与 include 路径同步,无业务逻辑变更(约 151 个文件,增删对等)。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5037 ## 测试 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11266 | 13 天前 | |
feat(compressor_v2): 新增 CompressorV2 压缩算子及 ds41 PTA 接口 Co-authored-by: myy268<moyunyang@huawei.com> # message auto-generated for no-merge-commit merge: !12323 merge cpv2 into master feat(compressor_v2): 新增 CompressorV2 压缩算子及 ds41 PTA 接口 Created-by: myy268 Commit-by: myy268 Merged-by: cann-robot Description: ## 描述 为适配 ds4.1,新增 CompressorV2 压缩算子(experimental/attention/compressor_v2),在原 Compressor 上去掉 ape、固定 coff=1/cache_mode=2、去掉反向输出,并配套 ds41 PTA 接口与测试。 ## 关联的Issue 关联 Issue #5418 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 新增并按 V2 语义更新 README.md、docs/aclnnCompressor.md 及 aclnn 调用示例。 ## 类型标签 - [x] ✨ 新特性 - [x] 🧪 测试 - [x] 📝 文档更新 See merge request: cann/ops-transformer!12323 | 2 天前 | |
fix:align_L2_DFX_PHASE_1_params Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !11963 merge dts into master fix:align_L2_DFX_PHASE_1_params Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 1. 问题背景 本次处理问题单中的以下检查项: - ID 2: aclnnFlashAttentionScoreV4 - ID 17:aclnnFFN - ID 18:aclnnFFNV2 - ID 19:aclnnFFNV3 官方宏说明: <https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/API/aolapi/atlasascendc_api_07_1052.html> 官方约束要求 L2_DFX_PHASE_1 在 aclnn 的一阶段接口 aclnnXxxGetWorkspaceSize 最前方调用, 并且 DFX_IN/DFX_OUT 中的内容必须与接口参数列表严格一致,包括参数个数、顺序和参数表达形式。 ## 2. 结论 ID 2、17、18、19 均为确定问题。 | ID | API | 问题 | 处理方式 | | --- | --- | --- | --- | | 2 | aclnnFlashAttentionScoreV4 | 缺少 softmaxOutLayout | 在 pseType 与 seed 之间补齐 | | 17 | aclnnFFN | 使用 ffnParams.*,并多传 -1, false | 改为接口形参,删除多余参数 | | 18 | aclnnFFNV2 | 使用 ffnParams.*,并多传 -1 | 改为接口形参,保留 tokensIndexFlag,删除 -1 | | 19 | aclnnFFNV3 | 使用 ffnParams.* 和错误的可选参数名,并多传 -1 | 改为 xxxOptional 接口形参,保留 tokensIndexFlag,删除 -1 | ffnParams.x 与 x 在运行时数值等价,但 DFX 检查要求与接口形参严格一致;同时 -1 和 false 是实际多余参数,会造成 DFX 参数元组基数与接口不一致。 ## 3. 修改设计 ### 3.1 修改文件 - attention/flash_attention_score/op_api/aclnn_flash_attention_score.cpp - ffn/ffn/op_host/op_api/aclnn_ffn.cpp ### 3.2 aclnnFlashAttentionScoreV4 将 DFX 输入参数补齐为: cpp DFX_IN(query, key, value, realShiftOptional, dropMaskOptional, paddingMaskOptional, attenMaskOptional, queryRopeOptional, keyRopeOptional, dScaleQOptional, dScaleKOptional, dScaleVOptional, sinkOptional, prefixOptional, actualSeqQLenOptional, actualSeqKvLenOptional, qStartIdxOptional, kvStartIdxOptional, scaleValue, keepProb, preTokens, nextTokens, headNum, inputLayout, innerPrecise, sparseMode, outDtype, pseType, softmaxOutLayout, seed, offset) ### 3.3 aclnnFFN 改为接口形参,并删除不属于 aclnn 接口的 -1, false: cpp DFX_IN(x, weight1, weight2, expertTokens, bias1, bias2, scale, offset, deqScale1, deqScale2, antiquantScale1, antiquantScale2, antiquantOffset1, antiquantOffset2, activation, innerPrecise), DFX_OUT(y) ### 3.4 aclnnFFNV2 改为接口形参,保留 tokensIndexFlag,删除多余的 -1: cpp DFX_IN(x, weight1, weight2, expertTokens, bias1, bias2, scale, offset, deqScale1, deqScale2, antiquantScale1, antiquantScale2, antiquantOffset1, antiquantOffset2, activation, innerPrecise, tokensIndexFlag), DFX_OUT(y) ### 3.5 aclnnFFNV3 改为接口中的 xxxOptional 形参,保留 tokensIndexFlag,删除多余的 -1: cpp DFX_IN(x, weight1, weight2, expertTokensOptional, bias1Optional, bias2Optional, scaleOptional, offsetOptional, deqScale1Optional, deqScale2Optional, antiquantScale1Optional, antiquantScale2Optional, antiquantOffset1Optional, antiquantOffset2Optional, activation, innerPrecise, tokensIndexFlag), DFX_OUT(y) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4930](https://gitcode.com/cann/ops-transformer/issues/4930) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11963 | 4 天前 | |
fix: 修复 QuantGroupedMatmulInplaceAdd 动态图场景 K==1 输入未转置的问题 Co-authored-by: zhoushaolong<zhoushaolong3@huawei.com> # message auto-generated for no-merge-commit merge: !12370 merge gmmia-k1-fallback-mainline into master fix: 修复 QuantGroupedMatmulInplaceAdd 动态图场景 K==1 输入未转置的问题 Created-by: zhoushaolong Commit-by: zhoushaolong Merged-by: cann-robot Description: ## 描述 QuantGroupedMatmulInplaceAdd 的 graph fallback 路径中, ApplyTranspose 在 enableTranspose 时对输入 viewShape / strides 的最后两维执行轴交换,但原实现带有 viewShape[dimM] != 1 的前置条件,导致倒数第二维为 1 时直接跳过转置。 融合图以源 (K, M) 布局提供 X1 输入,K == 1(unit-K)是合法场景,此时同样需要执行轴交换;否则 aclnn fallback 收到的 X1 为 (K, M) 布局,而 X2 按 (K, N) 解释,造成 K 维不匹配。 本改动移除 viewShape[dimM] != 1 限制,仅保留 viewShape[dimN] != 0 判断,使 unit-K 输入在回退路径上正确完成转置,K 维恢复对齐。 ## 关联的Issue - 关联Issue #5445 ## 测试 二级冒烟用例动态图pass ## 文档更新 无。本改动不涉及文档变更。 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12370 | 19 小时前 | |
feat: fused_causal_conv1d/causal_conv1d算子支持ascend350平台 Co-authored-by: Shichenyu<1312925094@qq.com> # message auto-generated for no-merge-commit merge: !12031 merge trans1030 into master feat: fused_causal_conv1d/causal_conv1d算子支持ascend350平台 Created-by: gcw_DS4cmz2b Commit-by: Shichenyu Merged-by: cann-robot Description: ## 描述 为fused_causal_conv1d和causal_conv1d两个算子添加350适配 ## 关联的Issue [算子未进行350适配](https://gitcode.com/cann/ops-transformer/issues/5314) ## 测试 算子二级冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12031 | 20 小时前 | |
modify quant_reduce_scatter & quant_all_reduce markdown Co-authored-by: wangliangpei<wangliangpei@huawei.com> # message auto-generated for no-merge-commit merge: !12222 merge pr_master into master modify quant_reduce_scatter & quant_all_reduce markdown Created-by: xiongyifu Commit-by: wangliangpei Merged-by: cann-robot Description: ## 描述 修改 quant_reduce_scatter & quant_all_reduce 的 markdown ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5247 ## 测试 仅修改文档,不涉及测试 ## 文档更新 ops-transformer/mc2/quant_reduce_scatter/docs/torchapi_quant_reduce_scatter.md ops-transformer/mc2/quant_all_reduce/docs/torchapi_quant_all_reduce.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12222 | 17 小时前 | |
fix: 修正 mhc_pre_sinkhorn_backward D1/D4 精度差异 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !12197 merge fix/log-sinkhorn-20260916 into master fix: 修正 mhc_pre_sinkhorn_backward D1/D4 精度差异 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 修复 mhc_pre_sinkhorn_backward 算子(arch35 确定性路径,tiling priority=0 实际生效分支)两处标杆精度差异: **D1:SigmoidGrad(is_pre) 多扣 eps** - backward 从 z 重算的 σ 天然不含 eps, is_pre 时再减 eps 属多余操作,sigmoid 饱和区梯度被污染为 O(eps) 非零值(精确值应为 0) - kernel 删除 SigmoidGrad 中 ISPRE 分支的 Adds(-eps),同步删除未使用的 hcEps 参数;golden/input 的 _sigmoid_grad 去掉扣 eps **D4:sinkhorn backward 首迭代行方向未还原 raw p/raw s** - 前向 softmax 用 raw s 除法后 +eps 存储(sumOut[0]=s+eps、normOut[0]=p+eps),backward i=0 行方向(softmax backward)应还原 p = norm_out[0][0] − eps、s = sum_out[0][0] − eps;列方向存储值即前向真实除数/输入,本就精确不修正 - kernel SinkhornGradSimdVf 新增 SinkhornGradRestoreRaw:i==0 时在列方向计算完成后、行方向计算前对 rowNorm/rowSum 原地减 eps;golden/input 的 _sinkhorn_grad 同步修正 **配套对齐**:input.py 前向模拟对齐 kernel 真实行为(hPre = σ(z)+eps;softmax 除 raw s 后 +eps,iter≥1 归一化不变),保证 golden backward 与输入数据自洽。 ## 关联的Issue #5409 ## 测试 - autograd 数值验证(float64,双种子):修复前 grad_x/grad_phi 偏差 ~1e-6、grad_alpha ~1e-4(O(eps) 系统性偏差);修复后 grad_x/grad_phi/grad_alpha 全部达机器精度(~1e-16) - grad_bias 残差经语义校验(补 bias 经 hcbn 路径后 ~1e-16)确认为 golden 既有语义定义(不含 bias 经 hcbn 的间接路径),非本次差异 - pre-commit 门禁全部通过(clang-format/ruff/codespell/OAT 合规) ## 文档更新 无需更新文档 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12197 | 2 天前 | |
[master] MoeTokenPermute INT8 约束文档按产品格式标注 Co-authored-by: Huang-Peng<huangpeng98@huawei.com> # message auto-generated for no-merge-commit merge: !12402 merge docs/moe-token-permute-950-format-master into master [master] MoeTokenPermute INT8 约束文档按产品格式标注 Created-by: Huang-Peng Commit-by: Huang-Peng Merged-by: cann-robot Description: ## 描述 依据 [aclnn API 文档模板](https://gitcode.com/cann/ops-transformer/wiki/aclnn%20API%E6%96%87%E6%A1%A3%E6%A8%A1%E6%9D%BF),将 MoeTokenPermute 参数表中的 Ascend 950 专属 INT8 描述移到“约束说明”。通用参数规格仍在表格中,产品差异使用 <term>Ascend 950PR/Ascend 950DT</term> 和配对的 npu="950" 产品标签。保留 master 中已有的 INT8 tokens 二维限制。 本 PR 将 [#12253](https://gitcode.com/cann/ops-transformer/merge_requests/12253) 的检视修改同步到 master;原始功能变更见 [#12134](https://gitcode.com/cann/ops-transformer/merge_requests/12134)。 ## 关联的Issue 关联 Issue #5336。 ## 测试 - 两份 PR 的文档内容一致,产品标签配对且编号唯一。 - 检查 CRLF 换行与 Git diff 格式;仅修改 API 文档,无代码行为变化。 ## 文档更新 更新 moe/moe_token_permute/docs/aclnnMoeTokenPermute.md 的参数说明和约束说明。 ## 类型标签 文档修正 See merge request: cann/ops-transformer!12402 | 2 天前 | |
docs: 明确 RoPE cacheMode 的行为并统一示例;将aclnnRopeWithSinCosCacheV2.md文档中cacheMode改为0 便于匹配; Co-authored-by: z00886715<zengzhennan2@huawei.com> # message auto-generated for no-merge-commit merge: !12326 merge docs/fix-204-cache-mode into master docs: 明确 RoPE cacheMode 的行为并统一示例;将aclnnRopeWithSinCosCacheV2.md文档中cacheMode改为0 便于匹配; Created-by: gcw_oeok7yxb Commit-by: z00886715 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、明确 RoPE cacheMode 的行为并统一示例;将aclnnRopeWithSinCosCacheV2.md文档中cacheMode改为0 便于匹配; 2、test_aclnn_rope_with_sin_cos_cache_v2.cpp文件代码格式检查修正,符合要求; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: 明确 RoPE cacheMode 的行为并统一示例;将aclnnRopeWithSinCosCacheV2.md文档中cacheMode改为0 便于匹配; 验证环境:Ascend 910B,CANN 9.1.0。 验证命令: bash build.sh --pkg --soc=ascend910b --ops=rope_with_sin_cos_cache -j16 -p /usr/local/Ascend/cann-9.1.0 bash build.sh --run_example rope_with_sin_cos_cache eager cust --example_name=test_aclnn_rope_with_sin_cos_cache_v2 验证结果: Example completed successfully。 See merge request: cann/ops-transformer!12326 | 18 小时前 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !12191 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元(arch 目录复用 arch35),支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(8 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT、SOC_VERSION_LIST、ARCH_DIRECTORY_LIST 增加 ascend5162a(arch35) | | build.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | cmake/scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | cmake/scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | tests/ut/framework_normal/common/op_api_csv_case_loader.h | SOC_VERSION 映射增加 Ascend5162A | | tests/ut/framework_normal/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/framework_normal/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5356 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-transformer_9.2.0_linux-aarch64.run;pre-commit 全量检查通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12191 | 3 天前 | |
MC2:UT测试数据soc列迁移arch串 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !12347 merge fix_2 into master MC2:UT测试数据soc列迁移arch串 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5147 ## 摘要 mc2 UT 测试数据(CSV)soc 列的平台表达迁移 arch 口径,按链路取各自可用的最佳写法:**tiling 用 3510**(框架 isNpuArchString 仅认纯数字串)、**op_api 用 DAV_3510**(arch 常量全称,自解释)。单笔提交,14 文件(13 CSV + op_api 加载器 1 行)。 ## 动机 前序整改(#12072 等)后,算子代码平台判断已统一 arch 口径(GetNpuArch(context) == DAV_3510),但 UT CSV 的 soc 列仍写平台字符串 Ascend950,测试数据与被测代码口径脱节;且 soc 名若变更(商用前型号更名),CSV 需全量重写。迁移 arch 串后测试数据与代码判断依据同源,soc 名变更仅需调整框架 mock 映射表。 ## 改动明细 ### 1. CSV 数据(13 文件,421 处) - **op_host tiling arch35 ×5**(moe_distribute_dispatch_v2 / moe_distribute_combine_v2 / all_gather_matmul / all_gather_matmul_v2 / matmul_reduce_scatter_v2):Ascend950 → 3510(tiling 执行器 isNpuArchString 仅认纯数字串,对齐仓内 5 个裸 3510 先例文件) - **op_api ×8**(matmul_all_reduce 系 ×6、allto_all_matmul_v2、allto_all_quant_matmul):Ascend950 → DAV_3510(op_api 映射表无格式约束,用常量全称) - **列级精确替换**(soc 列):逐文件核验目标值仅出现于该列且每行至多 1 次,无整文件误替换 - **case 名同步**(89 处,统一全称 DAV_3510):前缀式 ascend950_* → DAV_3510_*(15 处 / 6 文件);后缀式 *_950 → *_DAV_3510(74 处,all_gather_matmul_v2 tiling)。case_name 仅作标识与日志输出、无格式约束;非平台含义的 4295032864(groupSize 值)误含 950 子串者未动 ### 2. op_api 加载器(op_api_csv_case_loader.h,1 行) - SOC_VERSION 映射表新增 {"DAV_3510", ASCEND950}:op_api 链路此前无 arch 串支持 ### tiling 链路无需改动 tiling_case_executor.cpp 的 isNpuArchString 原生支持纯数字 arch 串(archToSoc {"3510"→"Ascend950"} 注入 NpuArch=3510 + Short_SoC_version=Ascend950),与 master 上 5 个裸 3510 先例文件走同一链路。 ## 语义等价性 - tiling:3510 → 注入 NpuArch=3510 + Short_SoC_version=Ascend950,与原 Ascend950(socToArch 反查)注入的平台资源**完全一致** - op_api:DAV_3510 → ASCEND950 枚举,与原 Ascend950 直映**完全一致** - 兼容性:Ascend950 旧写法继续可用(原表项未动) ## 测试 - tiling:all_gather_matmul + moe_distribute_combine_v2 → **88 tests PASSED**;all_gather_matmul_v2 → **153 tests PASSED** - op_api:matmul_all_reduce + allto_all_matmul(覆盖 7 个 CSV,含 case 名重命名)→ **498 tests PASSED** - 其余涉及算子以 CI 为准 ## 已知不阻塞项 allto_all_matmul_v2 op_api 的 9 个 dtype/shape invalid 用例在上游纯净 master 基线即失败(19 跑 10 过:期望 PARAM_NULLPTR 实际 RUNTIME_ERROR),已本地 stash 对比确认与本改动无关。 ## 范围说明 - mc2 目录外 59 个含 950 的 CSV(gmm / attention / moe / posembedding 等)不在本口径:其中真机 ST CSV 的 soc 列为实际产品名不应转换,待单独评估 - experimental pytest CSV(qbsa_mxfp8_stc.csv)消费链路不同,未动 See merge request: cann/ops-transformer!12347 | 2 天前 | |
新增 Flash MLA WITH CACHE算子及 M96×112 流水性能优化 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !11808 merge perf/flash-mla-mfu90-portable into master 新增 Flash MLA WITH CACHE算子及 M96×112 流水性能优化 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 新增 flash_mla_with_kvcache 和 flash_mla_with_kvcache_metadata,支持分页 KV 的 MLA attention,包含 host/API、AICPU metadata、AscendC kernel、Torch 接入及文档。 - 按 flash_attn 的函数组织方式整理 tiling,完善 dtype、layout、shape、mask、序列长度、metadata 和 LSE 检查,同步默认值并修复序列索引、padding 输出初始化。 - 使用 M96×112 基本块、常驻 Q 首段及三槽 L1 缓冲,配合 L0A/L0B 同步复用,降低搬运与 scalar 开销。 - Flash Decode 根据分片数量选择 16/8 行规约,减少规约尾部开销;不使用固定 28 核的任务重排。 全部历史提交已压缩为 317f35490,与压缩前 84b784d4d 的 Git tree 完全一致,未改变代码内容。本 PR 提交 perf/flash-mla-mfu90-portable 分支;相对 master 包含算子完整实现。 ## 关联的Issue Fixes #5229 https://gitcode.com/cann/ops-transformer/issues/5229 ## 测试 - 格式、ruff、OAT 等检查通过;37 个格式修正文件已核对 C++ token、Python AST 或非空白内容等价。压缩提交后,以全部新增文件为 staged 范围检查时,duplicate-header-check 发现原有头文件 basename 重名,因此完整 pre-commit 尚未全部通过;本次仅压缩历史,未调整文件命名。与抓取的 master 无合并冲突。 - 既有固定性能用例:B=1、H=96、Q=8、KV=128000、DQK=576、DV=512,TND/PA_NZ、sparse_mode=3,返回 LSE。在原测试平台上耗时约 620 us,按有效 FLOPs / (耗时 × 378.47 TFLOPS) 口径达到约 91% MFU;该数据不代表所有 case 或核数均达到 90%。 - 既有 BF16/FP16 各 500 条泛化及边界测试用于核对优化前后输出。严格逐点阈值仍存在失败:BF16 abs>0.0001 且 rel>0.0078125;FP16 abs>0.000025 且 rel>0.005。不能视为全点精度通过;此前观察的最差 512 维行分别为 107/512、30/512 个失败点,未达到 70%。 - 本次 PR 提交未重新整包编译或运行 NPU 测试。后续 mask 提前准备、mask 跳过及实验性 FD 优化不属于此分支。 ## 文档更新 提供 attention/flash_mla_with_kvcache/docs/torchapi_flash_mla_with_kvcache.md,说明输入输出、默认值、支持规格、mask 与 metadata 使用要求。 ## 类型标签 - [x] 新特性 - [x] 性能优化 - [x] Bug 修复 - [x] 文档更新 See merge request: cann/ops-transformer!11808 | 3 天前 | |
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 | 27 天前 | |
产品文档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 | 1 个月前 | |
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 | 2 个月前 | |
fix(pre-commit): oat-check增加require_serial与SKIP日志,修复OAT合规检查漏拦 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !11215 merge fix into master fix(pre-commit): oat-check增加require_serial与SKIP日志,修复OAT合规检查漏拦 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## issue:https://gitcode.com/cann/ops-transformer/issues/5016 ## 描述 ### 改动原因 oat-check hook 存在两个导致合规检查失效的问题: 1. 未设置 require_serial(默认 false),多核机器上 pre-commit 会把文件列表拆成多块并行调用 scripts/oat_check.sh。脚本内部 flock 串行化 + done-marker 缓存机制下,第一个抢到锁的分块(可能只含干净文件)扫完即写 marker,其余分块全部静默跳过——含版权头不合规文件的提交可整体漏过 OAT 检查(实测 6 文件混入 1 个问题文件场景,6 次中 5 次漏拦)。 2. 命中 done-marker 时静默 exit 0,hook 显示 "Passed" 但实际未做任何扫描,易造成误判(ops-nn 仓会输出 [SKIP] 日志)。 ### 改动方法 - .pre-commit-config.yaml:oat-check hook 增加 require_serial: true,禁止并行分块,所有 staged 文件单进程全量传入脚本检查 - scripts/oat_check.sh:命中 done-marker 时输出 [OAT] [SKIP] Already scanned HEAD=<sha> 日志后再退出(与 ops-nn 仓脚本对齐,两仓脚本现已一致) ### 兼容性 pre-commit 配置与检查脚本改动,不影响编译产物与算子功能。 ## 关联的Issue ## 测试 - 修复前:6 文件(5 干净 + 1 版权头不合规)提交场景,6 次重跑 5 次整体 Passed 漏拦 - 修复后:同场景连续 3 轮全部准确 Failed 拦截,问题文件稳定检出 - done-marker 命中场景验证:输出 [SKIP] Already scanned HEAD=xxx 日志,跳过可见 ## 文档更新 无 ## 类型标签 - [x] 🐛 缺陷修复 See merge request: cann/ops-transformer!11215 | 6 天前 | |
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 | 1 个月前 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !12191 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元(arch 目录复用 arch35),支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(8 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT、SOC_VERSION_LIST、ARCH_DIRECTORY_LIST 增加 ascend5162a(arch35) | | build.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | cmake/scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | cmake/scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | tests/ut/framework_normal/common/op_api_csv_case_loader.h | SOC_VERSION 映射增加 Ascend5162A | | tests/ut/framework_normal/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/framework_normal/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5356 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-transformer_9.2.0_linux-aarch64.run;pre-commit 全量检查通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12191 | 3 天前 | |
产品文档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 | 1 个月前 | |
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 | 2 个月前 | |
feat: add BlockAttnResPrepare tiling and kernel Co-authored-by: zhaoyingchao<zhaoyingchao1@hisilicon.com> # message auto-generated for no-merge-commit merge: !10972 merge codex/block-attn-res-prepare-core into master feat: add BlockAttnResPrepare tiling and kernel Created-by: zhaoyingchao2 Commit-by: zhaoyingchao Merged-by: cann-robot Description: ## 关联 Issue 关联 [#4749](https://gitcode.com/cann/ops-transformer/issues/4749) ## 描述 新增 BlockAttnResPrepare 的算子原型、InferShape、host tiling 与 Ascend 950 kernel: - tiling key 1000:纯 AIV 小规格回退路径。 - tiling key 2000:1 AIC : 2 AIV mixed 路径,调用 ops-tensor 公共 kernel 模板。 - 固定 OPTENSOR_TAG_ID 到已合入的公共模板提交。 - 补充 InferShape、host tiling、opkernel UT、TTK CSV 和 golden。 ## 测试 - clang-format 18.1.8:通过。 - Ruff 0.14.14:通过。 - git diff --check:通过。 - PR 分支包含 host/kernel UT,可独立执行线上 compile 门禁。 ## 拆分关系 本 PR 是 aclnn 与 torch 两个后续 PR 的前置核心实现。 See merge request: cann/ops-transformer!10972 | 19 天前 | |
README中添加算子索引链接 Co-authored-by: lixiawei<lixiawei2@h-partners.com> # message auto-generated for no-merge-commit merge: !12163 merge readme_add into master README中添加算子索引链接 Created-by: lixiawei Commit-by: lixiawei Merged-by: cann-robot Description: ## 描述 README中添加算子索引链接 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3586 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12163 | 4 天前 | |
修复文档链接跳转失效问题 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 | 2 个月前 | |
支持按模板参数编译算子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 | 6 个月前 | |
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 | 2 个月前 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !12191 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元(arch 目录复用 arch35),支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(8 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT、SOC_VERSION_LIST、ARCH_DIRECTORY_LIST 增加 ascend5162a(arch35) | | build.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | cmake/scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | cmake/scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | tests/ut/framework_normal/common/op_api_csv_case_loader.h | SOC_VERSION 映射增加 Ascend5162A | | tests/ut/framework_normal/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/framework_normal/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5356 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-transformer_9.2.0_linux-aarch64.run;pre-commit 全量检查通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12191 | 3 天前 | |
修复 groupedMatmulAllreduce 算子 classify_rules 组件配置错误 Co-authored-by: candy_cloud_fly<tangyunfei4@h-partners.com> # message auto-generated for no-merge-commit merge: !12312 merge fix_classify_rule into master 修复 groupedMatmulAllreduce 算子 classify_rules 组件配置错误 Created-by: candy_cloud_fly Commit-by: candy_cloud_fly Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复classify_rules错配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12312 | 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 | 1 个月前 | |
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 | 2 个月前 | |
升级 ops-transformer 版本至 9.2.0 Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !11465 merge master into master 升级 ops-transformer 版本至 9.2.0 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/5083 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11465 | 12 天前 | |
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 | 6 个月前 |
🔥Latest News
- [2026/08] 仓内集成pre-commit代码检查框架,配置后
git commit时自动检查并修复格式问题,将规范问题拦截在提交阶段、提升代码合入效率,详见pre-commit配置指导书。 - [2026/07] A5上新支持算子quant_flash_attn,Dense Attention全量化场景专用,以及experimental目录新增同名算子支持A5的MxFP4全量化;chunk_gated_delta_rule算子支持A5;A5新增DSV4 dense训练阶段TopK筛选反向算子dense_lightning_indexer_grad_kl_loss、dense_lightning_indexer_softmax_lse;mc2新支持算子engram_fetch_grad。
- [2026/06] A5上新增支持sparse_flash_mla、mixed_quant_sparse_flash_mla以及对应的metadata算子,用于DSV4场景稀疏Attention计算。新增lightning_indexer_v2、quant_lightning_indexer_v2以及对应的metadata算子,用于DSV4场景TopK筛选。A5新增DSV4 sparse训练阶段Attention反向算子sparse_flash_mla_grad、sparse_lightning_indexer_kl_loss_grad;mc2新支持算子engram_fetch、engram_fetch_wait。
- [2026/05] fused_infer_attention_score算子A5上支持MxFP8全量化;A5上新支持算子flash_attn,Dense Attention非量化场景专用。
- [2026/04] mc2新支持算子mega_moe。
- [2026/03] recurrent_gated_delta_rule算子支持A5。
- [2026/02] 新支持算子mhc_post、mhc_pre、mhc_res。
- [2026/01] 新支持算子grouped_matmul<<<>>>调用示例,方便用户自定义使用。
- [2026/01] 新支持算子fused_floyd_attention、fused_floyd_attention_grad、matmul_allto_all。
- [2025/12] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导。
- [2025/12] 支持transformer类onnx算子插件,包括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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。