| modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 17 天前 |
| [Docs] 修正归一化算子API文档与example一致性问题 Co-authored-by: Chen_HaoWen<chenhaowen12@huawei.com> # message auto-generated for no-merge-commit merge: !9707 merge fix/nn-doc-example-consistency-20260901 into master [Docs] 修正归一化算子API文档与example一致性问题 Created-by: Chen_HaoWen Commit-by: Chen_HaoWen Merged-by: cann-robot Description: ## 2026-09-21 门禁更新 - 为同步主干已有修正,将原单提交无冲突 rebase 到 6de991ff8ac0279e3829fd6040ea20d599cce79c,当前提交为 44a9093b2f5819e2678af974c2fb97b9d781aa15。 - 仍为 1 个提交、26 个变更文件;FastBatchNormBackward example 随主干迁移至 examples/arch22/,原修改语义保留。 - 本地完整 pre-commit 与 OAT 通过(26/26 文件)。新流水线 [#9777](https://gitcode.com/CANN/ops-nn/actions/runs/c111272fd7fd4087965a80d70af16608) 已全部通过:40 个任务均为 COMPLETED,覆盖静态检查、编译、API 检查、四组 UT、950 ST 和 A2/Harmony 冒烟测试。 - 下方 A2/A5 验证为原提交的历史结果,本次 rebase 后未重复执行硬件测试;新基线的验证以本次 CI 结果为准。 - 提交更新后平台自动清除原 approve/lgtm,需检视者重新确认。 ## 变更说明 本 PR 修复资料一致性扫描中确认的 14 条问题,涉及 13 份归一化算子 API 文档,并同步修改对应 example,共修改 13 份文档和 13 个 example。 主要修改如下: 1. **Tensor 格式与数据类型** - aclnnFastBatchNormBackward 的 3 维输入和输出显式使用 ACL_FORMAT_NCL,与文档约束一致。 - aclnnEmbeddingRenorm、aclnnDeepNormGrad 的标量类型改为接口原型要求的 double。 - aclnnAddRmsNormDynamicQuantV2 的 scale1/scale2 host 缓冲改为 float,与 ACL_FLOAT Tensor 元数据一致。 - aclnnAddLayerNormGrad 的 9 组 host 数据改为 float,避免整型字节按浮点解释。 - aclnnAddLayerNormQuantV2 静态量化示例将 additionalOutput 改为 false。 2. **错误处理与资源释放** - aclnnAdaLayerNormBackward 创建 aclIntArray 失败时返回 ACL_ERROR_BAD_ALLOC,不再复用上一次成功状态码。 - 删除 aclnnDeepNormGrad、aclnnGroupNorm workspace 失败分支中的多余分号。 - aclnnAdaLayerNormV2 补充 mean、rstd Tensor 及 device 内存释放。 3. **注释、日志与示例依赖** - 修正 aclnnRmsNormQuant 的变量注释。 - aclnnDeepNorm 的输出标签分别改为 mean、rstd、y。 - aclnnInstanceNorm 的调用说明、调用日志、三组输出标签和输出注释统一为实际传入 gamma、beta 的场景。 - aclnnAddLayerNormQuant 文档和普通 aclnn example 将间接依赖的 <iostream> 替换为 <cstdio>,并显式调用 std::printf。 ## 扫描结论审计 本次未机械套用扫描建议,以下结论按代码事实进行了收敛: - float 传给 double 属于扩大转换,不是窄化;修改目的为与接口原型保持一致。 - CHECK_RET 宏实参末尾的多余分号通常展开为空语句,并不直接造成编译失败;仍删除以保持示例一致性。 - aclnnAddLayerNormQuant 的 <vector> 在文档、普通 aclnn example 和 GEIR example 中均被使用;GEIR example 还实际调用 std::cout,因此保留其 <iostream>,仅修正文档和普通 example 的直接依赖。 ## 验证结果 - 基线:公共仓 master,08a9a06729d7433b9d2e8bc6d12c7fda0cff6369。 - 提交:786f7883bd982e45437904249d7e42ee3f9a0a79,公共基线之上恰好 1 个 commit。 - 本地检查:26 个 PR 文件完整通过 pre-commit,OAT 实际扫描 26/26 通过。 - A2 / Ascend 910B3:以下 10 个 example 使用仓库 build.sh --run_example 编译、运行成功,10/10 通过: - FastBatchNormBackward - RmsNormQuant - EmbeddingRenorm - AdaLayerNormBackward - DeepNormGrad - GroupNorm - AddRmsNormDynamicQuantV2 - AdaLayerNormV2 - AddLayerNormGrad - DeepNorm - A5 / Ascend 950PR:AddLayerNormQuant GEIR example、AddLayerNormQuant 普通 aclnn example、AddLayerNormQuantV2 aclnn example 编译、运行成功,3/3 通过;最终 manifest 绑定目标提交并通过 checkpoint 验收。 - aclnnInstanceNorm 文档仅标明支持 Atlas 推理系列(310P 场景),现有 A2/A5 均不支持,因此未执行硬件运行;文档与 example 同步检查及本地回归断言已通过。 ## 风险与影响 - 修改范围仅限 API 文档和调用 example,不涉及算子 Kernel、Tiling、接口签名或运行库实现。 - aclnnFastBatchNormBackward 现在按文档为 3 维 Tensor 传递 NCL 格式元数据,属于示例约束对齐。 - aclnnAdaLayerNormBackward 的变化只影响 aclCreateIntArray 分配失败路径。 - aclnnAddLayerNormQuant 的 GEIR example 未修改,因为 <iostream>、<vector> 均为真实依赖;普通 aclnn example 改为直接依赖 <cstdio>,不改变算子调用语义。 ## 关联 Issue Closes #5473 See merge request: cann/ops-nn!9707 | 20 天前 |
| fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9218 merge fix/proto-isolation-macro into master fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_nn.h/.cpp,再编成内置 op_proto 库(cmake/gen_ops_info.cmake 的 merge_graph_headers → cmake/symbol.cmake 的 gen_opgraph_symbol)。当同名算子在 canndev 侧的遗留原型头(nn_norm_ops.h、reduce_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 activation/relu6_d、optim/sgd、norm/in_training_reduce_v2、vfusion/normalize_bbox 等先例,但本批 30 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 30 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_DEEPNORM #define OPS_PROTO_DEF_DEEPNORM REG_OP(DeepNorm) ... .OP_END_FACTORY_REG(DeepNorm) #endif // OPS_PROTO_DEF_DEEPNORM 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有 967 个同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(30 个)** ApplyAdagrad、BatchNormExt2、BN3DTrainingUpdate、BNInfer、BNTrainingUpdateV2、BNTrainingUpdateV3、ChamferDistance、ClippedSwiglu、CosineEmbeddingLoss、DeepNorm、DeepNormGrad、DynamicQuantUpdateScatter、DynamicQuantUpdateScatterV2、GemmaRmsNorm、GroupNormSiluQuant、HardSigmoid、HardSwishGradV2、INInferV2、InplaceApplyRMSProp、InplaceSub、InstanceNormGrad、INTrainingUpdateGrad、L2NormalizeGrad、MultiAddRmsNormDynamicQuant、MultilabelMarginLoss、NonZeroWithValue、PoissonNllLoss、Relu6Grad、SoftmaxFocalLoss、SoftmaxFocalLossGrad **顺带修复**:deep_norm、deep_norm_grad、gemma_rms_norm、multi_add_rms_norm_dynamic_quant、dynamic_quant_update_scatter_v2 这 5 个原型头文件末尾缺换行,属存量问题;pre-commit 的 end-of-file-fixer 钩子只扫改动文件,一旦改动即会被拦,故一并补齐。 **变更范围**:30 个文件,+95 −5,改动全部为条件编译指令与文件末尾换行,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_nn_proto_extend.h——merge_proto.py 会按算子名把聚合头中的重复项去重,改它不会进入合并产物。 ## 关联的Issue 关联 Issue #5170 ## 测试 1. **合并产物验证**:对 30 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 30 个、#ifndef OPS_PROTO_DEF_ 30 个,隔离宏 30/30 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:30 个新增宏在三仓范围内无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:按 .pre-commit-config.yaml 逐钩子本地复现 —— clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查 30/30 通过、OAT 许可头 30/30 合规、trailing-whitespace / end-of-file-fixer / check-merge-conflict / detect-private-key / check-added-large-files 全部通过。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 <!-- 关联 Issue: https://gitcode.com/cann/ops-nn/issues/5170 --> See merge request: cann/ops-nn!9218 | 1 个月前 |
| [cleancode] norm类算子超大函数代码整改 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> # message auto-generated for no-merge-commit merge: !10360 merge fix/refactor-huge-method into master [cleancode] norm类算子超大函数代码整改 Created-by: runqi_zhang Commit-by: runqi_zhang Merged-by: cann-robot Description: ## 描述 仓内norm类算子存在大量超大函数,需要对相应文件代码进行整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10360 | 26 天前 |
| 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Co-authored-by: m0_71149169<1907825139@qq.com> # message auto-generated for no-merge-commit merge: !9291 merge norm-quant-microapi-to-reg into master 将norm,quant目录下 MicroAPI 命名空间统一替换为 Reg Created-by: m0_71149169 Commit-by: m0_71149169 Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: norm,quant CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:norm,quant ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: norm,quant目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9291 | 1 个月前 |
| test: 更新7个算子golden测试数据 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !8510 merge master into master test: 更新7个算子golden测试数据 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 7 个算子的 golden(准确度基准)测试数据,同步最新参考值。 | 模块 | 算子 | 文件 | 变化 | |------|------|------|------| | loss | cosine_embedding_loss | golden.py | +56 | | loss | fused_cross_entropy_loss_with_max_sum | golden.py | +145 | | norm | deep_norm | golden.py | +59 | | norm | deep_norm_grad | golden.py | +77 | | optim | apply_adam_w_quant | golden.py | +68 | | quant | dynamic_quant_update_scatter | golden.py | +54 | | quant | dynamic_quant_update_scatter_v2 | golden.py | +56 | ## 测试 - CI golden 数据一致性验证 ## 类型标签 - [x] 测试 ## 关联的Issue - #4683 See merge request: cann/ops-nn!8510 | 1 个月前 |
| Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !365 merge license5 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!365 | 9 个月前 |
| modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 17 天前 |