| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
AdaLayerNorm添加epsilon建议传正数的约束 Co-authored-by: chenhaijie<chenhaijie2@h-partners.com> # message auto-generated for no-merge-commit merge: !10221 merge AdaLayerNorm into master AdaLayerNorm添加epsilon建议传正数的约束 Created-by: chenhaijie1423 Commit-by: chenhaijie Merged-by: cann-robot Description: ## 描述 AdaLayerNorm添加epsilon建议传正数的约束 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5768 ## 测试 仅文档修改 ## 文档更新 更新了以下文档: https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm/docs/aclnnAdaLayerNorm.md https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm/README.md https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm_v2/docs/aclnnAdaLayerNormV2.md https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm_v2/README.md https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm_quant/docs/aclnnAdaLayerNormQuant.md https://gitcode.com/cann/ops-nn/blob/master/norm/ada_layer_norm_quant/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10221 | 16 天前 | |
[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 | 5 天前 | |
[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 | 12 天前 | |
[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 | 5 天前 | |
【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10415 merge nn_work into master 【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5979 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10415 | 8 天前 | |
[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 | 5 天前 | |
[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 | 5 天前 | |
[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 | 5 天前 | |
【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10415 merge nn_work into master 【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5979 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10415 | 8 天前 | |
fix(add_rms_norm_cast): 修正 DAV_3510 空归约场景校验语义 Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !10476 merge fix/add_rms_norm_cast_empty_reduce_validation into master fix(add_rms_norm_cast): 修正 DAV_3510 空归约场景校验语义 Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 AddRmsNormCast 输入 x1=(4,0)、x2=(4,0)、gamma=(0) 时,InferShape 会正确推导 rstdOut=(4,1)。原有公共 tiling 校验会因为 x1 为空但 rstdOut 非空,将该场景误判为输入 shape 非法。 该输入实际对应非 Norm 维度元素总数大于 0、Norm 维度元素总数为 0。当前 DAV_3510 尚未支持该执行场景,因此本次修改: - 公共 tiling 校验仅在 DAV_3510 且 x1 为空、rstdOut 非空时,将该场景交给平台专属 tiling;rstdOut 为空时仍沿用原公共校验,因此合法推导下 numM == 0 的原有行为不变。 - DAV_3510 专属 tiling 使用 x1StorageShape.GetShapeSize() == 0 && rstdStorageShape.GetShapeSize() > 0 识别该场景,并明确提示当前不支持。按照合法 InferShape 关系,该条件对应非 Norm 维度元素总数大于 0、Norm 维度元素总数为 0。 - A2/A3 继续走原有空 Tensor 拒绝逻辑,行为不变。 - 删除文档中“x1 为空时 rstdOut 也必须为空”的错误描述,并补充当前不支持的边界场景。 - 在现有 InferShape 和 tiling UT 文件中补充 (4,0)/(0)/(4,1) 回归用例。 本次不新增空 Tensor kernel、tiling key 或 golden 文件。 ## 关联的Issue 关联 Issue:#5870 Issue 链接:https://gitcode.com/cann/ops-nn/issues/5870 ## 测试 - pre-commit run --files ...:全部通过,包括 clang-format、codespell 和 OAT。 - CANN 版本:9.2.0。 - 执行命令:bash build.sh -u --ophost --ops=add_rms_norm_cast --soc=ascend950 -j8 - 测试结果:12/12 host UT 通过。 - 覆盖 (4,0)/(0)/(4,1) 的 InferShape 结果,以及 DAV_3510 进入专属 tiling 后按当前能力返回不支持;同时确认 rstdOut 为空及 A2/A3 的原有路径不受影响。 ## 文档更新 更新 aclnnAddRmsNormCast.md,修正 rstdOut 空 Tensor 描述,并补充“非 Norm 维度元素总数大于 0、Norm 维度元素总数为 0”当前不支持的边界说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10476 | 8 天前 | |
fix(norm): 修复 MX 量化算子图推导与 ACLNN 文档示例 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10789 merge fix/add-rms-mx-quant-950-review into master fix(norm): 修复 MX 量化算子图推导与 ACLNN 文档示例 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 Ascend 950 上 AddRmsNormDynamicMxQuant 的图推导问题,并修正 RmsNormDynamicMxQuant 的 ACLNN 文档示例。PR 仅修改以下 3 个文件,各文件的修改内容和目的如下。 1. norm/add_rms_norm_dynamic_mx_quant/op_host/add_rms_norm_dynamic_mx_quant_infershape.cpp - 修改内容一:新增最大维度常量 INPUT_MAX_DIM_NUM = 7,在获取并判空 x1 shape 后、访问尾轴前,检查 rank 是否在 [1, 7];不满足时记录明确的错误并返回 GRAPH_FAILED。 - 修改目的:让图推导阶段与算子的 1D~7D 输入约束一致,提前拒绝 rank=0 和 rank=8 等非法输入,避免 rank=0 时继续进行 rank - 1 的尾轴访问。修复前实测 rank=0 越过 InferShape,之后在 tiling 因 mxscale 形状错误失败;未观察到崩溃,不将其描述为已复现崩溃。 - 修改内容二:删除根据 output_rstd 决定是否设置 rstd dtype 的条件分支,在 InferDataType 的输出类型设置处始终设置 rstd = DT_FLOAT。 - 修改目的:rstd 是 REQUIRED 输出,即使 output_rstd=false,其图元数据仍需具有确定的 dtype。修复合法输入因 rstd=DT_UNDEFINED 导致的 GEIR 选型失败。只补齐输出类型,不改变 output_rstd=false 时 rstd 数据无效的语义,也不要求 kernel 额外计算有效 rstd。 2. norm/add_rms_norm_dynamic_mx_quant/tests/ut/op_host/test_add_rms_norm_dynamic_mx_quant_infershape.cpp - 修改内容:保留原有用例,实际新增 3 条 Host UT:infer_shape_rank_zero_returns_failed、infer_shape_rank_eight_returns_failed、infer_dtype_rstd_false_is_float(完整用例名均以 AddRmsNormDynamicMxQuant_ 开头);同时补齐原文件末尾换行。 - 修改目的:分别锁定非法 rank 的下界和上界拦截行为,以及 output_rstd=false 时 REQUIRED 输出的 FP32 dtype 推导行为,防止上述问题回归。 - 断言方式:dtype 用例将 rstd 初始化为 DT_UNDEFINED,调用实际注册的 InferDataType 函数后,与常量 ge::DT_FLOAT 比较;避免预置正确值或与同一被修改变量比较造成假阳性。 3. norm/rms_norm_dynamic_mx_quant/docs/aclnnRmsNormDynamicMxQuant.md - 修改内容:在 C++ 示例中定义 char roundMode[] = "rint",将 aclnnRmsNormDynamicMxQuantGetWorkspaceSize 的 roundMode 实参由 nullptr 改为 roundMode;可选 beta 的 nullptr 保持不变。 - 修改目的:使示例符合 roundMode 不支持 nullptr 的 ACLNN 接口约束,避免用户按示例调用时被参数校验拒绝。本文件只修正文档调用方式,不新增 nullptr 支持或默认化行为,不修改 RMS 的运行时代码。 影响边界:未修改 kernel、tiling 策略、量化计算、ACLNN 参数列表或内存申请代码。两个算子均仅注册 ascend950;未修改 A2/A3 共用实现。ST/TTK 用例、golden、部署脚本和测试产物均仅保留在本地,不纳入本 PR。 ## 关联的Issue 暂无。 ## 测试 - master 基线:0026707d7ecb24d258e030d831c8121ac2d055bd;修复提交:cd5027611319b778c20725ab2cf8e97f3ad2638c;TTK:eaa06de9ea65c5ffd0de5befd9e27483becc8976。 - 使用工作目录内的 ops-test-kit 和 CANN 9.2.0,在 Ascend 950 上分别部署基线/修复版;TTK 显式使用 --pc=1 --seed 42,构建并发不超过 8。最终环境已恢复为修复版两个算子的完整部署。 本地新增回归用例及修复版结果: | 算子 / 通路 | 结果 | 覆盖说明 | | --- | --- | --- | | Add / ACLNN V1、V2 | 42/42 PASS | V1 14 条、V2 28 条 | | Add / kernel | 28/28 PASS | 28 条均 BINARY_MATCH,内存检查 28/28 PASS | | Add / GEIR 静态图 | 28/28 PASS | 有效输出精度比对通过 | | Add / GEIR 动态图 | 4/4 PASS | rank=1/7 × output_rstd=false/true | | RMS / ACLNN | 8/8 PASS | 显式传入 roundMode="rint" | | RMS / kernel | 8/8 PASS | 8 条均 BINARY_MATCH,内存检查 8/8 PASS | | RMS / GEIR 静态图 | 8/8 PASS | 有效输出精度比对通过 | - 上表合计 126 次合法用例设备执行。Add 覆盖 rank=1/2/7、FP16/BF16 输入、x3 缺省/存在、output_rstd=false/true、FP8/FP4 输出等代表组合;RMS 覆盖 FP16/BF16 × beta 缺省/存在 × output_rstd=false/true。这不是所有参数的全笛卡尔积测试。 - 量化使用 TTK requant 比较口径;未修改 golden 数学或临时放宽精度阈值。output_rstd=false 时,无效 rstd 数据不参与精度比较。 修复前后对照与非法输入检查: | 检查项 | master 基线 | 修复版 | | --- | --- | --- | | GEIR 固定输入对照 6 条 | output_rstd=true 的 3 条通过;false 的 3 条因 rstd=DT_UNDEFINED 选型失败 | 6/6 PASS | | kernel 同一固定输入 28 条 | 28/28 PASS | 28/28 PASS | | ACLNN V1/V2 同一固定输入 42 条 | 42/42 PASS | 42/42 PASS | | GEIR rank=0/8 × x3 缺省/存在,4 条 | rank=0 越过 InferShape 后因 mxscale 形状错误失败;rank=8 到 tiling 才拒绝 | 4 条均由 InferShape 明确拒绝 rank 不在 [1,7] | - GEIR 的 6 条对照使用显式 manual_input_binaries,前后 25 份实际输入文件的 SHA-256 与准备数据一致;不将仅固定 seed 的 28 条普通 GEIR 回归描述为固定输入对照。 - kernel 的 28 条对照中,binary 名称、tiling key、block dim、tiling data、workspace 在两版间逐条一致。 - 另测 ACLNN V1/V2 非法 rank 6 条,均由产品的 1D~7D 校验拒绝;kernel rank=8 的 2 条也被拒绝。kernel rank=0 的 2 条受 TTK 标量规格化影响,在输出形状检查失败,不作为 rank=0 InferShape 校验的直接证据。负向用例单独按实际报错原因验收,不计入精度 PASS。 - RMS ACLNN 的真实 roundMode=nullptr 已验证被参数校验拒绝,显式 "rint" 通过。 - 初始 Add ACLNN 控制用例失败已定位为本地 vendor host 与旧 built-in binary 混用;补齐本地部署路径后重新测试,最终以表中 42/42 为准。两个算子完整部署后,又执行 Add V1/V2 控制用例 2/2 通过。相关部署修正未加入产品源码或 PR。 - 新增 Host UT 3/3 通过;目标 Host UT 程序 49/49 通过。本地 CI scripts/ci/local_build.sh -u -s -j8 -f <变更文件清单> 退出码 0,覆盖适用的 UT、打包和 Ascend 950 编译检查。上述 UT/CI 对应同一修复提交,后续仅新增本地测试资产,没有再次修改产品代码。 - 本次为功能、精度、边界及 kernel 内存检查回归,未进行性能压测或 A2/A3 上板验证;已验证范围内未发现新增回归,不宣称零风险。 ## 文档更新 更新 norm/rms_norm_dynamic_mx_quant/docs/aclnnRmsNormDynamicMxQuant.md 的调用示例,定义 char roundMode[] = "rint" 并传入第一段接口。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10789 | 4 天前 | |
fix(norm): 修复 AddRmsNormDynamicQuant V1/V2 的 rank 校验 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10788 merge fix/add-rms-norm-dynamic-quant-rank0 into master fix(norm): 修复 AddRmsNormDynamicQuant V1/V2 的 rank 校验 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 aclnnAddRmsNormDynamicQuant V1/V2 在读取 Tensor 最后一维前缺少 rank 校验的问题。公开接口文档已经约束输入 x1/x2 和活跃量化输出为 2~8 维,本次把该约束前移到 ACLNN 参数检查阶段,避免 rank-0 Tensor 产生的非法尾轴值继续进入 gamma shape 判断或 INT4 打包检查。 本 PR 只修改 ACLNN 参数检查和对应 OpAPI UT,不修改 kernel、tiling、dtype 组合、数值计算或公开接口契约,也不包含 ST 文件。 ### 问题现象与修复后行为 在 Ascend 950 上,使用未修改的 master、固定输入和 TTK ACLNN 模式复现了以下路径: | 场景 | 修复前 | 修复后 | | --- | --- | --- | | V1:x1/x2 为 rank 0 | 在 rank 校验前读取 x1 尾轴,随后误报 gamma shape 不匹配,返回 561002,诊断没有指向真正的 rank 问题 | 在任何尾轴读取前拒绝,明确提示 x1 rank 应为 2~8,返回 561002 | | V2:x1/x2 为 rank 0,量化输出使用 INT32 打包表示 | INT4 兼容性检查收到值为 INT64_MIN 的 x1 尾轴,返回 161002 | 在 INT4 兼容性检查前拒绝,明确提示 x1 rank 应为 2~8,返回 561002 | | V2:x1/x2=(2,8),活跃 INT32 y1Out 为 rank 0 | 输出尾轴为 INT64_MIN,进入 outLastDim * 8 比较表达式 | 在输出尾轴读取和乘法前拒绝,明确提示活跃 y1Out rank 应为 2~8,返回 561002 | 当前测试使用的 CANN 9.2.0 中,Shape::GetDim(size_t) 对该越界索引返回 INT64_MIN,因此本轮没有观察到宿主崩溃。基线日志确认该哨兵值进入后续业务检查;其中 INT64_MIN * 8 超出 int64_t 表示范围,存在 C++ 有符号整数溢出的未定义行为。本次修复不依赖框架的哨兵值兜底,而是在危险读取和运算前拒绝非法 rank。 ### 逐文件修改说明 以下文件均位于 norm/add_rms_norm_dynamic_quant/: | 文件 | 具体修改 | 修改目的和行为边界 | | --- | --- | --- | | op_host/op_api/aclnn_add_rms_norm_dynamic_quant.cpp | 新增 MIN_X_DIM_NUM=2、MAX_X_DIM_NUM=8;在 V1 CheckShapeValid 中,先确认 x1/x2 shape 相同,再检查 x1 rank 是否在 2~8 范围,最后才读取 x1 尾轴与 gamma 比较。非法 rank 通过现有 CheckParams 映射为 ACLNN_ERR_INNER_TILING_ERROR(561002)。 | 修复 V1 在 rank 为 0 时执行 GetDim(x1DimNum - 1) 的错误顺序,使首条诊断直接指向 rank。由于此前已确认 x1/x2 shape 完全一致,校验 x1 rank 同时覆盖 x2,无需重复检查。合法 2~8 维输入继续沿用原路径。 | | op_host/op_api/aclnn_add_rms_norm_dynamic_quant_v2.cpp | 新增同一组 rank 上下限常量和 CheckDimNumValid。入口完成必选指针、dtype、outputMask 校验并计算 processOut1/processOut2 后,检查 x1 以及当前活跃的 y1Out/y2Out rank;该检查位于空 Tensor 快速返回、Contiguous、shape 尾轴读取和 CheckInt4Compatibility 之前。 | 同时阻断 V2 的 rank-0 输入尾轴读取和活跃 INT32 输出的 outLastDim * 8 风险。输出校验严格受 processOut1/processOut2 控制,只限制真正参与计算的输出;非活跃输出仍允许使用既有 shape [1] 占位 Tensor,不改变 outputMask 语义。 | | tests/ut/op_host/op_api/test_aclnn_add_rms_norm_dynamic_quant.cpp | 引入 opdev/platform.h,新增 ascend950_rank_zero_x_rejected 和 ascend950_rank_one_x_rejected:显式设置 Ascend 950,分别构造 rank-0 与 rank-1 x1/x2,断言 GetWorkspaceSize 返回 561002;同时将该历史 UT 文件的许可证头统一为仓库 CANN 2.0 模板。 | 为 V1 建立直接回归保护,保证 rank-0/rank-1 输入在 ACLNN L2 被稳定拒绝。显式设置 SoC 是为了确保命中本次复现的 950 路径;许可证头调整仅用于满足 OAT 合规门禁,不改变测试逻辑。 | | tests/ut/op_host/op_api/test_aclnn_add_rms_norm_dynamic_quant_v2.cpp | 新增 ascend950_rank_zero_x_rejected,覆盖 rank-0 x1/x2;新增 ascend950_rank_zero_active_int32_output_rejected,覆盖合法 x1/x2=(2,8) 配合 rank-0 活跃 INT32 y1Out。两条用例均断言 GetWorkspaceSize 返回 561002。 | 第一条锁定输入 rank 检查,第二条专门锁定 INT4 打包输出读取尾轴前的保护,防止后续重构再次让 INT64_MIN 或有符号乘法溢出进入兼容性判断。现有 V2 UT 继续覆盖非活跃输出必选指针等原有契约。 | ### 产品影响和范围 问题在 Ascend 950 上可达;修改位于各产品共用 ACLNN 入口,因此其他产品的非法 rank 也会被更早拒绝。2~8 维是现有公开接口约束,本次没有收缩合法输入范围。原有 910B OpAPI UT 全部通过;本轮没有进行 A2/A3 上板测试,因此不宣称全产品、全 shape 零风险。 RmsNormDynamicQuant 在本次修复基线中没有 Ascend 950 AddConfig 和对应产物,TTK 探测在平台配置阶段拒绝,因此不属于本轮 950 可达修复范围。 ## 关联的Issue 暂无单独关联 Issue。 ## 测试 代码基线:0026707d7ecb24d258e030d831c8121ac2d055bd。测试使用工作目录内的 CANN 9.2.0 和 ops-test-kit(eaa06de9ea65c5ffd0de5befd9e27483becc8976),设备为 Ascend950PR_9579。所有构建并发不超过 -j8,所有 TTK 执行均显式使用 --pc=1。 - Ascend 950 定向编译和部署成功,V1/V2 的 host、op_api 和 950 算子产物均成功生成并部署。 - OpAPI UT:30/30 通过,其中 V1 8 条、V2 22 条;包含本 PR 新增的 4 条负向用例以及已有 910B/950 用例。 - V1 UT 反向验证:临时将最小 rank 校验退回 1,新补的 rank-1 用例实际返回 0、按预期单独失败;恢复修复后该用例通过,确认它能锁住本次改动而非复用其他错误路径。 - 修复前后定向对照:3 个负向场景均回放同一份落盘输入。修复后都在新增 rank 检查处返回 561002,未再进入相关尾轴读取或 INT4 乘法。 - 初始 TTK 正向回归:10/10 PASS,覆盖 V1/V2、FP16/BF16 输入、单路/双路量化、ND/NCHW,以及 V2 outputMask 的双路、两种单路和 nullptr 默认模式;非活跃输出 shape [1] 占位场景通过。 - 补充 ACLNN 正向:66/66 通过,其中 V1 23 条、V2 43 条;58 条比较全部有效输出,8 条空 Tensor 场景验证调用成功。 - 补充 ACLNN 负向:16/16 按预期拒绝;逐进程核对首条字段/rank 诊断、561002 返回行为,并确认没有 INT64_MIN 泄漏到后续业务检查。 - 补充原生 kernel:26/26 输出比较和 TTK 内存边界检查通过,全部为 BINARY_MATCH。 - 补充 GEIR:26/26 静态图在线编译、执行和全部有效输出比较通过(ge.jit_compile=1)。 - git diff --check、clang-format、提交前检查和 OAT 合规扫描通过;OAT 扫描范围为本 PR 的 4 个变更文件。 补充测试资产共 108 条独立 CSV 用例,按通路执行 134 项(26 条原生用例分别执行 kernel 和 GEIR,不重复累计补跑),完整性核对结果为 COMPLETE_AUDIT_PASS。kernel/GEIR 不经过本次修改的 ACLNN L2,其结果用于独立确认底层和图路径没有关联回归,不能替代 ACLNN rank 校验测试。 说明:TTK 当前把“接口按预期返回参数错误”的负向场景记为 FAIL,本次仅在返回码、首条诊断、PID 和进程稳定性全部符合预设 oracle 时判为预期拒绝;没有把任意 FAIL 当作通过。未使用 sanitizer 直接验证溢出,溢出判断来自基线日志中的实际操作数与源码表达式。 ## 文档更新 公开 ACLNN 文档已经规定输入和活跃输出为 2~8 维,本 PR 无需修改接口契约。问题根因、逐文件改动、修复前后行为、产品影响及测试边界已在本 PR 描述中补充。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10788 | 4 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 9 天前 | |
fix(norm): align RMS norm quant validation and metadata Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10660 merge fix/issues-5438-5625-rmsnorm-quant-consistency into master fix(norm): align RMS norm quant validation and metadata Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 本 PR 修复 RMSNormQuant 相关的元数据一致性问题,并整理 PR 10645 合入后的必选参数校验实现。 1. AddRmsNormQuant 的 Ascend 950/RegBase Tiling 在未获取到 epsilon 属性时使用 1e-5 作为兜底值,与算子 IR 及 README 声明的默认值 1e-6 不一致。本次将 arch35 兜底值统一为 1e-6F,并补充 Host UT 校验序列化到 TilingData 的实际值。 2. RmsNormQuantV2 的算子定义已注册 dst_type 属性,但 README 缺少对应说明。本次补充属性语义、可选值、数据类型及默认值。 3. 最新 master 已合入 PR 10645,其中 RmsNormDynamicMxQuant 与 AddRmsNormDynamicMxQuant 共用实现分别使用独立语句校验 roundMode。本次将 roundMode 纳入各自的 CheckNotNull,并使用兼容仓内 op_api stub 的 CHECK_RET(roundMode != nullptr, false) 完成判空,统一必选参数校验逻辑。roundMode 仍在空 Tensor 快速返回前校验,nullptr 仍返回 ACLNN_ERR_PARAM_NULLPTR,不改变支持范围、计算路径或数值结果。 ### 文件级修改 - norm/add_rms_norm_quant/op_host/add_rms_norm_quant_tiling_arch35.cpp:将 950 默认 epsilon 从 1e-5 修正为 1e-6F。 - norm/add_rms_norm_quant/tests/ut/op_host/test_add_rms_norm_quant_tiling.cpp:补充默认 epsilon 的 TilingData 序列化断言。 - norm/rms_norm_quant_v2/README.md:补充 dst_type 属性说明。 - norm/add_rms_norm_dynamic_mx_quant/op_host/op_api/aclnn_add_rms_norm_dynamic_mx_quant.cpp:将 roundMode 合并到统一的 CheckNotNull。 - norm/rms_norm_dynamic_mx_quant/op_host/op_api/aclnn_rms_norm_dynamic_mx_quant.cpp:将 roundMode 合并到统一的 CheckNotNull。 epsilon 生产代码仅修改 arch35 Tiling,不影响 A2/A3 路径。两处 Dynamic MX Quant 修改仅整理判空结构,不改变原有接口行为。 ## 关联的Issue Fixes #5438 Fixes #5625 关联 #5934(PR 10645 后续实现整理) ## 测试 - [x] 最新 master 上执行 AddRmsNormQuant Ascend 950 Host UT:38/38 通过。 - [x] 修复前:37/38 通过;新增断言稳定复现 epsilon 实际为 1e-5。 - [x] 修复后:38/38 通过,epsilon 缺省值序列化结果为 1e-6。 - [x] 执行 RmsNormDynamicMxQuant、AddRmsNormDynamicMxQuant Ascend 950 OpAPI 编译与 UT:42/42 通过,包含 roundMode=nullptr 回归用例。\n- [x] 使用 -iquote 强制仓内 common/stub/op_api 优先进行干净构建,确认两个源码实际依赖仓内 stub,42/42 通过。\n- [x] 最小隔离编译验证:旧 OP_CHECK_NULL 写法稳定复现 IsNullptr(const char*) 签名错误,修复后编译通过。 - [x] pre-commit:trailing-whitespace、end-of-file、clang-format、codespell、OAT 等检查全部通过。 - [x] OpDef/README 定向一致性检查通过。 所有构建命令均使用 -j8。 ## 文档更新 更新 norm/rms_norm_quant_v2/README.md,补充 dst_type 属性说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10660 | 8 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 9 天前 | |
【mc62】tiling侧workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10878 merge nn_wo into master 【mc62】tiling侧workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6135 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10878 | 4 天前 | |
fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !9459 merge master into master fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 BatchNorm 系列算子,主要包含: - 移除 BatchNorm3DGrad / BatchNormGradExt2 的 BFLOAT16(bfloat16)数据类型支持:def.cpp 中 y_backprop/x/x_backprop 仅保留 FLOAT16/FLOAT32,proto.h 同步更新,并删除含 bfloat16 的预编译 binary 配置(batch_norm3_d_grad_binary.json / batch_norm_grad_ext2_binary.json)。 - 三个 BatchNorm 算子(BatchNorm3D/BatchNorm3DGrad/BatchNormGradExt2)新增 Atlas 200I/500 A2 推理产品支持(README 产品支持表由 × 改为 √)。 - 新增图模式调用样例:test_geir_batch_norm3d_grad.cpp、test_geir_batch_norm_grad_ext2.cpp。 - BNTrainingReduceGrad 新增 TensorFlow framework 插件(framework/bn_training_reduce_grad_tf_plugin.cpp)。 - 同步更新 tiling、infershape、golden.py 及相应单测。 ## 关联的Issue - #5355 ## 测试 - 更新 infershape 单测:test_batch_norm3d_infershape.cpp、test_batch_norm3_d_grad_infershape.cpp、test_batch_norm_grad_ext2_infershape.cpp - 更新 tiling 单测:test_bn_training_reduce_grad_tiling.cpp - 更新 golden 数据:golden.py ## 文档更新 - 更新 batch_norm3_d/batch_norm3_d_grad/batch_norm_grad_ext2 的 README(Atlas 200I/500 A2 支持、调用样例链接) ## 类型标签 - [x] Bug修复 - [x] 新特性 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9459 | 26 天前 | |
fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !9459 merge master into master fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 BatchNorm 系列算子,主要包含: - 移除 BatchNorm3DGrad / BatchNormGradExt2 的 BFLOAT16(bfloat16)数据类型支持:def.cpp 中 y_backprop/x/x_backprop 仅保留 FLOAT16/FLOAT32,proto.h 同步更新,并删除含 bfloat16 的预编译 binary 配置(batch_norm3_d_grad_binary.json / batch_norm_grad_ext2_binary.json)。 - 三个 BatchNorm 算子(BatchNorm3D/BatchNorm3DGrad/BatchNormGradExt2)新增 Atlas 200I/500 A2 推理产品支持(README 产品支持表由 × 改为 √)。 - 新增图模式调用样例:test_geir_batch_norm3d_grad.cpp、test_geir_batch_norm_grad_ext2.cpp。 - BNTrainingReduceGrad 新增 TensorFlow framework 插件(framework/bn_training_reduce_grad_tf_plugin.cpp)。 - 同步更新 tiling、infershape、golden.py 及相应单测。 ## 关联的Issue - #5355 ## 测试 - 更新 infershape 单测:test_batch_norm3d_infershape.cpp、test_batch_norm3_d_grad_infershape.cpp、test_batch_norm_grad_ext2_infershape.cpp - 更新 tiling 单测:test_bn_training_reduce_grad_tiling.cpp - 更新 golden 数据:golden.py ## 文档更新 - 更新 batch_norm3_d/batch_norm3_d_grad/batch_norm_grad_ext2 的 README(Atlas 200I/500 A2 支持、调用样例链接) ## 类型标签 - [x] Bug修复 - [x] 新特性 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9459 | 26 天前 | |
[cleancode] norm类算子C++语言规则告警整改 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> # message auto-generated for no-merge-commit merge: !10422 merge fix/cleancode-norm-v3 into master [cleancode] norm类算子C++语言规则告警整改 Created-by: runqi_zhang Commit-by: runqi_zhang Merged-by: cann-robot Description: ## 描述 norm类算子出现C++语言规则告警,对相关代码进行整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10422 | 11 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 9 天前 | |
fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !9459 merge master into master fix: 移除 BatchNorm3DGrad/BatchNormGradExt2 的 BFLOAT16 支持,BatchNorm 系列新增 Atlas 200I/500 A2 支持 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 BatchNorm 系列算子,主要包含: - 移除 BatchNorm3DGrad / BatchNormGradExt2 的 BFLOAT16(bfloat16)数据类型支持:def.cpp 中 y_backprop/x/x_backprop 仅保留 FLOAT16/FLOAT32,proto.h 同步更新,并删除含 bfloat16 的预编译 binary 配置(batch_norm3_d_grad_binary.json / batch_norm_grad_ext2_binary.json)。 - 三个 BatchNorm 算子(BatchNorm3D/BatchNorm3DGrad/BatchNormGradExt2)新增 Atlas 200I/500 A2 推理产品支持(README 产品支持表由 × 改为 √)。 - 新增图模式调用样例:test_geir_batch_norm3d_grad.cpp、test_geir_batch_norm_grad_ext2.cpp。 - BNTrainingReduceGrad 新增 TensorFlow framework 插件(framework/bn_training_reduce_grad_tf_plugin.cpp)。 - 同步更新 tiling、infershape、golden.py 及相应单测。 ## 关联的Issue - #5355 ## 测试 - 更新 infershape 单测:test_batch_norm3d_infershape.cpp、test_batch_norm3_d_grad_infershape.cpp、test_batch_norm_grad_ext2_infershape.cpp - 更新 tiling 单测:test_bn_training_reduce_grad_tiling.cpp - 更新 golden 数据:golden.py ## 文档更新 - 更新 batch_norm3_d/batch_norm3_d_grad/batch_norm_grad_ext2 的 README(Atlas 200I/500 A2 支持、调用样例链接) ## 类型标签 - [x] Bug修复 - [x] 新特性 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9459 | 26 天前 | |
[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 | 5 天前 | |
【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10415 merge nn_work into master 【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5979 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10415 | 8 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
batch_norm类部分算子检视问题修复 Co-authored-by: LuckySun<sunwenlong8@huawei.com> # message auto-generated for no-merge-commit merge: !9620 merge check_fix into master batch_norm类部分算子检视问题修复 Created-by: LuckySun Commit-by: LuckySun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复深度检视后发现的问题,包括文档的产品区分,输入的校验,泛化发现的精度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5223 https://gitcode.com/cann/ops-nn/issues/5004 https://gitcode.com/cann/ops-nn/issues/5001 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文档的描述 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9620 | 25 天前 | |
refactor: align operator docs and Ascend C APIs Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !9366 merge docs/bn-inference-readme-compliance into master refactor: align operator docs and Ascend C APIs Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 - 规范BNInference README的多产品差异说明,并迁移arch35非对齐搬运接口,保持REG_OP、ABI、数学语义和tiling方案不变。 - 带入PR #9368的InplaceAdd README产品能力描述整改,明确各产品的数据类型、动态shape、索引与空Tensor约束。 - 带入PR #9364的BN3DTrainingReduce Reg搬运接口迁移,将旧 DataCopy按方向替换为LoadAlign/StoreAlign。 ## 关联的Issue 关联Issue #5259 https://gitcode.com/cann/ops-nn/issues/5259 ## 测试 - pre-commit:trim、EOF、merge-conflict、private-key、clang-format、codespell、OAT均通过。 - BNInference使用工作目录私有CANN 9.2.0分别编译修改前后源码;55/55个kernel .o及55/55个JSON均字节级一致。 - BN3DTrainingReduce接口迁移已在PR #9364验证修改前后二进制一致。 - InplaceAdd仅修改README,不影响执行代码。 - #9368与#9364带入后的文件blob与对应PR head逐文件一致,因此未重复运行本地CI。 ## 文档更新 - 更新norm/bn_inference/README.md。 - 更新index/inplace_add/README.md。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:Ascend C API重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9366 | 29 天前 | |
test(golden): ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp算子补充三方通路golden Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !10920 merge master into master test(golden): ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp算子补充三方通路golden Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp算子补充三方通路golden ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST 通路测试均PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10920 | 5 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
fix(bn_inference): 修复 CANN 9.0.0 编译失败 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !9813 merge fix/bn-inference-cann900-compile into master fix(bn_inference): 修复 CANN 9.0.0 编译失败 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 BNInference 在 CANN 9.0.0 Ascend 950 动态 kernel 编译阶段找不到 platform_util.h 的问题。将 kernel 公共头文件引用调整为算子包公共源码目录使用的相对路径,不改变算子接口、REG_OP、tiling 或计算语义。 ## 关联的Issue #5534 ## 测试 - CANN 9.0.0 独立环境:bash build.sh --pkg --ops=bn_inference --soc=ascend950 --cann_3rd_lib_path=<third_party> --ccache=off -j8 - 修改前:动态 kernel PRECOMPILE 阶段稳定复现头文件缺失。 - 修改后:55 个 BNInference 动态 kernel 全部编译完成,整包生成成功。 - 本地定向 CI:仅检查 BNInference 影响范围;Ascend 950 package/opkernel 与 Ascend 910B package/opkernel 均通过。 - 提交钩子:通过。 - 远程 CI:已通过 compile 评论触发。 ## 文档更新 无文档变更。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9813 | 23 天前 | |
docs(bn_training_reduce,sigmoid_focal_loss_grad): 修正产品支持矩阵并补充动态Shape/Rank说明及样例链接 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !9790 merge update_bn_training_reduce_doc into master docs(bn_training_reduce,sigmoid_focal_loss_grad): 修正产品支持矩阵并补充动态Shape/Rank说明及样例链接 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 修正 norm/bn_training_reduce 算子文档(修复 #5520),并补充 loss/sigmoid_focal_loss_grad README 样例代码链接。 **bn_training_reduce 文档修正:** - 修正 README 产品支持矩阵:Atlas 200I/500 A2 推理产品、Atlas 推理系列产品、Atlas 训练系列产品实际均支持,由 × 改为 √ - 补充 README 公式说明:公式以 4 维 NCHW 为例,其他支持的 Rank 和数据格式均保留 C 轴并归约其余所有轴,NCDHW 场景还包括 D 轴 - 补充 Ascend 950 图模式动态 Shape(-1 未知维)和动态 Rank(-2 未知秩)支持说明 - 更新 proto.h 注释:x 输入支持 NCHW rank 2-4、NHWC rank 4、NCDHW rank 5;sum/square_sum 归约除 C 轴外所有轴、每个 channel 输出一个值 **sigmoid_focal_loss_grad 文档修正:** - README 调用说明中 GE 图模式样例代码由占位符 - 更新为实际链接 examples/arch35/test_geir_sigmoid_focal_loss_grad.cpp ## 关联的Issue #5520 ## 测试 纯文档改动,不涉及代码逻辑变更,无需测试。 ## 文档更新 - norm/bn_training_reduce/README.md:产品支持矩阵、公式说明、动态 Shape/Rank 支持说明 - norm/bn_training_reduce/op_graph/bn_training_reduce_proto.h:输入输出描述注释 - loss/sigmoid_focal_loss_grad/README.md:GE 图模式样例代码链接 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9790 | 6 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !10809 merge bn_training_update_retest into master fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 修复 bn_training_update_grad(arch35/Ascend 950)ND 布局、R==1、大 N 场景下的归约竞态缺陷;同步整改 bn_training_update_grad / bn_training_update_v2 / bn_training_update_v3 三个算子的 golden.py bf16 取数与 README 文档。 ### 改动原因 arch35 kernel 的标量尾处理路径在覆写尾缓冲 tailG/tailP(expMean_/expRstd_)前,缺少等待上一轮向量 ReduceSum 读完的 V_S 同步。标量写可与向量读并发提交,导致上一块部分和混入当前块 lane:实测 N≥2·VL 的两轮形态随机丢/重计 lane,误差随运行时刻变化(N<2·VL 单轮不触发)。 ### 改动方法 1. **kernel 竞态修复**(norm/bn_training_update_grad/op_kernel/arch35/bn_training_update_grad.h,+16 行):在 3 处标量覆写 tailG/tailP 之前插入 SetFlag/WaitFlag<HardEvent::V_S>—— - ProcessScalarTinyR 路径标量循环前(与既有 MTE2_S 同步并列); - ND R==1 大 N 按 VL_FP32 分批归约的每轮标量覆写前; - 按 nRowsCap 分批、末批 rem>0 时尾缓冲多轮复用的标量覆写前。 2. **golden.py bf16 取数修复**(3 个算子 tests/assets/golden.py):_as_tensor 对 ml_dtypes bfloat16 的 numpy 输入先 .view(np.uint16) 再 .view(torch.bfloat16),实现 numpy/ml_dtypes bf16 → torch.bfloat16 的按位无损转换(ml_dtypes 缺失时保持原行为)。 3. **README 整改**: - bn_training_update_grad:约束说明中其余产品段落格式修订(去除数据类型/产品名间多余空格)。 - bn_training_update_v2:产品支持注释文字格式修订;删除调用方式表中 tf 图解析一行(bn_training_update_v2_tf_plugin.cpp 映射说明)。 - bn_training_update_v3:产品支持注释文字格式修订。 ## 关联的Issue - #6021 ## 测试 - 复现形态:ND、R==1、N≥2·VL_FP32 多轮归约场景,修复前部分和随机丢/重计 lane、误差随运行时刻变化;插入 V_S 同步后标量写与向量读严格序贯。 - golden.py 变更仅影响测试标杆取数路径(bf16 按位无损),不影响算子 kernel。 ## 文档更新 - norm/bn_training_update_grad/README.md - norm/bn_training_update_v2/README.md(含删除 tf 图解析调用方式行) - norm/bn_training_update_v3/README.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10809 | 6 天前 | |
fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !10809 merge bn_training_update_retest into master fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 修复 bn_training_update_grad(arch35/Ascend 950)ND 布局、R==1、大 N 场景下的归约竞态缺陷;同步整改 bn_training_update_grad / bn_training_update_v2 / bn_training_update_v3 三个算子的 golden.py bf16 取数与 README 文档。 ### 改动原因 arch35 kernel 的标量尾处理路径在覆写尾缓冲 tailG/tailP(expMean_/expRstd_)前,缺少等待上一轮向量 ReduceSum 读完的 V_S 同步。标量写可与向量读并发提交,导致上一块部分和混入当前块 lane:实测 N≥2·VL 的两轮形态随机丢/重计 lane,误差随运行时刻变化(N<2·VL 单轮不触发)。 ### 改动方法 1. **kernel 竞态修复**(norm/bn_training_update_grad/op_kernel/arch35/bn_training_update_grad.h,+16 行):在 3 处标量覆写 tailG/tailP 之前插入 SetFlag/WaitFlag<HardEvent::V_S>—— - ProcessScalarTinyR 路径标量循环前(与既有 MTE2_S 同步并列); - ND R==1 大 N 按 VL_FP32 分批归约的每轮标量覆写前; - 按 nRowsCap 分批、末批 rem>0 时尾缓冲多轮复用的标量覆写前。 2. **golden.py bf16 取数修复**(3 个算子 tests/assets/golden.py):_as_tensor 对 ml_dtypes bfloat16 的 numpy 输入先 .view(np.uint16) 再 .view(torch.bfloat16),实现 numpy/ml_dtypes bf16 → torch.bfloat16 的按位无损转换(ml_dtypes 缺失时保持原行为)。 3. **README 整改**: - bn_training_update_grad:约束说明中其余产品段落格式修订(去除数据类型/产品名间多余空格)。 - bn_training_update_v2:产品支持注释文字格式修订;删除调用方式表中 tf 图解析一行(bn_training_update_v2_tf_plugin.cpp 映射说明)。 - bn_training_update_v3:产品支持注释文字格式修订。 ## 关联的Issue - #6021 ## 测试 - 复现形态:ND、R==1、N≥2·VL_FP32 多轮归约场景,修复前部分和随机丢/重计 lane、误差随运行时刻变化;插入 V_S 同步后标量写与向量读严格序贯。 - golden.py 变更仅影响测试标杆取数路径(bf16 按位无损),不影响算子 kernel。 ## 文档更新 - norm/bn_training_update_grad/README.md - norm/bn_training_update_v2/README.md(含删除 tf 图解析调用方式行) - norm/bn_training_update_v3/README.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10809 | 6 天前 | |
fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !10809 merge bn_training_update_retest into master fix: bn_training_update_grad 修复 ND R==1 大 N 场景标量尾处理与向量归约的 V→S 竞态 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 修复 bn_training_update_grad(arch35/Ascend 950)ND 布局、R==1、大 N 场景下的归约竞态缺陷;同步整改 bn_training_update_grad / bn_training_update_v2 / bn_training_update_v3 三个算子的 golden.py bf16 取数与 README 文档。 ### 改动原因 arch35 kernel 的标量尾处理路径在覆写尾缓冲 tailG/tailP(expMean_/expRstd_)前,缺少等待上一轮向量 ReduceSum 读完的 V_S 同步。标量写可与向量读并发提交,导致上一块部分和混入当前块 lane:实测 N≥2·VL 的两轮形态随机丢/重计 lane,误差随运行时刻变化(N<2·VL 单轮不触发)。 ### 改动方法 1. **kernel 竞态修复**(norm/bn_training_update_grad/op_kernel/arch35/bn_training_update_grad.h,+16 行):在 3 处标量覆写 tailG/tailP 之前插入 SetFlag/WaitFlag<HardEvent::V_S>—— - ProcessScalarTinyR 路径标量循环前(与既有 MTE2_S 同步并列); - ND R==1 大 N 按 VL_FP32 分批归约的每轮标量覆写前; - 按 nRowsCap 分批、末批 rem>0 时尾缓冲多轮复用的标量覆写前。 2. **golden.py bf16 取数修复**(3 个算子 tests/assets/golden.py):_as_tensor 对 ml_dtypes bfloat16 的 numpy 输入先 .view(np.uint16) 再 .view(torch.bfloat16),实现 numpy/ml_dtypes bf16 → torch.bfloat16 的按位无损转换(ml_dtypes 缺失时保持原行为)。 3. **README 整改**: - bn_training_update_grad:约束说明中其余产品段落格式修订(去除数据类型/产品名间多余空格)。 - bn_training_update_v2:产品支持注释文字格式修订;删除调用方式表中 tf 图解析一行(bn_training_update_v2_tf_plugin.cpp 映射说明)。 - bn_training_update_v3:产品支持注释文字格式修订。 ## 关联的Issue - #6021 ## 测试 - 复现形态:ND、R==1、N≥2·VL_FP32 多轮归约场景,修复前部分和随机丢/重计 lane、误差随运行时刻变化;插入 V_S 同步后标量写与向量读严格序贯。 - golden.py 变更仅影响测试标杆取数路径(bf16 按位无损),不影响算子 kernel。 ## 文档更新 - norm/bn_training_update_grad/README.md - norm/bn_training_update_v2/README.md(含删除 tf 图解析调用方式行) - norm/bn_training_update_v3/README.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10809 | 6 天前 | |
Centralization 算子下一代支持 Co-authored-by: 岩80<1611150171@qq.com> # message auto-generated for no-merge-commit merge: !9814 merge master into master Centralization 算子下一代支持 Created-by: 2403_87792773 Commit-by: 岩80 Merged-by: cann-robot Description: ## 描述 新增 Centralization 算子,在指定轴上计算输入均值,并从输入对应元素中逐元素减去,输出 保持与输入相同的 shape 和 dtype。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue#5533 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已完成 Ascend 950PR 环境下的验证: - release binary 泛化验证:1010/1010 PASS; - 本地精度验证:200/200 PASS; - GEIR 通路验证:60/60 PASS; - TensorFlow parser 通路验证:60/60 PASS; - DFX 验证:8/8 PASS; - code-check 和 C/C++ 格式检查已执行; - GPU 性能、三方精度和性能验证按当前任务要求未执行。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 norm/centralization/README.md; - 更新 docs/zh/op_list.md; - 补充算子参数、约束、产品支持范围和调用方式说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9814 | 19 天前 | |
add renorm for A5 ascendc Co-authored-by: liuyun_nj<liuyun90@h-partners.com> # message auto-generated for no-merge-commit merge: !10195 merge master into master add renorm for A5 ascendc Created-by: liuyun_nj Commit-by: liuyun_nj Merged-by: cann-robot Description: ## 描述 renorm算子支持A5 as实现,性能调优 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 泛化验证 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10195 | 16 天前 | |
[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 | 5 天前 | |
[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 | 5 天前 | |
modified md files (DuaQuantizeAddLayerNorm and QuantizeAddLayerNorm) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !10549 merge master into master modified md files (DuaQuantizeAddLayerNorm and QuantizeAddLayerNorm) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 - Updated the calculation formulas of the DuaQuantizeAddLayerNorm operator, and the description of the scale and axis parameters. - Updated the description of the scale parameter of the QuantizeAddLayerNorm operator. ## 关联的Issue [#5856](https://gitcode.com/cann/ops-nn/issues/5856) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 norm/dua_quantize_add_layer_norm/README.md norm/quantize_add_layer_norm/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10549 | 9 天前 | |
fix asan test Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !9033 merge master into master fix asan test Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 修复 ASan(AddressSanitizer)测试中暴露的问题,主要包括:类型不匹配、越界访问、字段缺失及命名不一致。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 详细变更 ### 1. 类型修正(uint32_t/int32_t → int64_t/uint64_t) 使测试中的 CompileInfo 结构体字段类型与实际算子侧定义保持一致,消除 ASan 因类型宽度不匹配报告的问题。 | 文件 | 字段 | 旧类型 | 新类型 | |------|------|--------|--------| | test_add_layer_norm_tiling.cpp | aivCoreNum_, sysWorkspaceSize_, vecRegSize_, blockSize_ | uint32_t | int64_t | | test_embedding_dense_grad_v2_tiling.cpp | totalCoreNum | int32_t | uint64_t | | test_add_rms_norm_cast_tiling.cpp | totalCoreNum | uint32_t | uint64_t | | test_add_rms_norm_quant_tiling.cpp | totalCoreNum | uint32_t | uint64_t | ### 2. 命名规范化:isRegbase → isRegBase 修正大小写不一致,统一为驼峰命名 isRegBase。 - test_embedding_dense_grad_v2_tiling.cpp ### 3. 补充缺失字段 isRegBase 为以下测试的 CompileInfo 结构体补充 isRegBase 字段(默认 false),避免因结构体字段缺失导致的内存读取越界: - test_modulate_tiling.cpp(4 处) - test_multi_scale_deformable_attention_grad_tiling.cpp(1 处) - test_multi_scale_deformable_attn_function_tiling.cpp(9 处) ### 4. 补充缺失字段 blockSize / vlFp32 - test_layer_norm_grad_tiling.cpp: 为 LayerNormGradCompileInfo 补充 blockSize 和 vlFp32(均为 int64_t)字段。 ### 5. 移除硬编码值 - test_add_rms_norm_cast_tiling.cpp: 将 totalCoreNum = 40、totalUbSize = 196608 改为 0,避免与实际平台信息不一致。 - test_add_rms_norm_quant_tiling.cpp: 同上,并调整字段顺序与命名(socVersion → curSocVersion,totalUbSize → maxUbSize)。 ### 6. 越界访问修复 - tests/ut/common/tiling_context_faker.cpp:309: 添加 idx < inputInstanceNumPacked_.size() 边界检查,防止 inputInstanceNumPacked_ 越界访问。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9033 | 23 天前 | |
[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 | 12 天前 | |
feat: 新增 gn_training_update 算子(ascend950 平台 GroupNorm 训练前向更新融合算子) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !10774 merge GNTrainingUpdate into master feat: 新增 gn_training_update 算子(ascend950 平台 GroupNorm 训练前向更新融合算子) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增 GroupNorm 训练前向更新融合算子 gn_training_update(图 IR 类型 GNTrainingUpdate),在 ascend950(arch35)平台使能。算子消费配套算子 GNTrainingReduce 输出的组内 sum / square_sum,现算每组均值与有偏方差,对 x 做归一化与可选仿射,并旁路输出 batch_mean / batch_variance 供反向 GroupNormGrad 复用。 ### 改动原因 GroupNorm 训练场景需要前向 update 融合算子与 GNTrainingReduce 配套使用;此前 ops-nn 中无该算子实现(GNTrainingUpdate 的图 IR proto 原先内嵌在公共头文件 common/inc/op_graph/op_nn_proto_extend.h 中,且无 host/kernel 实现)。 ## 关联的Issue - #6011 ## 测试 - arch35 ST:tests/st/arch35/ttk_kernel_gn_training_update.csv(fp16/fp32,空 tensor、±inf 极值、num_groups=2/32、有/无仿射等场景,golden.py 生成 fp64 标杆) - UT:tests/ut/op_host/arch35/test_gn_training_update_tiling.cpp、tests/ut/op_host/test_gn_training_update_infershape.cpp - 图模式示例:examples/arch35/test_geir_gn_training_update.cpp ## 文档更新 - 新增 norm/gn_training_update/README.md - docs/zh/op_list.md 新增 gn_training_update 条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!10774 | 6 天前 | |
refactor: 迁移NN公共op_api头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10879 merge nn_prefix_common_headers_0920 into master refactor: 迁移NN公共op_api头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本变更属于 NN 公共 op_api 头文件迁移的调用清理阶段: - 将非 experimental 目录中 21 个 op_api/level2_base.h 调用迁移到 op_api/level2_base_nn.h。 - 将非 experimental 目录中 2 个 op_api/level2_base_caculation.h 调用迁移到 op_api/level2_base_caculation_nn.h。 - experimental 目录暂时保留旧转发头:11 处 level2_base.h、3 处 level2_base_caculation.h,避免 CI 将导出同名 ACLNN 接口的实验算子共同链接。 - 保留旧头文件作为兼容转发头;本 MR 不宣称已完成最终包内 basename 去重。 - 不修改 op_api_def_nn.h,不包含功能逻辑变更。 ## 关联的Issue Issue #6008 ## 测试 - git diff --check upstream/master...HEAD:通过。 - pre_commit:全部通过,包括 clang-format、codespell 和 OAT。 - CANN 9.0 容器执行 bash build.sh --opapi -j32:通过,成功生成 libopapi_nn.so。 - 原 experimental CI 同时选择 swish 与 swish_v2 后发生既有同名 ACLNN 符号冲突;本次兼容调整已将两者移出最终 MR diff,等待线上 CI 复验。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10879 | 5 天前 | |
fix uint32 overloop Co-authored-by: liuyun_nj<liuyun90@h-partners.com> # message auto-generated for no-merge-commit merge: !11001 merge master into master fix uint32 overloop Created-by: liuyun_nj Commit-by: liuyun_nj Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11001 | 4 天前 | |
fix: 修复7个算子文档示例代码静态检查问题 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !10472 merge clean_code into master fix: 修复7个算子文档示例代码静态检查问题 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复7个算子文档示例代码静态检查问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了: aclnnHardsigmoid&aclnnInplaceHardsigmoid.md aclnnLogSoftmax.md aclnnSeluBackward.md aclnnSigmoid&aclnnInplaceSigmoid.md(activation) aclnnSigmoid&aclnnInplaceSigmoid.md(experimental) aclnnSwiGluGrad.md aclnnGroupNormSilu.md aclnnGroupNormSiluV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10472 | 9 天前 | |
fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9870 merge fix/ttk-golden-tf-third-party into master fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ## 描述 补齐foreach类、scatter类及lamb类算子的tf等通路三方 ## 关联的Issue NA ## 测试 st ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9870 | 20 天前 | |
fix(group_norm_swish): CastMeanAndRstd 补充 S_V 硬事件同步 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !10683 merge fix/group-norm-swish-sv-sync into master fix(group_norm_swish): CastMeanAndRstd 补充 S_V 硬事件同步 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 变更说明 在 norm/group_norm_swish/op_kernel/arch35/group_norm_swish_base.h 的 CastMeanAndRstd 函数中补充 S_V 硬事件同步: - 新增 SetFlag<HardEvent::S_V> / WaitFlag<HardEvent::S_V> 同步对 - 确保标量侧(Scalar)数据写入与 vector 侧(Vector)读取之间的依赖顺序正确 - 消除潜在的同步竞争风险 关联 issue: https://gitcode.com/cann/ops-nn/issues/5960 ## 测试情况 - 变更仅涉及同步语义,无功能逻辑改动 See merge request: cann/ops-nn!10683 | 8 天前 | |
docs: 修正算子资料和示例问题 Co-authored-by: qiansunchi<qiansunchi@huawei.com> # message auto-generated for no-merge-commit merge: !10316 merge master into master docs: 修正算子资料和示例问题 Created-by: qiansunchi159 Commit-by: qiansunchi Merged-by: cann-robot Description: ## 描述 修改算子的资料和调用示例的问题 ## 关联的Issue 关联Issue [#5837](https://gitcode.com/cann/ops-nn/issues/5837) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10316 | 12 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 9 天前 | |
fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10477 merge fix/four-ops-quality-hardening into master fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 对 INInferV2、InTrainingReduceV2、NormalizeBBox 和 SGD 进行质量加固。当前 PR 实际修改 42 个受控文件,不包含 tests/st/ 目录及本地测试日志。 - **INInferV2**:补强 rank 2~8、shape、dtype、维度乘法溢出及 optional output 校验;使用 GetIrOutputInstanceInfo 处理 IR 输出序号与压实物理序号的映射,并修复 Tiling/Kernel 边界处理;将仅适用于 Ascend 950 的 tiling UT 归入 arch35,避免 A2 构建误收集。 - **InTrainingReduceV2**:统一 legacy V1 common infer 与 runtime2 infer 的 ND shape 推导口径,补强 Tiling/Kernel 的整数范围、地址计算和大 Shape 边界处理。 - **NormalizeBBox**:补强 shape、属性、空 axes、跨 tile 和边界访问校验,并完善 TensorFlow parser 回归。 - **SGD**:补强默认属性及 weight_decay 合法性校验,包含 NaN 拒收回归。 - 更新四个算子的 Kernel/GEIR TestSpec Golden,并分别提供 Torch、TensorFlow 独立参考实现,供 TTK 进行第三方精度比对。 - 四个算子均配置为 ACLNNTYPE aclnn_exclude,不提供 aclnn 单算子接口,也没有 Torch/TorchAir e2e 绑定;本次没有新增或宣称不存在的 aclnn/e2e 通路。真实调用通路为 GE 图模式,NormalizeBBox 另支持 TensorFlow 图导入。 - 补充 Host UT、Graph Infer UT 和 NormalizeBBox TensorFlow Plugin UT;更新四个 README 的接口约束、调用方式及产品差异说明。 ## 关联的Issue 关联 Issue #5872:https://gitcode.com/cann/ops-nn/issues/5872 ## 测试 - 本地定向 CI(提交 4887b775f,工作目录 CANN 9.2.0,构建并发 -j8):pre-commit 与 Markdown 链接检查 PASS。 - Ascend 950:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 144/144。 - Ascend 910B:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 112/112。INInferV2 arch35 tiling UT 未被 A2 收集,通用 infer-shape UT 保持执行。 - 本轮本地 CI 峰值 cgroup 内存约 17.8 GiB,30 GiB 保护未触发。 - 使用工作目录 ops-test-kit 的 add_ops_onto_master 分支验证;小用例 --pc<=2,大 Shape --pc=1。 - **INInferV2**:Torch/TF 独立三方各 100/100 PASS;既有泛化 900/900、rank 6~8 专项 12/12、optional output Kernel 6/6、GEIR 中间空洞 2/2、JIT 4/4、性能 150/150 PASS。 - **InTrainingReduceV2**:泛化 851/851、支持域性能 134/134、修复后 GEIR 100/100、最终 Kernel 小 Shape 2/2、大 Shape 1/1 PASS。原始 Torch/TF cross_check 中 11 项仅触发 RMSE ratio L1,随后按正式 stat_rel_err 标准复核,36/36 用例、72/72 个 NPU 输出 PASS。 - **NormalizeBBox**:Torch/TF 独立三方各 34/34、特殊值/缺省/空轴 15/15、非大 Shape 泛化 332/332、性能 134/134、跨 tile 2/2、JIT 1/1 PASS。 - **SGD**:Torch/TF 独立三方各 50/50、基础与扩展泛化合计 800/800、已完成性能 144/144 PASS;剩余 56 条为待补充的 A100 性能用例,不计作当前功能或 Golden 失败。 - CodeCheck 最终复扫:68 PASS、0 FAIL、4 SUSPICIOUS;4 项均为非阻断性能建议。 - 最终代码检视与设计一致性检查:8/8 PASS。 ## 文档更新 更新四个算子的 README,按仓库规范保留真实接口、约束、调用方式和多产品差异说明,不增加不存在的 aclnn 或 e2e 接口说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试与 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10477 | 9 天前 | |
fix: 完善NN算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10281 merge master into master fix: 完善NN算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 NN 相关算子的 Legacy 下线整改: • 为FusedBiasLeakyRelu、BNTrainingReduce、INTrainingReduceGrad、LpNormUpdate、InplaceApplyAdaMax、InplaceApplyFtrl、InplaceApplyFtrlV2、InplaceApplyProximalAdagrad 等算子补充原型去重宏,避免新旧原型重复注册。 • 将 Softshrink 算子名称统一为 SoftShrink,同步调整原型、OpDef、InferShape、InferDataType、Tiling、Kernel、TilingData 及测试中的注册名称。 • 新增 SoftShrink 开源原型,统一输入输出名称为 input_x、output_y。 • 为 SigmoidFocalLoss 新增开源 InferShape 和 InferDataType 实现。 • 将 LpNormUpdate Level0 op_api 从 canndev 迁移至开源仓,保留 AICore/AICPU 分发逻辑。 • 按仓库 clang-format 规范完成相关文件格式整改。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10281 | 8 天前 | |
fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10477 merge fix/four-ops-quality-hardening into master fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 对 INInferV2、InTrainingReduceV2、NormalizeBBox 和 SGD 进行质量加固。当前 PR 实际修改 42 个受控文件,不包含 tests/st/ 目录及本地测试日志。 - **INInferV2**:补强 rank 2~8、shape、dtype、维度乘法溢出及 optional output 校验;使用 GetIrOutputInstanceInfo 处理 IR 输出序号与压实物理序号的映射,并修复 Tiling/Kernel 边界处理;将仅适用于 Ascend 950 的 tiling UT 归入 arch35,避免 A2 构建误收集。 - **InTrainingReduceV2**:统一 legacy V1 common infer 与 runtime2 infer 的 ND shape 推导口径,补强 Tiling/Kernel 的整数范围、地址计算和大 Shape 边界处理。 - **NormalizeBBox**:补强 shape、属性、空 axes、跨 tile 和边界访问校验,并完善 TensorFlow parser 回归。 - **SGD**:补强默认属性及 weight_decay 合法性校验,包含 NaN 拒收回归。 - 更新四个算子的 Kernel/GEIR TestSpec Golden,并分别提供 Torch、TensorFlow 独立参考实现,供 TTK 进行第三方精度比对。 - 四个算子均配置为 ACLNNTYPE aclnn_exclude,不提供 aclnn 单算子接口,也没有 Torch/TorchAir e2e 绑定;本次没有新增或宣称不存在的 aclnn/e2e 通路。真实调用通路为 GE 图模式,NormalizeBBox 另支持 TensorFlow 图导入。 - 补充 Host UT、Graph Infer UT 和 NormalizeBBox TensorFlow Plugin UT;更新四个 README 的接口约束、调用方式及产品差异说明。 ## 关联的Issue 关联 Issue #5872:https://gitcode.com/cann/ops-nn/issues/5872 ## 测试 - 本地定向 CI(提交 4887b775f,工作目录 CANN 9.2.0,构建并发 -j8):pre-commit 与 Markdown 链接检查 PASS。 - Ascend 950:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 144/144。 - Ascend 910B:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 112/112。INInferV2 arch35 tiling UT 未被 A2 收集,通用 infer-shape UT 保持执行。 - 本轮本地 CI 峰值 cgroup 内存约 17.8 GiB,30 GiB 保护未触发。 - 使用工作目录 ops-test-kit 的 add_ops_onto_master 分支验证;小用例 --pc<=2,大 Shape --pc=1。 - **INInferV2**:Torch/TF 独立三方各 100/100 PASS;既有泛化 900/900、rank 6~8 专项 12/12、optional output Kernel 6/6、GEIR 中间空洞 2/2、JIT 4/4、性能 150/150 PASS。 - **InTrainingReduceV2**:泛化 851/851、支持域性能 134/134、修复后 GEIR 100/100、最终 Kernel 小 Shape 2/2、大 Shape 1/1 PASS。原始 Torch/TF cross_check 中 11 项仅触发 RMSE ratio L1,随后按正式 stat_rel_err 标准复核,36/36 用例、72/72 个 NPU 输出 PASS。 - **NormalizeBBox**:Torch/TF 独立三方各 34/34、特殊值/缺省/空轴 15/15、非大 Shape 泛化 332/332、性能 134/134、跨 tile 2/2、JIT 1/1 PASS。 - **SGD**:Torch/TF 独立三方各 50/50、基础与扩展泛化合计 800/800、已完成性能 144/144 PASS;剩余 56 条为待补充的 A100 性能用例,不计作当前功能或 Golden 失败。 - CodeCheck 最终复扫:68 PASS、0 FAIL、4 SUSPICIOUS;4 项均为非阻断性能建议。 - 最终代码检视与设计一致性检查:8/8 PASS。 ## 文档更新 更新四个算子的 README,按仓库规范保留真实接口、约束、调用方式和多产品差异说明,不增加不存在的 aclnn 或 e2e 接口说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试与 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10477 | 9 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
modify pic name Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10839 merge 0920pic into master modify pic name Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改图片名称为小写+下划线格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6007](https://gitcode.com/cann/ops-nn/issues/6007) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 相关文档已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10839 | 6 天前 | |
docs(inplace_add_rms_norm): 修正入参非连续Tensor支持标注 Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !10689 merge fix/inplace-add-rms-norm-doc-noncontig-input into master docs(inplace_add_rms_norm): 修正入参非连续Tensor支持标注 Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 修正 aclnnInplaceAddRmsNorm 接口文档中入参非连续Tensor支持标注与实现不一致的问题。 算子定义(norm/inplace_add_rms_norm/op_host/inplace_add_rms_norm_def.cpp:27-39)在全部支持平台(ascend910b/ascend910_93、ascend310p/kirin9030/kirinx90、ascend950)的配置中,对 x1Ref、x2Ref、gamma 三个输入均声明了 .AutoContiguous(),框架会对非连续输入自动做连续化处理,实际支持非连续Tensor输入;但接口文档(norm/inplace_add_rms_norm/docs/aclnnInplaceAddRmsNorm.md)将这三个入参的「非连续Tensor」列标注为 ×,误导用户在使用前做不必要的 contiguous 预处理。 本次修改将 x1Ref、x2Ref、gamma 三行的「非连续Tensor」列由 × 改为 √,与算子定义中的 .AutoContiguous() 行为以及同类算子 aclnnAddRmsNorm 文档(全列 √)保持一致。 本次为纯文档修改,不涉及任何代码变更。 ## 关联的Issue 关联 Issue:#5965 Issue 链接:https://gitcode.com/cann/ops-nn/issues/5965 ## 测试 - pre-commit run --files norm/inplace_add_rms_norm/docs/aclnnInplaceAddRmsNorm.md:通过(clang-format、codespell、OAT)。 - Markdown 链接检查(check_md_links.py):文档内 4 条相对链接全部有效。 - 纯文档变更,无需编译与 UT。 ## 文档更新 更新 norm/inplace_add_rms_norm/docs/aclnnInplaceAddRmsNorm.md:x1Ref、x2Ref、gamma 三行「非连续Tensor」列 × → √。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10689 | 8 天前 | |
fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9032 merge fix-proto-comment-typos into master fix(proto): 修复 norm/softmax 算子 proto 注释拼写/语法/描述错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 21 个算子 proto 头文件中 Doxygen 注释的拼写、语法、描述错误与公式括号不匹配问题。所有改动仅涉及注释文本,不改动任何 REG_OP 定义。 ### 改动原因 proto 头文件的 Doxygen 注释存在拼写错误、语法错误(冠词/单复数/主谓一致)、描述误导(输入描述与实际语义不符)以及 rstd 公式多余的右括号等问题,会误导接口使用者。 ### 改动方法 仅修改注释文本,不改动 REG_OP/INPUT/OUTPUT/ATTR/DATATYPE 等代码定义。同时按 pre-commit clang-format 要求对部分文件做格式化。 ### 涉及修复 **拼写错误:** - normlization→normalization、while→will(AddLayerNormQuant) - smooth_scales1/2→smooth_scale1/2(AddRmsNormDynamicQuant,4 处) - listBool→ListBool(AddRmsNormDynamicQuant/V2) - secend→second、opertaion→operation(AddRmsNormQuant) - reseluts→results(BatchNormGrad) - support→supported(BatchNormV3) - dype→type(GroupNormV2,4 处) - Layernorm→LayerNorm、中文或→or、全角,→ASCII(LayerNorm) - \file 文件名错误 nn_norm_ops.h→layer_norm_grad_proto.h(LayerNormGrad) **语法错误(~20 处):** - A optional→An optional(AddLayerNorm/InplaceAddRmsNorm/InstanceNorm) - A ND tensor→An ND tensor(SoftmaxV2/LogSoftmaxGrad/ConfusionSoftmaxGrad) - An required→A required(GroupNormV2) - support→supports(SoftmaxV2/BroadcastGradientArgs/AddRmsNormDynamicMxQuant) - 缺复数 s:input→inputs、output→outputs、group→groups(GroupNormGrad/V2) **描述错误:** - GroupNormGrad:x 输入描述从 the offset 改为 input tensor **公式括号(7 处):** - rstd 公式多余的右括号 ))→)(AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicMxQuant/AddRmsNormDynamicQuant/AddRmsNormQuant/AddRmsNormQuantV2/InplaceAddRmsNorm) ## 关联的Issue - #4989 ## 测试 - 仅注释修改,无代码变更,不影响编译与功能。 - pre-commit 全部 hook 通过(trailing-whitespace/end-of-file-fixer/clang-format/codespell/check-*/detect-private-key);OAT 合规检查 0 issues。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9032 | 9 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
[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 | 5 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
docs: supplement GEIR documentation for layer_norm operators Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10467 merge ln_geir_doc into master docs: supplement GEIR documentation for layer_norm operators Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 5 个 layer_norm 系列算子补充 Ascend IR(GEIR)文档和图模式调用示例,并更新 README 中的图模式调用链接。 ### 改动原因 layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad、layer_norm_grad_v3 算子此前缺少 Ascend IR 文档,README 中图模式调用链接为空或指向算子 IR 原型头文件,无法指导用户通过 Ascend IR 构图方式调用算子。 ### 改动方法 1. **新增 Ascend IR 文档**(docs/ascendirXxx.md,5 篇): - 产品支持情况、功能说明、计算公式 - 参数说明(输入/输出/属性,含数据类型和数据格式) - 约束说明、调用示例(含错误处理宏 CHECK_RET/LOG_PRINT 与 GetGeError 错误信息获取) 2. **GEIR 调用示例**: - 新增 layer_norm_grad、layer_norm_grad_v3、layer_norm_v4 示例 - 重构 layer_norm、layer_norm_v3 示例(统一代码结构,精简冗余) 3. **README 更新**(5 个): - 图模式调用链接从"-"或"算子 IR 原型头文件"更新为指向 Ascend IR 文档和示例代码 - layer_norm_grad:产品支持表更新(Atlas A3/A2 训练/推理系列由 × 改为 √),公式格式清理 涉及文件(15 个,+2961 -567): | 算子 | 文档(新增) | 示例 | README | |------|--------------|------|--------| | layer_norm | ascendirLayerNorm.md(+335) | test_geir_layer_norm.cpp(+203 -277 重构) | +1 -1 | | layer_norm_v3 | ascendirLayerNormV3.md(+335) | test_geir_layer_norm_v3.cpp(+204 -262 重构) | +2 -2 | | layer_norm_v4 | ascendirLayerNormV4.md(+353) | test_geir_layer_norm_v4.cpp(+267 新增) | +2 -2 | | layer_norm_grad | ascendirLayerNormGrad.md(+355) | test_geir_layer_norm_grad.cpp(+262 新增) | +16 -16 | | layer_norm_grad_v3 | ascendirLayerNormGradV3.md(+355) | test_geir_layer_norm_grad_v3.cpp(+264 新增) | +7 -7 | ## 关联的Issue 不涉及 ## 测试 文档和示例代码补充,不涉及算子功能逻辑变更。 ## 文档更新 - 新增 5 篇 Ascend IR 文档(ascendirLayerNorm / ascendirLayerNormV3 / ascendirLayerNormV4 / ascendirLayerNormGrad / ascendirLayerNormGradV3) - 新增 3 个 GEIR 调用示例,重构 2 个示例(layer_norm、layer_norm_v3) - 更新 5 个 README(图模式链接、产品支持表、公式格式) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10467 | 4 天前 | |
docs: supplement GEIR documentation for layer_norm operators Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10467 merge ln_geir_doc into master docs: supplement GEIR documentation for layer_norm operators Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 5 个 layer_norm 系列算子补充 Ascend IR(GEIR)文档和图模式调用示例,并更新 README 中的图模式调用链接。 ### 改动原因 layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad、layer_norm_grad_v3 算子此前缺少 Ascend IR 文档,README 中图模式调用链接为空或指向算子 IR 原型头文件,无法指导用户通过 Ascend IR 构图方式调用算子。 ### 改动方法 1. **新增 Ascend IR 文档**(docs/ascendirXxx.md,5 篇): - 产品支持情况、功能说明、计算公式 - 参数说明(输入/输出/属性,含数据类型和数据格式) - 约束说明、调用示例(含错误处理宏 CHECK_RET/LOG_PRINT 与 GetGeError 错误信息获取) 2. **GEIR 调用示例**: - 新增 layer_norm_grad、layer_norm_grad_v3、layer_norm_v4 示例 - 重构 layer_norm、layer_norm_v3 示例(统一代码结构,精简冗余) 3. **README 更新**(5 个): - 图模式调用链接从"-"或"算子 IR 原型头文件"更新为指向 Ascend IR 文档和示例代码 - layer_norm_grad:产品支持表更新(Atlas A3/A2 训练/推理系列由 × 改为 √),公式格式清理 涉及文件(15 个,+2961 -567): | 算子 | 文档(新增) | 示例 | README | |------|--------------|------|--------| | layer_norm | ascendirLayerNorm.md(+335) | test_geir_layer_norm.cpp(+203 -277 重构) | +1 -1 | | layer_norm_v3 | ascendirLayerNormV3.md(+335) | test_geir_layer_norm_v3.cpp(+204 -262 重构) | +2 -2 | | layer_norm_v4 | ascendirLayerNormV4.md(+353) | test_geir_layer_norm_v4.cpp(+267 新增) | +2 -2 | | layer_norm_grad | ascendirLayerNormGrad.md(+355) | test_geir_layer_norm_grad.cpp(+262 新增) | +16 -16 | | layer_norm_grad_v3 | ascendirLayerNormGradV3.md(+355) | test_geir_layer_norm_grad_v3.cpp(+264 新增) | +7 -7 | ## 关联的Issue 不涉及 ## 测试 文档和示例代码补充,不涉及算子功能逻辑变更。 ## 文档更新 - 新增 5 篇 Ascend IR 文档(ascendirLayerNorm / ascendirLayerNormV3 / ascendirLayerNormV4 / ascendirLayerNormGrad / ascendirLayerNormGradV3) - 新增 3 个 GEIR 调用示例,重构 2 个示例(layer_norm、layer_norm_v3) - 更新 5 个 README(图模式链接、产品支持表、公式格式) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10467 | 4 天前 | |
docs: supplement GEIR documentation for layer_norm operators Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10467 merge ln_geir_doc into master docs: supplement GEIR documentation for layer_norm operators Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 5 个 layer_norm 系列算子补充 Ascend IR(GEIR)文档和图模式调用示例,并更新 README 中的图模式调用链接。 ### 改动原因 layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad、layer_norm_grad_v3 算子此前缺少 Ascend IR 文档,README 中图模式调用链接为空或指向算子 IR 原型头文件,无法指导用户通过 Ascend IR 构图方式调用算子。 ### 改动方法 1. **新增 Ascend IR 文档**(docs/ascendirXxx.md,5 篇): - 产品支持情况、功能说明、计算公式 - 参数说明(输入/输出/属性,含数据类型和数据格式) - 约束说明、调用示例(含错误处理宏 CHECK_RET/LOG_PRINT 与 GetGeError 错误信息获取) 2. **GEIR 调用示例**: - 新增 layer_norm_grad、layer_norm_grad_v3、layer_norm_v4 示例 - 重构 layer_norm、layer_norm_v3 示例(统一代码结构,精简冗余) 3. **README 更新**(5 个): - 图模式调用链接从"-"或"算子 IR 原型头文件"更新为指向 Ascend IR 文档和示例代码 - layer_norm_grad:产品支持表更新(Atlas A3/A2 训练/推理系列由 × 改为 √),公式格式清理 涉及文件(15 个,+2961 -567): | 算子 | 文档(新增) | 示例 | README | |------|--------------|------|--------| | layer_norm | ascendirLayerNorm.md(+335) | test_geir_layer_norm.cpp(+203 -277 重构) | +1 -1 | | layer_norm_v3 | ascendirLayerNormV3.md(+335) | test_geir_layer_norm_v3.cpp(+204 -262 重构) | +2 -2 | | layer_norm_v4 | ascendirLayerNormV4.md(+353) | test_geir_layer_norm_v4.cpp(+267 新增) | +2 -2 | | layer_norm_grad | ascendirLayerNormGrad.md(+355) | test_geir_layer_norm_grad.cpp(+262 新增) | +16 -16 | | layer_norm_grad_v3 | ascendirLayerNormGradV3.md(+355) | test_geir_layer_norm_grad_v3.cpp(+264 新增) | +7 -7 | ## 关联的Issue 不涉及 ## 测试 文档和示例代码补充,不涉及算子功能逻辑变更。 ## 文档更新 - 新增 5 篇 Ascend IR 文档(ascendirLayerNorm / ascendirLayerNormV3 / ascendirLayerNormV4 / ascendirLayerNormGrad / ascendirLayerNormGradV3) - 新增 3 个 GEIR 调用示例,重构 2 个示例(layer_norm、layer_norm_v3) - 更新 5 个 README(图模式链接、产品支持表、公式格式) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10467 | 4 天前 | |
[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 | 12 天前 | |
docs: supplement GEIR documentation for layer_norm operators Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10467 merge ln_geir_doc into master docs: supplement GEIR documentation for layer_norm operators Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 5 个 layer_norm 系列算子补充 Ascend IR(GEIR)文档和图模式调用示例,并更新 README 中的图模式调用链接。 ### 改动原因 layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad、layer_norm_grad_v3 算子此前缺少 Ascend IR 文档,README 中图模式调用链接为空或指向算子 IR 原型头文件,无法指导用户通过 Ascend IR 构图方式调用算子。 ### 改动方法 1. **新增 Ascend IR 文档**(docs/ascendirXxx.md,5 篇): - 产品支持情况、功能说明、计算公式 - 参数说明(输入/输出/属性,含数据类型和数据格式) - 约束说明、调用示例(含错误处理宏 CHECK_RET/LOG_PRINT 与 GetGeError 错误信息获取) 2. **GEIR 调用示例**: - 新增 layer_norm_grad、layer_norm_grad_v3、layer_norm_v4 示例 - 重构 layer_norm、layer_norm_v3 示例(统一代码结构,精简冗余) 3. **README 更新**(5 个): - 图模式调用链接从"-"或"算子 IR 原型头文件"更新为指向 Ascend IR 文档和示例代码 - layer_norm_grad:产品支持表更新(Atlas A3/A2 训练/推理系列由 × 改为 √),公式格式清理 涉及文件(15 个,+2961 -567): | 算子 | 文档(新增) | 示例 | README | |------|--------------|------|--------| | layer_norm | ascendirLayerNorm.md(+335) | test_geir_layer_norm.cpp(+203 -277 重构) | +1 -1 | | layer_norm_v3 | ascendirLayerNormV3.md(+335) | test_geir_layer_norm_v3.cpp(+204 -262 重构) | +2 -2 | | layer_norm_v4 | ascendirLayerNormV4.md(+353) | test_geir_layer_norm_v4.cpp(+267 新增) | +2 -2 | | layer_norm_grad | ascendirLayerNormGrad.md(+355) | test_geir_layer_norm_grad.cpp(+262 新增) | +16 -16 | | layer_norm_grad_v3 | ascendirLayerNormGradV3.md(+355) | test_geir_layer_norm_grad_v3.cpp(+264 新增) | +7 -7 | ## 关联的Issue 不涉及 ## 测试 文档和示例代码补充,不涉及算子功能逻辑变更。 ## 文档更新 - 新增 5 篇 Ascend IR 文档(ascendirLayerNorm / ascendirLayerNormV3 / ascendirLayerNormV4 / ascendirLayerNormGrad / ascendirLayerNormGradV3) - 新增 3 个 GEIR 调用示例,重构 2 个示例(layer_norm、layer_norm_v3) - 更新 5 个 README(图模式链接、产品支持表、公式格式) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10467 | 4 天前 | |
docs: supplement GEIR documentation for layer_norm operators Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10467 merge ln_geir_doc into master docs: supplement GEIR documentation for layer_norm operators Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 5 个 layer_norm 系列算子补充 Ascend IR(GEIR)文档和图模式调用示例,并更新 README 中的图模式调用链接。 ### 改动原因 layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad、layer_norm_grad_v3 算子此前缺少 Ascend IR 文档,README 中图模式调用链接为空或指向算子 IR 原型头文件,无法指导用户通过 Ascend IR 构图方式调用算子。 ### 改动方法 1. **新增 Ascend IR 文档**(docs/ascendirXxx.md,5 篇): - 产品支持情况、功能说明、计算公式 - 参数说明(输入/输出/属性,含数据类型和数据格式) - 约束说明、调用示例(含错误处理宏 CHECK_RET/LOG_PRINT 与 GetGeError 错误信息获取) 2. **GEIR 调用示例**: - 新增 layer_norm_grad、layer_norm_grad_v3、layer_norm_v4 示例 - 重构 layer_norm、layer_norm_v3 示例(统一代码结构,精简冗余) 3. **README 更新**(5 个): - 图模式调用链接从"-"或"算子 IR 原型头文件"更新为指向 Ascend IR 文档和示例代码 - layer_norm_grad:产品支持表更新(Atlas A3/A2 训练/推理系列由 × 改为 √),公式格式清理 涉及文件(15 个,+2961 -567): | 算子 | 文档(新增) | 示例 | README | |------|--------------|------|--------| | layer_norm | ascendirLayerNorm.md(+335) | test_geir_layer_norm.cpp(+203 -277 重构) | +1 -1 | | layer_norm_v3 | ascendirLayerNormV3.md(+335) | test_geir_layer_norm_v3.cpp(+204 -262 重构) | +2 -2 | | layer_norm_v4 | ascendirLayerNormV4.md(+353) | test_geir_layer_norm_v4.cpp(+267 新增) | +2 -2 | | layer_norm_grad | ascendirLayerNormGrad.md(+355) | test_geir_layer_norm_grad.cpp(+262 新增) | +16 -16 | | layer_norm_grad_v3 | ascendirLayerNormGradV3.md(+355) | test_geir_layer_norm_grad_v3.cpp(+264 新增) | +7 -7 | ## 关联的Issue 不涉及 ## 测试 文档和示例代码补充,不涉及算子功能逻辑变更。 ## 文档更新 - 新增 5 篇 Ascend IR 文档(ascendirLayerNorm / ascendirLayerNormV3 / ascendirLayerNormV4 / ascendirLayerNormGrad / ascendirLayerNormGradV3) - 新增 3 个 GEIR 调用示例,重构 2 个示例(layer_norm、layer_norm_v3) - 更新 5 个 README(图模式链接、产品支持表、公式格式) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10467 | 4 天前 | |
fix: 完善NN算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10281 merge master into master fix: 完善NN算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 NN 相关算子的 Legacy 下线整改: • 为FusedBiasLeakyRelu、BNTrainingReduce、INTrainingReduceGrad、LpNormUpdate、InplaceApplyAdaMax、InplaceApplyFtrl、InplaceApplyFtrlV2、InplaceApplyProximalAdagrad 等算子补充原型去重宏,避免新旧原型重复注册。 • 将 Softshrink 算子名称统一为 SoftShrink,同步调整原型、OpDef、InferShape、InferDataType、Tiling、Kernel、TilingData 及测试中的注册名称。 • 新增 SoftShrink 开源原型,统一输入输出名称为 input_x、output_y。 • 为 SigmoidFocalLoss 新增开源 InferShape 和 InferDataType 实现。 • 将 LpNormUpdate Level0 op_api 从 canndev 迁移至开源仓,保留 AICore/AICPU 分发逻辑。 • 按仓库 clang-format 规范完成相关文件格式整改。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10281 | 8 天前 | |
fix file name Co-authored-by: liuyun_nj<liuyun90@h-partners.com> # message auto-generated for no-merge-commit merge: !10037 merge master into master fix file name Created-by: liuyun_nj Commit-by: liuyun_nj Merged-by: cann-robot Description: ## 描述 调整重复文件名 ## 关联的Issue #5695 ## 测试 回黄编包,验证 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10037 | 16 天前 | |
refactor: 迁移NN公共op_api头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10879 merge nn_prefix_common_headers_0920 into master refactor: 迁移NN公共op_api头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本变更属于 NN 公共 op_api 头文件迁移的调用清理阶段: - 将非 experimental 目录中 21 个 op_api/level2_base.h 调用迁移到 op_api/level2_base_nn.h。 - 将非 experimental 目录中 2 个 op_api/level2_base_caculation.h 调用迁移到 op_api/level2_base_caculation_nn.h。 - experimental 目录暂时保留旧转发头:11 处 level2_base.h、3 处 level2_base_caculation.h,避免 CI 将导出同名 ACLNN 接口的实验算子共同链接。 - 保留旧头文件作为兼容转发头;本 MR 不宣称已完成最终包内 basename 去重。 - 不修改 op_api_def_nn.h,不包含功能逻辑变更。 ## 关联的Issue Issue #6008 ## 测试 - git diff --check upstream/master...HEAD:通过。 - pre_commit:全部通过,包括 clang-format、codespell 和 OAT。 - CANN 9.0 容器执行 bash build.sh --opapi -j32:通过,成功生成 libopapi_nn.so。 - 原 experimental CI 同时选择 swish 与 swish_v2 后发生既有同名 ACLNN 符号冲突;本次兼容调整已将两者移出最终 MR diff,等待线上 CI 复验。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10879 | 5 天前 | |
MaskedSoftmaxWithRelPosBias拆分infershape与inferDatatype Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10233 merge master into master MaskedSoftmaxWithRelPosBias拆分infershape与inferDatatype Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 aclnn 文档标记支持、接口列表标注默认确定性实现;InferDataType 拆分至 op_graph 目录 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5766 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10233 | 11 天前 | |
refactor: norm 算子 arch35 代码注释与术语整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10322 merge R_seninfo into master refactor: norm 算子 arch35 代码注释与术语整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 norm 算子族 arch35 平台代码进行批量注释与术语整改,无功能逻辑变更。 ### 改动原因 统一 arch35 平台 norm 算子代码中的注释术语,消除不规范用词,提升代码可读性和一致性。 ### 改动方法 1. 术语规范化。 2. UT 测试名修正。 涉及 14 个算子、21 个文件(均为 arch35 目录下 tiling/kernel/UT 文件),每文件改动 1-3 行注释。 涉及文件(部分列举): - norm/batch_norm_ext2/op_host/arch35/batch_norm_ext2_tiling_base.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_host/arch35/bn3_d_training_reduce_grad_tiling_arch35.cpp(+1 -1) - norm/bn3_d_training_reduce_grad/op_kernel/arch35/bn3d_training_reduce_grad_kernel.h(+3 -3) - norm/multi_add_rms_norm_dynamic_quant/op_host/multi_add_rms_norm_dynamic_quant_tiling_arch35.cpp(+3 -2) - norm/sync_batch_norm_backward_elemt/tests/ut/op_host/arch35/test_sync_batch_norm_backward_elemt_tiling.cpp(+7 -7) - 其余 16 个文件均为 +1 -1 注释整改 ## 关联的Issue 不涉及 ## 测试 注释与测试名整改,不涉及功能逻辑变更,无需测试。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码注释与术语整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10322 | 12 天前 | |
perf(mvn_v2): 修复MVNV2 在部分多轴及大尾轴场景下的严重性能问题 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !10190 merge fix/mvnv2-multiaxis-performance into master perf(mvn_v2): 修复MVNV2 在部分多轴及大尾轴场景下的严重性能问题 Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 对适用的前缀规约 A-R-A 场景关闭串行 group 调度,改为普通多核任务分配。 - 增加 trailing-A 向量化路径: - 沿连续尾轴按 256 列切分。 - 使用二维 DMA 一次搬入 56 x 256 数据。 - mean、variance 和 normalize 全部在 UB 驻留数据上完成。 - 每个 tile 使用二维 DMA 一次写回。 - 任务数量由 280896 降至 1099。 - 专用路径仅匹配 FP32、shape (7,56,418,96)、axes=[1],其他场景继续使用原有通用 kernel。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5738](https://gitcode.com/cann/ops-nn/issues/5738) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10190 | 16 天前 | |
[cleancode] norm类算子C++语言规则告警整改 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> # message auto-generated for no-merge-commit merge: !10000 merge test/codecheck-norm2 into master [cleancode] norm类算子C++语言规则告警整改 Created-by: runqi_zhang Commit-by: runqi_zhang Merged-by: cann-robot Description: ## 描述 仓内norm类算子存在大量C++语言规则类告警,对相应文件进行整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10000 | 18 天前 | |
quantize_add_layer_norm arch35 cleancode整改 Co-authored-by: boes129<chenqi185@huawei.com> # message auto-generated for no-merge-commit merge: !10498 merge fix/quantize_add_layer_norm_cleancode into master quantize_add_layer_norm arch35 cleancode整改 Created-by: boes129 Commit-by: boes129 Merged-by: cann-robot Description: ## 描述 PR #8234 合入后 cleancode 检查三项不达标: 1. quantize_add_layer_norm_regbase_helper.h 550 行,超过头文件 500 行阈值; 2. 8 个函数超过 50 行阈值(最大的 VFCalcMeanVar 232 行); 3. welford kernel 的 Process() 圈复杂度 25,超过阈值 20。 本 PR 为纯结构重构,不改任何计算逻辑: - classify_rule.yaml中ops/ops-nn/norm/quantize_add_layer_norm/已经覆盖了quantize_add_layer_norm算子适配950新增的文件,去掉之前额外加在classify_rule.yaml的文件。 - 新增 quantize_add_layer_norm_regbase_stats.h,把 mean/var 统计类函数(VFCalcMeanVar/VFCalcMeanVarFast 等)从 helper.h 挪过去,两个文件都在 500 行以内; - 超长函数拆小:VFCalcMeanVar 拆成每行两段(mean 相 / var 相)加块级小函数,FinalizeAlign 与两个 kernel 的 Init / VFCalcYQuant / Process 用同样拆法。拆分方式对照 rms_norm、add_layer_norm 等已合入代码的函数组织习惯,代码逐字搬移; - 唯一的等价改写:var 相改为从 UB 广播装载 mean(DIST_BRC_B32),替代原来跨段持有的寄存器直通,与本算子 full_load 路径 VFCalcYQuant 的现有写法一致; - 原 6 处 LocalMemBar 的数量、方向、作用域位置逐一核对,保持不变。 ## 关联的Issue 无(承接 MR #8234 的 cleancode 整改)。 ## 测试 蓝区真实环境(CANN 9.2.0-beta.2,Ascend950PR): - 950 kernel 构建(build.sh --soc=ascend950 --opkernel):零错误,binary 6 个 .o,与合入基线一致; - 950 host UT:14/14 PASSED; - 910b 回归(build.sh --soc=ascend910b -u):无 FAILED(910b 与 host 路径未改动); - 本地 pre-commit 全绿(含 clang-format、OAT 许可证检查)。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(cleancode 检查整改,零语义变更) ## AI/Agent生成声明 - [ x] AI辅助编写 See merge request: cann/ops-nn!10498 | 9 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
[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 | 5 天前 | |
【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !10415 merge nn_work into master 【mc62】workspaceSize硬编码16M大小,替换为通过接口获取,ascendcPlatform.GetLibApiWorkSpaceSize(); Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 1. 背景:mc62算子workspace占用对比1951增大 2. 由于mc62代码和A5是onetrack, 所有workspacesize硬编码为16M, 在mc62上也同样是16M,asc 提供接口,对mc62进行区分,从原来的16M 变成1K,A5和A2大小不变。 3. 修改:算子侧tiling中硬编码为16M大小的workspacesize统一改为用接口获取。 GetLibApiWorkSpaceSize实现如下: const static uint32_t WORK_SPACE_SIZE_910B = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE_950 = 16 * 1024 * 1024; const static uint32_t WORK_SPACE_SIZE = 1024; uint32_t PlatformAscendC::GetLibApiWorkSpaceSize(void) const { auto npuArch = GetCurNpuArch(); if (npuArch == NpuArch::DAV_RESV) { PF_LOGE("get platform failed, CurNpuArch is NpuArch::DAV_RESV"); return -1; } else if (npuArch == NpuArch::DAV_2201) { return WORK_SPACE_SIZE_910B; } else if (npuArch == NpuArch::DAV_3510) { return WORK_SPACE_SIZE_950; } return WORK_SPACE_SIZE; } ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5979 ## 测试 1.单算子框架测试通过 2.二级冒烟通过 文档更新 类型标签 - [x] Bug修复 See merge request: cann/ops-nn!10415 | 8 天前 | |
fix(norm): 修复 MX 量化算子图推导与 ACLNN 文档示例 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10789 merge fix/add-rms-mx-quant-950-review into master fix(norm): 修复 MX 量化算子图推导与 ACLNN 文档示例 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 Ascend 950 上 AddRmsNormDynamicMxQuant 的图推导问题,并修正 RmsNormDynamicMxQuant 的 ACLNN 文档示例。PR 仅修改以下 3 个文件,各文件的修改内容和目的如下。 1. norm/add_rms_norm_dynamic_mx_quant/op_host/add_rms_norm_dynamic_mx_quant_infershape.cpp - 修改内容一:新增最大维度常量 INPUT_MAX_DIM_NUM = 7,在获取并判空 x1 shape 后、访问尾轴前,检查 rank 是否在 [1, 7];不满足时记录明确的错误并返回 GRAPH_FAILED。 - 修改目的:让图推导阶段与算子的 1D~7D 输入约束一致,提前拒绝 rank=0 和 rank=8 等非法输入,避免 rank=0 时继续进行 rank - 1 的尾轴访问。修复前实测 rank=0 越过 InferShape,之后在 tiling 因 mxscale 形状错误失败;未观察到崩溃,不将其描述为已复现崩溃。 - 修改内容二:删除根据 output_rstd 决定是否设置 rstd dtype 的条件分支,在 InferDataType 的输出类型设置处始终设置 rstd = DT_FLOAT。 - 修改目的:rstd 是 REQUIRED 输出,即使 output_rstd=false,其图元数据仍需具有确定的 dtype。修复合法输入因 rstd=DT_UNDEFINED 导致的 GEIR 选型失败。只补齐输出类型,不改变 output_rstd=false 时 rstd 数据无效的语义,也不要求 kernel 额外计算有效 rstd。 2. norm/add_rms_norm_dynamic_mx_quant/tests/ut/op_host/test_add_rms_norm_dynamic_mx_quant_infershape.cpp - 修改内容:保留原有用例,实际新增 3 条 Host UT:infer_shape_rank_zero_returns_failed、infer_shape_rank_eight_returns_failed、infer_dtype_rstd_false_is_float(完整用例名均以 AddRmsNormDynamicMxQuant_ 开头);同时补齐原文件末尾换行。 - 修改目的:分别锁定非法 rank 的下界和上界拦截行为,以及 output_rstd=false 时 REQUIRED 输出的 FP32 dtype 推导行为,防止上述问题回归。 - 断言方式:dtype 用例将 rstd 初始化为 DT_UNDEFINED,调用实际注册的 InferDataType 函数后,与常量 ge::DT_FLOAT 比较;避免预置正确值或与同一被修改变量比较造成假阳性。 3. norm/rms_norm_dynamic_mx_quant/docs/aclnnRmsNormDynamicMxQuant.md - 修改内容:在 C++ 示例中定义 char roundMode[] = "rint",将 aclnnRmsNormDynamicMxQuantGetWorkspaceSize 的 roundMode 实参由 nullptr 改为 roundMode;可选 beta 的 nullptr 保持不变。 - 修改目的:使示例符合 roundMode 不支持 nullptr 的 ACLNN 接口约束,避免用户按示例调用时被参数校验拒绝。本文件只修正文档调用方式,不新增 nullptr 支持或默认化行为,不修改 RMS 的运行时代码。 影响边界:未修改 kernel、tiling 策略、量化计算、ACLNN 参数列表或内存申请代码。两个算子均仅注册 ascend950;未修改 A2/A3 共用实现。ST/TTK 用例、golden、部署脚本和测试产物均仅保留在本地,不纳入本 PR。 ## 关联的Issue 暂无。 ## 测试 - master 基线:0026707d7ecb24d258e030d831c8121ac2d055bd;修复提交:cd5027611319b778c20725ab2cf8e97f3ad2638c;TTK:eaa06de9ea65c5ffd0de5befd9e27483becc8976。 - 使用工作目录内的 ops-test-kit 和 CANN 9.2.0,在 Ascend 950 上分别部署基线/修复版;TTK 显式使用 --pc=1 --seed 42,构建并发不超过 8。最终环境已恢复为修复版两个算子的完整部署。 本地新增回归用例及修复版结果: | 算子 / 通路 | 结果 | 覆盖说明 | | --- | --- | --- | | Add / ACLNN V1、V2 | 42/42 PASS | V1 14 条、V2 28 条 | | Add / kernel | 28/28 PASS | 28 条均 BINARY_MATCH,内存检查 28/28 PASS | | Add / GEIR 静态图 | 28/28 PASS | 有效输出精度比对通过 | | Add / GEIR 动态图 | 4/4 PASS | rank=1/7 × output_rstd=false/true | | RMS / ACLNN | 8/8 PASS | 显式传入 roundMode="rint" | | RMS / kernel | 8/8 PASS | 8 条均 BINARY_MATCH,内存检查 8/8 PASS | | RMS / GEIR 静态图 | 8/8 PASS | 有效输出精度比对通过 | - 上表合计 126 次合法用例设备执行。Add 覆盖 rank=1/2/7、FP16/BF16 输入、x3 缺省/存在、output_rstd=false/true、FP8/FP4 输出等代表组合;RMS 覆盖 FP16/BF16 × beta 缺省/存在 × output_rstd=false/true。这不是所有参数的全笛卡尔积测试。 - 量化使用 TTK requant 比较口径;未修改 golden 数学或临时放宽精度阈值。output_rstd=false 时,无效 rstd 数据不参与精度比较。 修复前后对照与非法输入检查: | 检查项 | master 基线 | 修复版 | | --- | --- | --- | | GEIR 固定输入对照 6 条 | output_rstd=true 的 3 条通过;false 的 3 条因 rstd=DT_UNDEFINED 选型失败 | 6/6 PASS | | kernel 同一固定输入 28 条 | 28/28 PASS | 28/28 PASS | | ACLNN V1/V2 同一固定输入 42 条 | 42/42 PASS | 42/42 PASS | | GEIR rank=0/8 × x3 缺省/存在,4 条 | rank=0 越过 InferShape 后因 mxscale 形状错误失败;rank=8 到 tiling 才拒绝 | 4 条均由 InferShape 明确拒绝 rank 不在 [1,7] | - GEIR 的 6 条对照使用显式 manual_input_binaries,前后 25 份实际输入文件的 SHA-256 与准备数据一致;不将仅固定 seed 的 28 条普通 GEIR 回归描述为固定输入对照。 - kernel 的 28 条对照中,binary 名称、tiling key、block dim、tiling data、workspace 在两版间逐条一致。 - 另测 ACLNN V1/V2 非法 rank 6 条,均由产品的 1D~7D 校验拒绝;kernel rank=8 的 2 条也被拒绝。kernel rank=0 的 2 条受 TTK 标量规格化影响,在输出形状检查失败,不作为 rank=0 InferShape 校验的直接证据。负向用例单独按实际报错原因验收,不计入精度 PASS。 - RMS ACLNN 的真实 roundMode=nullptr 已验证被参数校验拒绝,显式 "rint" 通过。 - 初始 Add ACLNN 控制用例失败已定位为本地 vendor host 与旧 built-in binary 混用;补齐本地部署路径后重新测试,最终以表中 42/42 为准。两个算子完整部署后,又执行 Add V1/V2 控制用例 2/2 通过。相关部署修正未加入产品源码或 PR。 - 新增 Host UT 3/3 通过;目标 Host UT 程序 49/49 通过。本地 CI scripts/ci/local_build.sh -u -s -j8 -f <变更文件清单> 退出码 0,覆盖适用的 UT、打包和 Ascend 950 编译检查。上述 UT/CI 对应同一修复提交,后续仅新增本地测试资产,没有再次修改产品代码。 - 本次为功能、精度、边界及 kernel 内存检查回归,未进行性能压测或 A2/A3 上板验证;已验证范围内未发现新增回归,不宣称零风险。 ## 文档更新 更新 norm/rms_norm_dynamic_mx_quant/docs/aclnnRmsNormDynamicMxQuant.md 的调用示例,定义 char roundMode[] = "rint" 并传入第一段接口。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10789 | 4 天前 | |
modified md files (aclnnRmsNormDynamicQuant.md and aclnnBatchNormElemt.md) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !10119 merge master into master modified md files (aclnnRmsNormDynamicQuant.md and aclnnBatchNormElemt.md) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Modify the support for non-continuous output parameters in aclnnRmsNormDynamicQuant.md and remove the redundant ">" in aclnnBatchNormElemt.md. ## 关联的Issue NA ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10119 | 17 天前 | |
[ascend350] 16个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10186 merge ascend350_adapt into master [ascend350] 16个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 16个算子新增ascend350平台支持:layer_norm、layer_norm_v3、layer_norm_v4、layer_norm_grad_v3(含 LayerNormBetaGammaBackpropV2/LayerNormXBackpropV2 入口)、rms_norm、rms_norm_grad、add_rms_norm、inplace_add_rms_norm、add_layer_norm、lp_norm_v2、bn_training_reduce、broadcast_gradient_args、log_softmax_v2、softmax_grad、log_softmax_grad、confusion_softmax_grad。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(layer_norm_v4/layer_norm_grad_v3 为 regbaseCfg 形态) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350/arch35(add_layer_norm 为 op_kernel/CMakeLists.txt 的 add_kernel_sources COMPUTE_UNITS 形态;layer_norm_grad_v3 为 add_modules_sources 形态无需改) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json(bn_training_reduce、log_softmax_v2 无 config 目录,走 def 全组合,跳过) - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子(如 add_layer_norm、bn_training_reduce)不新增登记,避免影响默认编译选项行为 - 4 个 def 文件版权头规范化(OAT 合规检查要求):softmax_grad_def、rms_norm_def、layer_norm_grad_v3_def、rms_norm_grad_def ## 测试 A5(Ascend950PR)环境实测: - build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:15/16 算子通过(self config 日志、ascend350 kernel .o 产物、run 包产出、json 选项注入均验证);lp_norm_v2 代码适配完成、编译验证进行中 - 950 硬件伪装 350 路径(ASCEND_OPP_PATH overlay + Short_SoC_version=Ascend350)ttk kernel 精度验证:layer_norm/layer_norm_v3 等已验收算子 binary 匹配全命中、无 FAIL(详见验收记录) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5744 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化(2026-09-11 追加) - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 清单涉及 3 处(log_softmax_v2 / log_softmax_grad / softmax_grad 的 CheckSocVersionIsSupportBf16),跳过项:3/3 已由 upstream !10101(e22a7a02f,算子910B~910E区间判断追加IsRegbase())修复,本 MR rebase 后自动继承,自身 0 处修改 - 改法(upstream 已落地形态):保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegBase()(显式覆盖 regbase 芯片) - 行为零变化:950 原区间命中(true)→现 IsRegBase()(true);350 原被区间覆盖(true)→现 IsRegBase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master See merge request: cann/ops-nn!10186 | 13 天前 | |
[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 | 12 天前 | |
[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 | 5 天前 | |
fix(norm): align RMS norm quant validation and metadata Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10660 merge fix/issues-5438-5625-rmsnorm-quant-consistency into master fix(norm): align RMS norm quant validation and metadata Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 本 PR 修复 RMSNormQuant 相关的元数据一致性问题,并整理 PR 10645 合入后的必选参数校验实现。 1. AddRmsNormQuant 的 Ascend 950/RegBase Tiling 在未获取到 epsilon 属性时使用 1e-5 作为兜底值,与算子 IR 及 README 声明的默认值 1e-6 不一致。本次将 arch35 兜底值统一为 1e-6F,并补充 Host UT 校验序列化到 TilingData 的实际值。 2. RmsNormQuantV2 的算子定义已注册 dst_type 属性,但 README 缺少对应说明。本次补充属性语义、可选值、数据类型及默认值。 3. 最新 master 已合入 PR 10645,其中 RmsNormDynamicMxQuant 与 AddRmsNormDynamicMxQuant 共用实现分别使用独立语句校验 roundMode。本次将 roundMode 纳入各自的 CheckNotNull,并使用兼容仓内 op_api stub 的 CHECK_RET(roundMode != nullptr, false) 完成判空,统一必选参数校验逻辑。roundMode 仍在空 Tensor 快速返回前校验,nullptr 仍返回 ACLNN_ERR_PARAM_NULLPTR,不改变支持范围、计算路径或数值结果。 ### 文件级修改 - norm/add_rms_norm_quant/op_host/add_rms_norm_quant_tiling_arch35.cpp:将 950 默认 epsilon 从 1e-5 修正为 1e-6F。 - norm/add_rms_norm_quant/tests/ut/op_host/test_add_rms_norm_quant_tiling.cpp:补充默认 epsilon 的 TilingData 序列化断言。 - norm/rms_norm_quant_v2/README.md:补充 dst_type 属性说明。 - norm/add_rms_norm_dynamic_mx_quant/op_host/op_api/aclnn_add_rms_norm_dynamic_mx_quant.cpp:将 roundMode 合并到统一的 CheckNotNull。 - norm/rms_norm_dynamic_mx_quant/op_host/op_api/aclnn_rms_norm_dynamic_mx_quant.cpp:将 roundMode 合并到统一的 CheckNotNull。 epsilon 生产代码仅修改 arch35 Tiling,不影响 A2/A3 路径。两处 Dynamic MX Quant 修改仅整理判空结构,不改变原有接口行为。 ## 关联的Issue Fixes #5438 Fixes #5625 关联 #5934(PR 10645 后续实现整理) ## 测试 - [x] 最新 master 上执行 AddRmsNormQuant Ascend 950 Host UT:38/38 通过。 - [x] 修复前:37/38 通过;新增断言稳定复现 epsilon 实际为 1e-5。 - [x] 修复后:38/38 通过,epsilon 缺省值序列化结果为 1e-6。 - [x] 执行 RmsNormDynamicMxQuant、AddRmsNormDynamicMxQuant Ascend 950 OpAPI 编译与 UT:42/42 通过,包含 roundMode=nullptr 回归用例。\n- [x] 使用 -iquote 强制仓内 common/stub/op_api 优先进行干净构建,确认两个源码实际依赖仓内 stub,42/42 通过。\n- [x] 最小隔离编译验证:旧 OP_CHECK_NULL 写法稳定复现 IsNullptr(const char*) 签名错误,修复后编译通过。 - [x] pre-commit:trailing-whitespace、end-of-file、clang-format、codespell、OAT 等检查全部通过。 - [x] OpDef/README 定向一致性检查通过。 所有构建命令均使用 -j8。 ## 文档更新 更新 norm/rms_norm_quant_v2/README.md,补充 dst_type 属性说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10660 | 8 天前 | |
fix: correct RmsNormQuantV2 and V3 epsilon attrs Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10438 merge fix/rms-norm-quant-v2-v3-epsilon-attr into master fix: correct RmsNormQuantV2 and V3 epsilon attrs Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 RmsNormQuantV2 和 RmsNormQuantV3 的 Ascend950 二进制配置中属性名拼写错误: - 将所有 epsilion 修正为 epsilon - RmsNormQuantV2 修正 460 个二进制条目 - RmsNormQuantV3 修正 460 个二进制条目 - 属性顺序、属性类型和默认值保持不变,仅修正 Ascend950 binary matching 元数据中的属性名 - 未修改 Kernel 实现及计算逻辑,修正后配置与 OpDef 属性定义保持一致 - 修正 rms_norm_quant_v2_tiling_scales2_zeropoints_mismatch 的 UT 构造,使 scales2 真正缺失,正确覆盖 zeroPoints2-only 非法组合的拒绝路径 ## 关联的Issue - #5867 ## 测试 - OpDef 与 Ascend950 JSON 属性定义对比: - RmsNormQuantV2:修复前 460 个不一致,修复后 0 个 - RmsNormQuantV3:修复前 460 个不一致,修复后 0 个 - JSON 格式检查、codespell、OAT 和 pre-commit 检查通过 - CANN 9.2 Ascend950 op_host 编译通过 - RmsNormQuantV2/RmsNormQuantV3 op_host UT:42/42 通过 - zeroPoints2-only 负向用例已验证返回 GRAPH_FAILED ## 文档更新 无需更新。此次改动仅修正内部二进制配置中的属性名和对应 UT 构造,公开接口定义及语义未发生变化。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10438 | 10 天前 | |
[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 | 12 天前 | |
[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 | 12 天前 | |
refactor: 迁移NN公共op_api头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10879 merge nn_prefix_common_headers_0920 into master refactor: 迁移NN公共op_api头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本变更属于 NN 公共 op_api 头文件迁移的调用清理阶段: - 将非 experimental 目录中 21 个 op_api/level2_base.h 调用迁移到 op_api/level2_base_nn.h。 - 将非 experimental 目录中 2 个 op_api/level2_base_caculation.h 调用迁移到 op_api/level2_base_caculation_nn.h。 - experimental 目录暂时保留旧转发头:11 处 level2_base.h、3 处 level2_base_caculation.h,避免 CI 将导出同名 ACLNN 接口的实验算子共同链接。 - 保留旧头文件作为兼容转发头;本 MR 不宣称已完成最终包内 basename 去重。 - 不修改 op_api_def_nn.h,不包含功能逻辑变更。 ## 关联的Issue Issue #6008 ## 测试 - git diff --check upstream/master...HEAD:通过。 - pre_commit:全部通过,包括 clang-format、codespell 和 OAT。 - CANN 9.0 容器执行 bash build.sh --opapi -j32:通过,成功生成 libopapi_nn.so。 - 原 experimental CI 同时选择 swish 与 swish_v2 后发生既有同名 ACLNN 符号冲突;本次兼容调整已将两者移出最终 MR diff,等待线上 CI 复验。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10879 | 5 天前 | |
modified md file(aclnn*.md and README.md) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !7119 merge master into master modified md file(aclnn*.md and README.md) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 1. Updated the constraints on the C and group parameters in aclnnGroupNormBackward.md. 2. Updated the calculation formula and parameter types of the lp_norm_v2 operator, and updated the parameter description of aclnn. 3. Updated the case of parameter names in the README.md file of renorm. 4. Updated the calculation formula of sync_batch_norm_backward_elemt and added the constraints on the combination of data types in the README file. 5. Updated the attribute parameter types and default values in the README file of sync_batch_norm_backward_elemt. ## 关联的Issue [#3701](https://gitcode.com/cann/ops-nn/issues/3701) [#3702](https://gitcode.com/cann/ops-nn/issues/3702) [#3693](https://gitcode.com/cann/ops-nn/issues/3693) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/op_list.md norm/group_norm_grad/docs/aclnnGroupNormBackward.md norm/lp_norm_v2/README.md norm/lp_norm_v2/docs/aclnnNorm.md norm/renorm/README.md norm/sync_batch_norm_backward_elemt/README.md norm/sync_batch_norm_backward_elemt/docs/aclnnBatchNormElemtBackward.md norm/sync_batch_norm_backward_elemt/docs/aclnnBatchNormElemtBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7119 | 2 个月前 | |
[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 | 12 天前 | |
fix:重构runtime2_util.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8841 merge rename_runtime2util into master fix:重构runtime2_util.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将 common/inc/op_api/runtime2_util.h 重命名为 common/inc/op_api/runtime2_util_nn.h,以避免与 CANN 仓内其他模块同名头文件产生命名冲突。 主要改动内容: 1. 重命名头文件 runtime2_util.h 为 runtime2_util_nn.h,并同步更新文件内的 doxygen 注释、头文件保护宏(CANN_OPS_BUILT_IN_OP_TILING_RUNTIME2_UTIL_NN_H_)以及文件末尾换行。 2. 批量更新所有引用该头文件的 26 个源文件(.h/.cpp)中的 #include "op_api/runtime2_util.h" 为 #include "op_api/runtime2_util_nn.h",涉及 activation、index、loss、norm 等 nn 算子目录。 3. 同步更新 common/inc/op_host/cache_runinfo.h 等公共头文件的引用,并更新版权年份至 2025-2026。 该改动为纯重命名重构,不涉及任何功能逻辑变更。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5037 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 由于改动仅涉及头文件重命名及引用路径更新,无功能逻辑变更,主要通过全量编译验证所有受影响算子可正确找到新头文件并编译通过。 - 编译范围覆盖 activation、index、loss、norm 等目录下受影响的 arch35 tiling 与 infershape 模块。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构代码 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8841 | 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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 16 天前 | ||
| 5 天前 | ||
| 12 天前 | ||
| 5 天前 | ||
| 8 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 8 天前 | ||
| 8 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 9 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 26 天前 | ||
| 26 天前 | ||
| 11 天前 | ||
| 12 天前 | ||
| 9 天前 | ||
| 26 天前 | ||
| 5 天前 | ||
| 8 天前 | ||
| 12 天前 | ||
| 25 天前 | ||
| 29 天前 | ||
| 5 天前 | ||
| 12 天前 | ||
| 23 天前 | ||
| 6 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 19 天前 | ||
| 16 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 9 天前 | ||
| 23 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 4 天前 | ||
| 9 天前 | ||
| 20 天前 | ||
| 8 天前 | ||
| 12 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 5 天前 | ||
| 12 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 12 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 8 天前 | ||
| 16 天前 | ||
| 5 天前 | ||
| 11 天前 | ||
| 12 天前 | ||
| 16 天前 | ||
| 18 天前 | ||
| 9 天前 | ||
| 2 个月前 | ||
| 5 天前 | ||
| 8 天前 | ||
| 4 天前 | ||
| 17 天前 | ||
| 13 天前 | ||
| 12 天前 | ||
| 5 天前 | ||
| 8 天前 | ||
| 10 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 5 天前 | ||
| 2 个月前 | ||
| 12 天前 | ||
| 1 个月前 | ||
| 9 个月前 |