| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 5 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 5 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 5 天前 | |
refactor: 代码规范整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !11305 merge ccc_0928 into master refactor: 代码规范整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次提交对 log_softmax_v2、softmax_v2、add_rms_norm_cast、add_rms_norm_quant、rms_norm 五个算子目录及脚本 scripts/util/parse_changed_files.py 进行代码规范整改。 ### 改动原因 1. 部分文件的版权声明头仍为旧版格式(Copyright 2025 及旧 License 措辞),需统一为 2026 年新版规范格式。 2. 部分源文件(.cpp/.h/.py/.json/CMakeLists.txt)文末缺少换行符以及代码格式,不符合代码检查要求。 3. 部分 Python 测试脚本存在代码风格问题:单双引号混用、docstring 风格不统一、字典格式冗余、未使用的 import/变量、行尾空白。 ### 改动方法 1. 统一版权声明头为 2026 年新版格式,并规范化 License 措辞。 2. 为文末缺少换行符的文件补齐换行。 3. 规范化 Python 代码风格:统一双引号、docstring 采用 """、精简字典格式、清理未使用的 import 与变量、去除行尾空白。 ## 关联的Issue 关联 Issue #6287 ## 测试 本次为代码规范整改与脚本逻辑修正,不涉及算子功能变更;相关算子测试用例逻辑未改动。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范整改(copyright 头、文末换行、Python 格式) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11305 | 5 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 5 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
refactor: 代码规范整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !11305 merge ccc_0928 into master refactor: 代码规范整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次提交对 log_softmax_v2、softmax_v2、add_rms_norm_cast、add_rms_norm_quant、rms_norm 五个算子目录及脚本 scripts/util/parse_changed_files.py 进行代码规范整改。 ### 改动原因 1. 部分文件的版权声明头仍为旧版格式(Copyright 2025 及旧 License 措辞),需统一为 2026 年新版规范格式。 2. 部分源文件(.cpp/.h/.py/.json/CMakeLists.txt)文末缺少换行符以及代码格式,不符合代码检查要求。 3. 部分 Python 测试脚本存在代码风格问题:单双引号混用、docstring 风格不统一、字典格式冗余、未使用的 import/变量、行尾空白。 ### 改动方法 1. 统一版权声明头为 2026 年新版格式,并规范化 License 措辞。 2. 为文末缺少换行符的文件补齐换行。 3. 规范化 Python 代码风格:统一双引号、docstring 采用 """、精简字典格式、清理未使用的 import 与变量、去除行尾空白。 ## 关联的Issue 关联 Issue #6287 ## 测试 本次为代码规范整改与脚本逻辑修正,不涉及算子功能变更;相关算子测试用例逻辑未改动。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范整改(copyright 头、文末换行、Python 格式) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11305 | 5 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 5 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
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 | 25 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
[CANNBot]add bn3d_training_update_grad for Ascend950 Co-authored-by: xusxx<xushaoxian@huawei.com> Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !11150 merge feat/bn3d_training_update_grad into master [CANNBot]add bn3d_training_update_grad for Ascend950 Created-by: xusxx Commit-by: xusxx;andong_hw Merged-by: cann-robot Description: ## 描述 下一代新增支持 Bn3dTrainingUpdateGrad,用于 3D Batch Normalization 训练反向的逐通道参数梯度归约:给定反向梯度 grads、前向输入 x 与逐通道统计量 batch_mean/batch_variance,沿批与空间维(N/D/H/W)归约得到缩放/偏置参数梯度 diff_scale/diff_offset(fp32)。支持 grads/x 的 fp16/fp32/bf16 × NCDHW/NCHW/NHWC 具名格式,3 个 tilingKey(base=0 / group=1 借 R 二次 reduce / empty=2 空 tensor)。仅 Ascend950(arch35)、GEIR 图模式通路(对齐 BN3D 训练家族,aclnn_exclude)。 ## 测试 - UT:op_host tiling(22) + infershape(4) 共 26/26 PASS - ST:tests/st/arch35 共 129 条,TTK kernel -b=release 全 PASS(precision 覆盖矩阵 38 + generalization 91) ## 文档更新 - 新增 norm/bn3d_training_update_grad/README.md(功能/公式/参数/产品支持) - 更新 docs/zh/op_list.md 新增算子条目 ## 类型标签 - [x] 新特性 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11150 | 13 天前 | |
fix(ascend950): ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp检视意见闭环 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !11177 merge master into master fix(ascend950): ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp检视意见闭环 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ApplyCamePart1,ApplyCamePart3,BNInfer,InplaceApplyRMSProp检视意见闭环 ## 关联的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!11177 | 14 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11199 merge master into master modified md files (modified the product name) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name. ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11199 | 19 天前 | |
fix 适配350 | 4 天前 | |
modified md files (modified the product name) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11199 merge master into master modified md files (modified the product name) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name. ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11199 | 19 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
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 | 1 个月前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
feat(dua_quantize_add_layer_norm): 支持 Ascend950(arch35) Co-authored-by: andong_hw<andong2@huawei.com> Co-authored-by: fanjie43<fanjie43@huawei.com> # message auto-generated for no-merge-commit merge: !11125 merge feat/dua-quantize-add-layer-norm-arch35 into master feat(dua_quantize_add_layer_norm): 支持 Ascend950(arch35) Created-by: weixin_51153241 Commit-by: fanjie43;andong_hw Merged-by: cann-robot Description: ## 背景 norm/dua_quantize_add_layer_norm 原仅支持 Atlas A2 / A3(910)。本 PR 为其新增 Ascend950(arch35)支持:op_host/arch22(原 910 实现,原样迁入)+ op_host/arch35(新增 950 实现)。 ## 主要改动 | 类别 | 文件 | 说明 | |---|---|---| | 新增 | op_host/arch35/*_tiling_arch35.{cpp,h} | 950 tiling,tilingKey 0/1/2/4/5 | | 新增 | op_kernel/arch35/*.h、op_kernel/*_apt.cpp | 950 kernel(base / group / empty 三分支) | | 新增 | op_host/config/ascend950/*_binary.json | 950 binary 配置(fp32 / fp16 / bf16) | | 新增 | op_kernel/CMakeLists.txt | 仅登记 950 kernel 入口,**不改动 910 既有 kernel 构建** | | 迁移 | op_host/*_tiling.{cpp,h} → op_host/arch22/ | 内容不变,仅换目录 | | 删除 | op_host/CMakeLists.txt | 改由算子根 CMakeLists.txt 统一声明 | | 修改 | 根 CMakeLists.txt | 改为 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 并行数组 | | 修改 | op_host/*_def.cpp | 追加 ascend950 AICore 配置;910b/910_93 的 dtype 组合顺序与 AutoContiguous **保持原样** | | 修改 | op_graph/*_proto.h、op_host/*_infershape.cpp | 修正 proto 与 def 的 dtype 声明不一致(原 proto 把 scales 声明为仅 bf16/fp32) | | 修改 | README.md、examples/、tests/assets/golden.py | 产品表 950 转「支持」;样例随附 | ## 兼容性 - 910b / 910_93 的 tiling、dtype 顺序、AutoContiguous、AICore 配置均未改动; 910 的 kernel 构建路径也未改动(未向 op_kernel/CMakeLists.txt 添加 910 条目)。 - arch22 与 arch35 各自注册 IMPL_OP_OPTILING,因 TILING_DIR 按 soc 位置映射, 每次构建只编译对应子目录,不产生重复符号。 ## 验证 本地以本仓构建系统实测(bash build.sh): - --pkg --jit --soc=ascend950 --ops=dua_quantize_add_layer_norm → SUCCESS, 产物含 dynamic/dua_quantize_add_layer_norm.py(910)与 dynamic/dua_quantize_add_layer_norm_apt.py(950) - --pkg --jit --soc=ascend910b --ops=dua_quantize_add_layer_norm → SUCCESS(910 回归) - --opkernel --soc=ascend950 → SUCCESS,产物 DuaQuantizeAddLayerNorm_{fp32,fp16,bf16}.o - --opkernel --soc=ascend910b → SUCCESS,产物 DuaQuantizeAddLayerNorm_1.o (与仓内 config/ascend910b/*_binary.json 的 bin_filename 一致) See merge request: cann/ops-nn!11125 | 13 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
下一代支持GNTrainingReduce Co-authored-by: LuckySun<sunwenlong8@huawei.com> # message auto-generated for no-merge-commit merge: !10904 merge feat/gn_training_reduce into master 下一代支持GNTrainingReduce Created-by: LuckySun Commit-by: LuckySun Merged-by: cann-robot Description: ## 描述 新增 GroupNorm 训练统计量归约算子 **GNTrainingReduce** 在 **A5(Ascend950 / arch35)** 上的支持。 算子对 rank-4 输入 x 按 num_groups 分组,求出每组的两个原始矩:Σx 与 Σx², 输出恒为 fp32;支持 NCHW / NHWC 两种布局与 fp16 / fp32 输入。 主要改动: - **op_host**:算子定义、shape 推导、arch35 专用 tiling、Ascend950 binary 配置 - **op_kernel**:arch35 kernel 实现(base / group / onepass 三条实现路径)与 kernel 入口 - **op_graph**:原型定义与 shape 推导 - **tests**:golden 参考实现(含 fp32 third_party 竞品)、tiling / infershape 单测, 以及泛化 / 三方精度 / GEIR 通路 / 性能四套用例 同时修复: - -b release 二进制复用全量 BINARY_MATCH_FAILURE:输入 x 的格式匹配模式由 FormatAgnostic 改为按具体格式(NCHW / NHWC)匹配 - 若干精度与性能问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6170 ## 测试 - 泛化:954 条,全部通过 - 三方精度(NPU / CPU-fp64 / GPU):100 条,全部通过 - GEIR 通路(invoke_path):52 条,全部通过 - 性能:200 条,满足要求 ## 文档更新 新增算子说明文档 norm/gn_training_reduce/README.md。 在docs/zh/op_list.md中补充该算子 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!10904 | 15 天前 | |
modified md files (modified the product name) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11199 merge master into master modified md files (modified the product name) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name. ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11199 | 19 天前 | |
fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !9867 merge workspace-remove-3 into master fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 Ascend 950(arch35)路径下, init_embedding_hash_table、sigmoid_cross_entropy_with_logits_v2、group_norm 和 group_norm_silu 算子未实际使用 workspace,但原实现仍申请或保留了 workspace 相关处理。 本次修改: - 将上述 4 个算子的 workspace 大小设置为 0,避免不必要的内存申请。 - 删除 group_norm 和 group_norm_silu kernel 中未使用的 workspace 判空、用户 workspace 获取及参数传递。 - 统一 workspace 常量命名,并补充相关文件末尾换行。 - 修改仅作用于 Ascend 950(arch35)实现,不影响其他芯片路径。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6122 ## 测试 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260928_144411817 obp冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260929_083012442 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9867 | 14 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !9867 merge workspace-remove-3 into master fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 Ascend 950(arch35)路径下, init_embedding_hash_table、sigmoid_cross_entropy_with_logits_v2、group_norm 和 group_norm_silu 算子未实际使用 workspace,但原实现仍申请或保留了 workspace 相关处理。 本次修改: - 将上述 4 个算子的 workspace 大小设置为 0,避免不必要的内存申请。 - 删除 group_norm 和 group_norm_silu kernel 中未使用的 workspace 判空、用户 workspace 获取及参数传递。 - 统一 workspace 常量命名,并补充相关文件末尾换行。 - 修改仅作用于 Ascend 950(arch35)实现,不影响其他芯片路径。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6122 ## 测试 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260928_144411817 obp冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260929_083012442 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9867 | 14 天前 | |
fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11330 merge fix/arch35-4ops-round3-golden into master fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 优化GroupNormSiluQuant、INTrainingUpdateGrad、L2NormalizeGrad三算子的golden规范性和资料 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6318 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11330 | 13 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11330 merge fix/arch35-4ops-round3-golden into master fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 优化GroupNormSiluQuant、INTrainingUpdateGrad、L2NormalizeGrad三算子的golden规范性和资料 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6318 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11330 | 13 天前 | |
test(norm): 加固 INTrainingUpdateGradGammaBeta Golden 精度基准 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11235 merge quality/in-training-update-grad-gamma-beta-golden into master test(norm): 加固 INTrainingUpdateGradGammaBeta Golden 精度基准 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 对 INTrainingUpdateGradGammaBeta 的 Kernel/GEIR 共用测试 Golden 做质量加固,仅修改 tests/assets/golden.py、其说明和 CPU 单测;不修改算子生产 Kernel、Host Tiling 或 REG_OP。 - CPU 真值以 FP64 累加,有限病态抵消列用 math.fsum 补算,保留 TTK Promote 的高精度输入;两路输出仍对应 sum(axis=0, keepdims=True)。 - Torch 第三方参考继续调用原生 torch.sum,并改为延迟导入,避免 TTK worker 启动时与 native 库预加载冲突。 - 补充 9 类 DFX 特殊输入注入及数值/边界单测;不通过复制 NPU 归约策略构造 Golden。 ## 关联的Issue 关联的Issue:#6247 https://gitcode.com/cann/ops-nn/issues/6247 ## 测试 - 重基到 upstream/master 后,test_golden.py CPU 单测 10/10 PASS;TTK 代码路径 CPU 集成单测 4/4 PASS;git diff --check PASS。 - 重基前后相对 master 的稳定 patch-id 一致,仅 3 个测试资产文件,差异 +121/-40 行。 - 仓库默认 pre-push FAST 钩子使用本机 CPU 数作为 -j 参数(本机显示 -j128),超过本任务强制的最大 8 并行限制;发现后立即停止该构建,并使用钩子提供的 PRE_PUSH_BUILD=0 旁路推送。本 PR 不宣称本地全仓构建门禁通过,后续以 PR CI/codecheck 为准。 - 使用此 Golden 的既有实卡验证:Kernel release binary 两方 1078/1078 PASS;三方 1076/1078 PASS,另 2 条为 Torch FP32 溢出参考差异(NPU 与 FP32 Golden 一致);GEIR 通路另有定向验证。本 PR 重基后未重复全量设备测试,因算子生产代码和测试资产有效差异均未变。 ## 文档更新 新增 tests/assets/README.md,说明 Golden 语义、Torch 参考、判据及验证边界。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试资产质量加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11235 | 15 天前 | |
fix(in_training_update_v2): reduce affine cancellation error on Ascend 950 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11297 merge fix/in_training_update_v2_affine_476_20260928 into master fix(in_training_update_v2): reduce affine cancellation error on Ascend 950 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 INTrainingUpdateV2 在 Ascend 950 上的有限近零仿射抵消误差。 - 根据两种等价表达式的偏移量大小选择以 mean 或零为中心的计算形式,并使用融合乘加,减少中间舍入后相消的误差。 - 保留非有限 scale 的原有回退路径、极值缩放恢复和统计量计算。接口、Host、Tiling、UB 分配、Golden 和比较阈值不变。 - 为 NCHW/NHWC 添加两个可再生的固定输入回归场景。仅改本算子的公共内核头和测试资产生成脚本。 ## 关联的Issue 关联此前数值稳定性问题 #6249 的后续精度加固;本次仅处理有限近零误差。 ## 测试 - Ascend 950 单算子定向 package 构建通过,构建并行度 8;部署的四份 binary 与构建产物 SHA256 一致。 - 冻结两完整计算分组:NCHW/NHWC 各重复三次,TTK 原判据 6/6 PASS,输入与基线逐字节一致。 - 原有固定输入边界回归 43/43 PASS;极值小用例 36/36 PASS。 - 仓库新增有限输入回归 2/2 PASS,使用原 Golden 和三方比较。 - GEIR 静态 4/4 PASS、固定秩动态 4/4 PASS,两种格式与两种 dtype 均覆盖。 - 完整原始 476 用例固定输入回放:七个输入逐字节一致,有限近零超差点由 NPU 15/GPU 2 改善为 NPU 0/GPU 2;未修改的 TTK L1 三方比较三个输出均通过。 - **判定边界保留**:完整 476 的原始 PRECISION_STATUS 仍是 COMPARE_FAILURE,原因是原有九个下溢相关点与 FP64 Golden 的 NaN/Inf 类别不同;这些位置的 NPU 与 GPU FP32 类别及位置一致。本 PR 不处理共同下溢,不放宽前置判据,不将离线三方 PASS 冒充整条 TTK PASS。 - 所有 TTK 均显式 --pc=1;仅做必要精度回归,未重新跑全量泛化或采集性能。不声称历史性能数据来自本次新 binary。 ## 文档更新 公开接口和支持范围不变,无需修改 README。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11297 | 15 天前 | |
refactor(inplace_add_layer_norm_fusion_pass): replace D4 dlsym with weak symbol Co-authored-by: wangpengbo<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !11082 merge inpl_aln_pass_D4 into master refactor(inplace_add_layer_norm_fusion_pass): replace D4 dlsym with weak symbol Created-by: wangpengbo26 Commit-by: wangpengbo Merged-by: cann-robot Description: ## 描述 重构 inplace_add_layer_norm 融合规则中 CheckScene 的 GetOptionValue 调用方式:从 D4 场景下的 dlsym 运行时符号解析,改为编译期版本宏守卫的直接调用。 ### 改动原因 CustomPassContext::GetOptionValue 为 GE 9.0.0 新增接口,此前 D4(低版本编译环境)下通过 dlsym(RTLD_DEFAULT, mangled_symbol) 运行时解析该符号: - 硬编码 mangled symbol name 脆弱,符号名变更即解析失败 - 需 memcpy_s 做函数指针拷贝,绕过类型检查 - 代码复杂(约 30 行解析逻辑 + <dlfcn.h>/securec.h 依赖) 目前框架已适配公共符号弱化,高编低跑场景下弱符号可在运行时正确解析,因此可以直接调用接口,不再需要 dlsym 方案。 ### 改动方法 1. 删除 ResolveGetOptionValue() dlsym 解析逻辑及 _ZNK2ge... 硬编码符号名、<dlfcn.h>/securec.h 依赖。 2. CheckScene 改为编译期宏守卫: - GE_COMPILER_VERSION_NUM >= 90000000 时直接调用 passContext.GetOptionValue(...)(框架已适配弱符号,高编低跑可正确解析,调用前仍确认运行时版本); - 否则返回 API_UNAVAILABLE 静默跳过。 3. 运行时版本检查保留并加固:aclsysGetVersionNum 返回值由忽略改为与版本判断合并(!= ACL_SUCCESS || runtimeVersion < kMinGeCompilerVersion)。 涉及文件: - norm/inplace_add_layer_norm/op_graph/fusion_pass/inplace_add_layer_norm_fusion_pass.cpp(+9 -35) ## 关联的Issue -https://gitcode.com/cann/ops-nn/issues/6156 ## 测试 - 验证融合规则在推理/训练场景下的场景判别行为与重构前一致(推理场景判别依赖 GetOptionValue 读取 OptionGraphRunMode)。 - 覆盖编译环境 >= / < 9.0.0 两种宏分支及运行时版本检查分支。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11082 | 19 天前 | |
feat(add_rms_norm): 新增转置模板与多核切Reduce轴模板,小R/大R场景性能提升 Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !9234 merge pr/add_rms_norm_split_ar_trans into master feat(add_rms_norm): 新增转置模板与多核切Reduce轴模板,小R/大R场景性能提升 Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 为 add_rms_norm 新增两个性能模板和一个空归约模板,并补强 ACLNN 参数校验(arch35/Ascend 950): 1. **转置模板(key=4000)**:适用于 R≤16 的小 R 场景。NdDma 将 GM (A,R) 转置搬入 UB (R,A),沿 A 列向量化归约,再转置搬出。实测相对主线 1.1x~1.9x。 2. **多核切 Reduce 轴模板(key=3000)**:适用于整行无法装入 UB 的大 R 场景。每核固定处理一个 R 分块;核内按真实 tile 逐个提交在线二进制归并树,tile 数非 2 的幂时补零至下一次幂形成唯一根节点;SyncAll 后沿核维归并 partial。实测相对主线 1.1x~2.1x。 3. **空归约模板(key=5000)**:R==0 && A>0 时写出符合语义的 NaN rstd。 4. **ACLNN 参数校验与兼容性**:新增 gamma/rstd shape、epsilon、公共输出指针和 L0 gamma rank 检查仅在 regbase 生效,其他芯片保持原有逻辑。 5. **Golden/TestSpec 合入**:沿用仓库统一形态,将 Kernel/GEIR、ACLNN 和下游 torch 五个注册键分别并入 Add/Inplace 现有 tests/assets/golden.py,保留旧式 __golden__ 与旧 SoC 计算语义。 模板准入优先级为:空归约 → 转置 → R 全载 → 多核切 R → SplitD fallback;不改变原 R 全载(key=1000)与 SplitD(key=2000)的既有路径。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/5173 ## 测试 - Ascend 950 双算子 package 使用 -j8 构建通过。 - ATK V2.1 精度集:Trans 400/400、SplitAR 400/400 PASS;NPU/A100 分别对 CPU 标杆的三输出比较及 OOB 检查全部通过。 - SplitAR 修复定向验证:已知失败 16/16、tile 边界 5/5、扩展 shape 26/26、符号归并模拟 12288/12288 PASS;修改前后共同用例无 PASS→FAIL 回退。 - 精简门槛合法矩阵 20/20 PASS,覆盖 key 1000/2000/3000/4000/5000、FP16/BF16/FP32 和 ACLNN empty fast return。 - 当前修订 ACLNN 接口 UT 15/15 PASS:覆盖 regbase 必要参数校验,以及 Ascend950/310P/910B/910_93 的 NCL 兼容性;pre-commit 通过。构建并行度为 8。 - 上述板侧精度、性能和合法门槛结果来自此前验证;本次格式兼容性修复尚未在远端 310P3 重跑完整 Llama2 冒烟。 - Golden 最小复核:pre-commit 全通过;TTK spec loader 五键全部加载;fp16/fp32、旧/新 SoC 代表路径中新旧 golden 数值一致。 - 本地 pre-commit(clang-format、codespell、OAT)及远端 Git Hooks 全部通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9234 | 14 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11330 merge fix/arch35-4ops-round3-golden into master fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 优化GroupNormSiluQuant、INTrainingUpdateGrad、L2NormalizeGrad三算子的golden规范性和资料 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6318 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11330 | 13 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11237 merge quality/l2-normalize-golden-20260923 into master perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 加固 L2Normalize 的 Ascend 950 实现与独立精度基准,仅修改本算子的两个 arch35 kernel 头文件和 tests/assets/golden.py。 - Base 路径:FP16 长归约按 64-lane 分组进行补偿求和,降低串行累加开销;屏蔽 Inf/NaN 引起的无效补偿残差,保留主累加值的特殊值传播。 - Group 路径:第三阶段按分母槽位与归约块重新分配所有核,改善大归约、少分组场景的并行度;保留跨阶段同步。 - Golden:使用独立 NumPy FP64 真值核,全计算链不提前降精度;对齐轴归一化/去重,保留独立 PyTorch 标杆,移除本算子未交付的 ACLNN 注册。 - 不修改 REG_OP、Host/Tiling、公开接口及公共构建文件。 ## 关联的Issue 关联 Issue #6229:https://gitcode.com/cann/ops-nn/issues/6229 ## 测试 - 本地 CI 已通过:定向 pre-commit、Ascend 950/910b 编译及实际存在的 Host UT;CANN 9.0.0 隔离环境编译通过,构建并行度不超过 8。 - 分阶段定向精度回归:Base 161/161(特殊值防护前);最终版本特殊值 24/24、对照 64/64、大 shape 1/1、历史慢用例 41/41、固定输入 4/4,通过。以上包含交叉用例,不作为唯一用例数相加。 - 最终版本 GEIR 常量 6/6、动态 6/6 通过。 - TTK 所有测试显式单进程,Golden 未因性能优化而降级或放宽阈值。 - 额外性能补集 211/211 cross_check 精度通过,全部 BINARY_MATCH;本次补测没有引起源码或 Golden 修改。 - 正式性能:254 个独立用例中 252 个非空用例全部计时、2 个空 Tensor 标记 N/A;5 条完全重复记录去重,没有按性能过滤用例。Ascend 950 release binary 对比 A100 的 torch.compile(fullgraph=True) F.normalize,raw G/N(fold=1)平均 2.589133,最低 0.172636,均通过 mean≥1.2、min≥0.1 的门槛。 - NPU 5 次采样排除首样本、余下 4 次取中位;GPU 20 次预热、20 次 NVTX 范围内 CUDA kernel 总耗时取中位,不计 Host 时间。252 条 NPU 原始采样均与明细核对一致,GPU 逐例 compiled/eager 校验通过。最保守 GPU 最小采样 / NPU 最大稳态采样的全体最小比值为 0.170783。 - 性能比较保持 shape/dtype/属性一致,但 GPU/NPU 输入数组并非逐位相同;本轮 kernel 性能结果不代替历史 GEIR 通路缺失的 GPU 性能对照。 ## 文档更新 算子接口和产品支持范围未变;本 PR 不修改 README。测试与性能证据在独立迭代交付件中更新,不混入源码仓库。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:独立高精度 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11237 | 15 天前 | |
fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11330 merge fix/arch35-4ops-round3-golden into master fix: 规范化 GroupNormSiluQuant 等 4 算子 golden, 补 ING/ITG 形状校验与资料 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 优化GroupNormSiluQuant、INTrainingUpdateGrad、L2NormalizeGrad三算子的golden规范性和资料 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6318 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11330 | 13 天前 | |
perf(layer_norm): check fusion pass platform before pattern construction Co-authored-by: wangpengbo<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !11299 merge ln_onnx33 into master perf(layer_norm): check fusion pass platform before pattern construction Created-by: wangpengbo26 Commit-by: wangpengbo Merged-by: cann-robot Description: ## 描述 将 LayerNormFusionPass、LayerNormInferenceFusionPass、LayerNormONNXFusionPass、LayerNormONNXMULFusionPass 和 LayerNormRemoveBroadcastFusionPass 五条融合规则的平台校验从 MeetRequirements() 前移到 Patterns() 开头。不支持的平台或平台信息获取失败时返回空 pattern,避免构造 pattern(分别为 32、64、96、40、1 个)及后续结构匹配;移除匹配结果过滤阶段的重复平台查询。 ### 改动原因 平台校验原先位于 MeetRequirements()(匹配结果过滤阶段): - 不支持的平台下仍会完整构造 pattern(五条规则合计 233 个)并参与结构匹配,产生无谓开销; - MeetRequirements() 在每次匹配回调中重复查询平台信息。 平台信息在图编译期间不变,校验一次即可,前移到 Patterns() 入口可将不支持平台的整体开销降到最低。 ### 改动方法 五条规则统一调整: 1. Patterns() 开头增加 IsSupportedPlatform() 校验:不支持的平台或平台信息获取失败时直接返回空 pattern 列表。 2. 移除 MeetRequirements() 中的 IsSupportedPlatform() 重复校验。 涉及文件(5 个,+16 -16): - norm/layer_norm/op_graph/fusion_pass/layer_norm_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layernorm_inference_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_mul_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp(+4 -4) ## 关联的Issue -https://gitcode.com/cann/ops-nn/issues/6262 ## 测试 pass ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11299 | 14 天前 | |
feat(layer_norm_grad_v3/layer_norm_grad): 新增空tensor场景empty regbase模板 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10771 merge lngv3_empty into master feat(layer_norm_grad_v3/layer_norm_grad): 新增空tensor场景empty regbase模板 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 为 LayerNormGradV3 与 LayerNormGrad 两个算子新增空 tensor 场景的 empty regbase 模板(tiling 优先级 400,tiling key 900),在 regbase 平台直接拦截所有空 tensor 场景。 **背景**:基类 GetShapeAttrsInfo 对 dy 每维做 dim <= 0 校验,空 tensor 会直接导致整个 tiling 失败。本模板对该路径进行支持。 **改动内容**: - tiling:新增 empty 模板,入口条件为 regbase 且 (row==0 || col==0);完整镜像基类 shape/dtype 校验,仅放宽 dim==0;N<=1024 单核(nPerCore=nTailCore=col),N 较大时沿 N 轴多核切分(CeilDiv + max(vlFp32));nAlign UB 内切分:单核取 col,多核 nMax>nPerCore 取 nPerCore 否则按 512B 向下对齐;tilingdata 全字段无条件显式赋值(col=0 场景全 0,不保留随机值);workspace 用户段为 0,系统段从 GetLibApiWorkSpaceSize 接口获取 - kernel(arch35):空 tensor 场景 pd_x 恒为空无需计算,仅对 pd_gamma/pd_beta 填 0;Init 判断尾核存成员变量并计算 loop/尾块,col==0 或 dgamma/dbeta 均不需要时 Init/Process 直接退出;每块经高阶 API Duplicate 填 0 后按需 CopyOut;整链路 int64_t 防大 N 溢出 - 注册:LayerNormGradV3_900 / LayerNormGrad_900 TilingData、EMPTY_REGBASE 枚举、apt kernel 入口 key 900 分支 - 测试资产:新增两算子 tests/assets/golden.py(TTK 真值插件)——V3 注册 kernel/GEIR、aclnn(aclnnLayerNormBackward)、e2e(aten.native_layer_norm_backward) 四模式真值,LNG 注册 kernel/GEIR;统一 CPU aten 计算,未开 Promote 整体 fp32、开启后整体升档 fp64;LNG eps 与 tiling 一致(原始 x 为 FLOAT 取 1e-12 否则 1e-5) - 文档:aclnnLayerNormBackward.md 参数表各 Tensor 参数使用说明补充"支持空Tensor"标注;layer_norm_grad_v3 README 参数表各参数补充"支持空Tensor"并在表下注明 A3/A2 产品不支持;layer_norm_grad README 参数表"不支持空Tensor"改为"支持空Tensor"(约束说明章节均保持原状) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6005 ## 测试 - clang-format 本地自检:新增/修改文件 0 违规 - 后续验证:ascend950 编包 + ST/UT(row=0 / col=0 / 全空 × output_mask 组合 × fp32/fp16/bf16) ## 文档更新 无需更新文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10771 | 20 天前 | |
docs: 统一原型注释中的产品名称(master) Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !11186 merge 923soc into master docs: 统一原型注释中的产品名称(master) Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 原型注释里的产品名称仍沿用 Series Product、Ascend 950 AI Processor、Ascend 950PR/Ascend 950DT 等旧表述,与当前产品命名不一致。本次只改注释,不改算子接口和计算逻辑。 合入目标:cann/ops-nn 的 master。 覆盖各算子 op_graph/*_proto.h,以及 common/inc/op_graph/op_nn_proto_extend.h、common/stub/op_graph/math_proto_stub.cpp。 ## 关联的Issue 关联 Issue #6213(Close #6213) https://gitcode.com/cann/ops-nn/issues/6213 ## 测试 仅修改原型注释中的产品名称,不涉及算子 host/kernel 计算逻辑,无需算子泛化。已在本地用仓库 pre-commit 的 end-of-file-fixer 与 clang-format 核对格式,且没有改动算子输入、输出和属性定义。 ## 文档更新 更新了 op_graph 原型注释中的产品名称,无独立 markdown 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11186 | 15 天前 | |
fix: 补齐 layer_norm_quant GetScaleAndOffset 中 UB 复用缺失的 S->MTE2 同步 Co-authored-by: gcw_mJtIrnnZ<wuyifan67@h-partners.com> # message auto-generated for no-merge-commit merge: !11277 merge fix/layer_norm_quant_s_mte2_sync into master fix: 补齐 layer_norm_quant GetScaleAndOffset 中 UB 复用缺失的 S->MTE2 同步 Created-by: gcw_mJtIrnnZ Commit-by: gcw_mJtIrnnZ Merged-by: cann-robot Description: ## 描述 两次 DataCopy 之间只有 MTE2→S 方向的同步,缺少 S→MTE2 反向同步,补齐 layer_norm_quant GetScaleAndOffset 中 UB 复用缺失的 S->MTE2 同步。 ## 关联的Issue 关联Issue [#6220](https://gitcode.com/cann/ops-nn/issues/6220) ## 测试 UT测试、ATK测试验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11277 | 15 天前 | |
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 | 21 天前 | |
perf(layer_norm): check fusion pass platform before pattern construction Co-authored-by: wangpengbo<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !11299 merge ln_onnx33 into master perf(layer_norm): check fusion pass platform before pattern construction Created-by: wangpengbo26 Commit-by: wangpengbo Merged-by: cann-robot Description: ## 描述 将 LayerNormFusionPass、LayerNormInferenceFusionPass、LayerNormONNXFusionPass、LayerNormONNXMULFusionPass 和 LayerNormRemoveBroadcastFusionPass 五条融合规则的平台校验从 MeetRequirements() 前移到 Patterns() 开头。不支持的平台或平台信息获取失败时返回空 pattern,避免构造 pattern(分别为 32、64、96、40、1 个)及后续结构匹配;移除匹配结果过滤阶段的重复平台查询。 ### 改动原因 平台校验原先位于 MeetRequirements()(匹配结果过滤阶段): - 不支持的平台下仍会完整构造 pattern(五条规则合计 233 个)并参与结构匹配,产生无谓开销; - MeetRequirements() 在每次匹配回调中重复查询平台信息。 平台信息在图编译期间不变,校验一次即可,前移到 Patterns() 入口可将不支持平台的整体开销降到最低。 ### 改动方法 五条规则统一调整: 1. Patterns() 开头增加 IsSupportedPlatform() 校验:不支持的平台或平台信息获取失败时直接返回空 pattern 列表。 2. 移除 MeetRequirements() 中的 IsSupportedPlatform() 重复校验。 涉及文件(5 个,+16 -16): - norm/layer_norm/op_graph/fusion_pass/layer_norm_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layernorm_inference_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_mul_fusion_pass.cpp(+3 -3) - norm/layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp(+4 -4) ## 关联的Issue -https://gitcode.com/cann/ops-nn/issues/6262 ## 测试 pass ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11299 | 14 天前 | |
fix(lp_norm_reduce): 加固 Ascend950 边界与极大 p 性能 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11238 merge quality/lp-norm-reduce-golden-20260923 into master fix(lp_norm_reduce): 加固 Ascend950 边界与极大 p 性能 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 基于已合入的 LpNormReduce 实现,补齐独立 FP64 Golden 与 Kernel/GEIR 测试资产,规范 kernel 入口命名,修复 Host 超大 shape 字节跨度及 16KiB 归约树缓存容量边界;对 p≥2^31 的极大有限正整数幂增加 FP32 饱和等价快捷路径,并增加编译型 A100 第三方性能对照插件。Golden 数值公式未改,支持面仍仅 Kernel/GEIR,不新增 aclnn、e2e 或 Torch 算子接口。 ## 关联的Issue #6246 https://gitcode.com/cann/ops-nn/issues/6246 ## 测试 - CANN 9.2.0 / Ascend950PR,受控仅本算子构建 jobs4 通过,部署两套 vendor 路径的本算子 binary/source 逐文件一致;预提交格式、ruff、OAT 和远端 Git hooks 通过。 - Golden/Host 定向 CPU 与元数据边界测试通过;普通8/8、大 shape 单条1/1及代表性24条有效原始 PASS;极大 p 风险10/10、特殊值6/6原始 PASS。 - 冻结 Kernel200:200条 BINARY_MATCH、内存与同例 A100/NPU设备计时有效;原始精度198 PASS/2 FAIL,两条 FAIL 经独立复核均为相邻1 ULP,原始 TTK FAIL 保留。raw G/N 最小0.123777506、均值0.979005841,全部达到0.1门槛。 - 冻结 GEIR50:静态和动态图同例三方最终50/50原始 PASS,保守 raw G/N 最小0.120204724、均值0.658032303。主队列 A100 隧道断线的原始8 FAIL及额外1条动态图 GOLDEN_FAILURE 保留;9条故障窗口加2条构建重叠窗口用例定向复测11/11原始 PASS,逐例来源和原始CSV见迁移 PR https://gitcode.com/raoliang_sac/MyCodeWork/merge_requests/2。 - TTK 每次显式 --pc=1。仓库旧 pre-push 钩子会越过本任务≤8并行上限,误触发后已定向停止;已完成受控定向构建和设备验证,源码推送仅跳过该不合规本地钩子,未声称它通过。 ## 文档更新 更新算子 README 与测试资产说明;正式迭代交付及原始证据边界见 https://gitcode.com/zl_hw/myOpen/merge_requests/8。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11238 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
fix(lp_norm_v2): 补齐 INFER_SHAPE 返回值检查 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !11311 merge fix/lpnormv2-infer-shape-ret into master fix(lp_norm_v2): 补齐 INFER_SHAPE 返回值检查 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 LpNormV2 算子 op_api 层(norm/lp_norm_v2/op_api/lp_norm_v2.cpp)调用 INFER_SHAPE 宏后未检查返回值: - INFER_SHAPE 宏的值即 InferShape 的 aclnnStatus 返回码,未检查时推导失败的错误会被静默吞掉,算子继续走 ADD_TO_LAUNCHER_LIST_AICORE,报错时机滞后且信息缺失 - 对齐仓内主流写法(nll_loss / smooth_l1_loss_v2 / convolution 等):失败时 OP_LOGE 报 ACLNN_ERR_PARAM_INVALID 并返回 nullptr - ADD_TO_LAUNCHER_LIST_AICORE 返回值变量重命名为 retAicore 避免重定义 注:shape 推导结果经 InferShapeContext 直接回写输出张量,不受本次改动影响,本次仅补齐错误传播路径。 ## 关联的Issue 无 ## 测试 - g++ -fsyntax-only 语法检查通过(CANN 9.2.0 头文件) - pre-commit 本地自检通过(clang-format / codespell / OAT 合规) - 写法与 nll_loss.cpp、smooth_l1_loss.cpp 现网已验证模式一致 ## 文档更新 无需更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11311 | 14 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
fix: 修复 MSELossV2/MultilabelMarginLoss arch35 规约精度, 规范化 4 算子 golden Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11252 merge fix/arch35-4ops-round2 into master fix: 修复 MSELossV2/MultilabelMarginLoss arch35 规约精度, 规范化 4 算子 golden Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11252 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
[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 | 1 个月前 | |
fix: 修复quantize_add_layer_norm A5算子精度问题 Co-authored-by: boes129<chenqi185@huawei.com> # message auto-generated for no-merge-commit merge: !10976 merge fix/quantize_add_layer_norm_tail_mask into master fix: 修复quantize_add_layer_norm A5算子精度问题 Created-by: boes129 Commit-by: boes129 Merged-by: cann-robot Description: ## 描述 issue #6041:在 Ascend 950真实芯片上,1218 条精度用例中 282 条未通过。失败分成三组: - **A 组 13 条**:误差很大(y 最大绝对差 128~255),全部出现在"列数不是 64 的倍数"的形状上,走 Full-load 实现分支(tiling key 8012;tiling key 是算子按形状和属性选择实现分支的编号); - **B 组 255 条**:量化输出 y 与参考答案(golden)差 ±1; - **C 组 20 条**:x 输出(残差相加结果)与参考答案的求和顺序不一致。 本 MR 修复 A 组和 C 组的根因,并对 B 组给出判定口径的实测证据(结论:B 组不是算子算错,见"测试"一节)。 ### 1. 尾块 mask 丢失(A 组根因) 背景:950 的向量单元一次处理 64 个 float32,这 64 个位置叫 64 个 lane。一条向量指令可以带一个 mask(有效 lane 数),指定本次只处理前 N 个元素。算子的均值/方差计算用二分相加对一行求和:把一行切成两段对折累加,每段再按每块 64 个元素循环;列数不是 64 的倍数时,最后一块只有不足 64 个有效元素,这块叫尾块。 以 cols=224 为例:224 = 128 + 96,96 = 1 个整块 + 32 个剩余元素,尾块应按 32 个有效元素执行。09-17 的代码整理提交(408730285)把尾块搬进独立函数时,在函数内部重新生成了一份 mask 计数,取的是完整的 96 而不是剩余的 32,于是尾块从此无条件按满 64 个 lane 执行,多出的 32 个位置发生越界读和越界写。 后果与 issue 报告的现象一一对应: 1. 越界读把下一行开头的数据和 bias 缓冲越界区的无效内容一起累进本行的均值/方差,所有用例的统计量都被污染; 2. 每个 tile(一次搬进片上缓存的行块)的最后一行读得更远,越过输入块读到未初始化的片上缓存,统计量完全错误; 3. 越界写把错误数据写进下一行的中间缓冲,y 的前 32 列整列出错;不同 core 读到的残留内容不同,错误按 core 成片出现。 列数是 64 的倍数时尾块本身就是满块,mask 给 64 和给真实值没有区别——这解释了 282 条失败恰好都是列数不是 64 倍数的用例。 修复:不再依赖"mask 计数会被硬件指令自动递减"这个隐式行为,在尾块处显式重新计算有效元素数(tailCnt = remainder − (remainderLoop−1)×vlFp32);输出量化循环 VFCalcYQuant 改为逐块计算 mask;同时约束了 gamma/beta/scale 尾块的装载范围。写法与仓库里 add_layer_norm_grad 的既有代码一致。 ### 2. 真卡 example driver examples/arch35 新增图模式(graph 模式)驱动程序。这个数值路径需要 graph 模式才能执行,而 graph 模式在模拟器上被直接拒绝,所以合入前它没有任何真机验证手段——这正是这次回归没能在合入前被发现的原因。今后同类改动可以用它在真实芯片上先自测。 ### 3. 代表例回放模式 驱动支持用环境变量 QALN_CASE_DIR 指向 issue 代表例目录,按原始的 dtype/形状/属性(含 zero_points、additional_output)重放维护者保存的原始输入,并把 y/x 输出落盘,用于逐字节比对。 ### 4. 残差求和顺序(C 组) 三个 float 相加,相加顺序不同,结果的最后几位可能不同。x 输出要做逐位比对,相加顺序必须与参考一致。查证:910 系芯片的两个既有实现(normal_kernel、single_row_kernel)都是 (x1+x2)+bias,与冻结的参考答案一致;arch35 实现算的是 (x2+bias)+x1,与家族其他成员不一致。 修复:新增本算子私有的装载头 quantize_add_layer_norm_regbase_residual.h——(x1+x2)+bias 顺序的装载实现 LoadInputsToRegWithBiasResidualFirst、按 bias 属性分派的 dispatcher LoadInputsToRegResidualFirst(bias 为 none 的分支复用家族共享的 LoadInputsToRegWithBiasNone,两操作数相加不存在结合顺序问题)、以及 VFWelfordParallelUpdate 的本地变体(家族共享版逐字拷贝,唯一差异是装载调用改走本地 dispatcher;UpdateMask 的 sreg POST_UPDATE 递减语义原样保留)。本算子 arch35 的全部装载调用点(stats 家族 12 处、welford kernel 1 处、helper 转发 1 处)切换到本地版本。 ### 5. cleancode 仓库代码规范要求单个函数不超过 50 行、单个头文件不超过 500 行(均按非空、非注释的代码行数统计,下称 nbnc)。本 MR 触及的全部文件均达标。 ## 关联的Issue 关联Issue [#6041](https://gitcode.com/cann/ops-nn/issues/6041) ## 测试 全部在 950 真实芯片上执行。 **三组版本对照**:用同一组确定性输入,分别跑三个版本的代码:orig(MR #8234 原始合入形态)、master(当前 master,含引入回归的整理提交)、fix(本 MR);每个输出都与用 fp64 精度在 CPU 上重算的参考逐元素比对。 | 版本 | 672×224(224 不是 64 的倍数) | 640×256(256 是 64 的倍数) | | ----------------- | ------------------------------------------------------------ | ---------------------------- | | orig(9c3460faa) | 全对 | 全对 | | master(91d4c13a1) | 22.9% 的元素出错,最大差 72,672/672 行都有错;错误按 64 列块聚集(各块出错行数 [672,186,71,74,80,147,162],第一块最多) | 全对 | | fix | 全对,输出与 orig **逐字节相同** | 全对(三个版本输出逐字节相同) | 这组实验同时回答两个问题:回归是整理提交引入的(原始 MR 无错);修复没有引入任何新的数值变化(恢复到原始行为)。 **issue 代表例固定输入复验**:用维护者附件保存的原始输入重放;比对工具先在维护者保存的设备输出上自检,逐例复现了 issue 上报的错误数,证明比对方法本身正确。表中"无回转参考"指"量化前不做低精度回转"的参考实现(B 组口径,见后)。 | 例 | y vs 冻结 golden(修复前→后) | y vs 无回转参考 | x(逐位) | | ----------------------------------- | --------------------------- | --------------- | ------------------------------------------------------------ | | L2_903 fp16+zp [1300,800] | 96280/max157 → **0** | **0** | (该例 additional_output=0) | | L2_941 fp32 [3,224,224] | 52479/max186 → **0** | **0** | **与 golden 同序,602112/602112 逐位相等**(修复前是另一种顺序) | | L1_169 fp32 [179,13,163] | 0 → 0 | 0 | **与 golden 同序,1517204/1517204 逐位相等** | | L2_520 fp16 / L2_760 bf16 [1,10152] | 1 / 10(不变,±1) | **0** | 两种求和顺序下逐位相同;y+x 与维护者设备输出**逐字节相同**(单行路径零扰动) | **282 条失败配置全量重放**:282 条里只有 5 条有保存的原始输入,其余按每条例子的原始取值范围重新生成输入(种子固定、可复现),所以这里验证的是机制本身。结果:y 输出 282/282 相对无回转参考最大差不超过 1(254 条逐元素全等,28 条各有 1~16 个 ±1,来自两个合法 fp32 求和实现在取整边界上的固有差异);x 输出 163 条 additional_output 用例逐位全等(含 fp16 最大值 65504 的极值例);A 组代表用例的错误数从几万~几百万降到个位数(L2_918 254,678→1、L2_944 54,053→1、L1_563 2,576,551→4)。 **标准流程(TTK)282 全量复验**:TTK(ops-test-kit)是 CANN 官方算子测试框架,维护者的报告就是用它生成的;这里用同一套工具、同一份 golden 插件、同一条判据重放 282 条。结果:越界检测(把设备内存初始化成 NaN 来抓越界访问)282/282 通过;x 输出按交叉校验 L1 标准 163/163 全过;y 相对无回转 golden 265 条逐位全等、17 条 ±1(与首轮复跑 262/20 的条数浮动来自 TTK 输入生成的非确定,±1 桶归属不变),按《昇腾算子精度标准》量化类判据(平均误差 ≤1)282/282 通过;A 组 13 条从最大差 128~255 降到不超过 1。 **按精度标准 §2 生成规则自建 L1 级套件(10000 例)**:282 条只覆盖报告里失败的配置;为验证机制在完整输入分布下的表现,按《昇腾算子精度标准》第 2 节的生成规则自建了 10000 例:均匀分布 5000 例 + 正态分布 5000 例,fp16/bf16/fp32 各三分之一,列数同时覆盖 64 倍数与非 64 倍数(以边界值为主、加随机形状),zero_points 与 additional_output 各一半,scales 正负各半,并含强制离群值子集。判据按标准:y 用量化判据(平均误差 ≤1),x 用交叉校验 L1。结果(在最终代码 c6e0fb460 上整体重跑):**y 10000/10000 全部一次通过;x 5017/5017 全过;越界检测 10000/10000 通过;无一例数值失败、无一例编译失败**(此前一轮曾出现 2 例 kernel 运行时编译偶发失败,重跑后数值全过,已排除形状触发)。附一个与数值无关的观察:TTK 的预编译二进制运行模式对"zero_points 缺失"的配置匹配不到二进制(def 自动生成 binary 路线的覆盖缺口,约半数用例),数值判定所用的源码编译运行模式全部正常,供算子包构建侧参考。 ## 类型标签 - [x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10976 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
refactor: 代码规范整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !11305 merge ccc_0928 into master refactor: 代码规范整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次提交对 log_softmax_v2、softmax_v2、add_rms_norm_cast、add_rms_norm_quant、rms_norm 五个算子目录及脚本 scripts/util/parse_changed_files.py 进行代码规范整改。 ### 改动原因 1. 部分文件的版权声明头仍为旧版格式(Copyright 2025 及旧 License 措辞),需统一为 2026 年新版规范格式。 2. 部分源文件(.cpp/.h/.py/.json/CMakeLists.txt)文末缺少换行符以及代码格式,不符合代码检查要求。 3. 部分 Python 测试脚本存在代码风格问题:单双引号混用、docstring 风格不统一、字典格式冗余、未使用的 import/变量、行尾空白。 ### 改动方法 1. 统一版权声明头为 2026 年新版格式,并规范化 License 措辞。 2. 为文末缺少换行符的文件补齐换行。 3. 规范化 Python 代码风格:统一双引号、docstring 采用 """、精简字典格式、清理未使用的 import 与变量、去除行尾空白。 ## 关联的Issue 关联 Issue #6287 ## 测试 本次为代码规范整改与脚本逻辑修正,不涉及算子功能变更;相关算子测试用例逻辑未改动。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范整改(copyright 头、文末换行、Python 格式) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11305 | 5 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
docs: 修正 aclnnRmsNormGradQuant 参数空 Tensor 支持描述 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !11195 merge ccc_0924 into master docs: 修正 aclnnRmsNormGradQuant 参数空 Tensor 支持描述 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修正 aclnnRmsNormGradQuant 算子文档中 scalesX 与 offsetXOptional 两个输入参数关于空 Tensor 支持的描述,使其与实际实现保持一致。 - scalesX:由"支持空Tensor"修正为"不支持空Tensor" - offsetXOptional:由"支持空Tensor"修正为"不支持空Tensor",并补充"支持空指针传入;不为空时,shape为[1],维度为1" ## 关联的Issue 关联 Issue #6214 ## 测试 纯文档改动,无需测试。 ## 文档更新 更新了 norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11195 | 19 天前 | |
docs(norm): 删除 RmsNormQuant 返回码表中的冗余产品说明 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11265 merge docs/rmsnorm-quant-product-differences into master docs(norm): 删除 RmsNormQuant 返回码表中的冗余产品说明 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 基于 master a609d99e6(已包含 !10865),整改 !10865 的评审意见:“表格里不能区分产品差异化描述,无法打产品标签”。 仅修改 norm/rms_norm_quant/docs/aclnnRmsNormQuant.md: - 删除返回码表中带 Ascend 950 产品限定的空 Tensor 说明,不再在表格外重复增加产品专属说明。 - 返回码表减少一行,将两处 rowspan 从 3 改为 2。 - 参数表中 x、gamma、beta、scale、offset、y 的“不支持空Tensor”约束全部保留;保留原有类型及 shape 关系的返回码描述。 V1/V2/V3 的三份 README 和两份公开 ACLNN 文档已核对,此次仅 V1 存在所述返回码单元格问题。V2 公开调用入口引用 aclnnRmsNormQuant 文档,V3 返回码表没有产品差异单元格,无需同步改动。 纯文档精简,不改变空 Tensor 拦截、返回码、接口原型、调用示例或任何平台的计算行为。 ## 关联的Issue 关联 #6248;已合入 !10865 的文档评审意见后续整改。 ## 测试 - git diff --check 通过。 - 六个参数的“不支持空Tensor”说明与 master 一致;接口原型、调用示例代码块未变。 - HTML 参数/返回码表中无产品名称或产品标签,返回码合并行数正确;保留产品标签 ID 唯一且起止配对。 - 基础检查、拼写检查及 OAT 提交检查通过。 - 通用 validate_operator_docs.py 在前一轮因算子子目录独立 CMake 配置缺少仓级 add_graph_plugin_sources 命令而失败,不记为通过;本次未调整构建系统,未重新运行该不适配的全量校验器。 - 纯文档修改,未执行算子编译、NPU 回归或全量本地 CI。 ## 文档更新 删除 aclnnRmsNormQuant.md 中冗余的产品专属空 Tensor 返回码说明,保留参数约束。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11265 | 15 天前 | |
fix(norm): 补齐 RmsNormQuant 参数校验与可选输出推导 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10865 merge fix/rmsnorm-quant-family-scan-issues into master fix(norm): 补齐 RmsNormQuant 参数校验与可选输出推导 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 Ascend 950/RegBase 上 RmsNormQuant 系列的参数校验遗漏、错误分类和可选输出推导问题。合并原扫描整改与返回码/日志整改;不修改 kernel 计算、tiling key 或 AddRmsNormQuant V1/V2 产品代码。 ### 问题、原因与效果 - 本 PR 先前提交已包含:V1 非一维 scale 只记录错误却继续执行;V3 标量 x/y 缺少最小维度检查;V2/V3 缺省 scales2 时 y2 仍推导完整形状的修复。V2/V3 通过 GetOptionalInputShape(INPUT_SCALE2_IDX) != nullptr 判断第二路是否实际提供:标量 scales2=[] 仍有非空 shape 对象,因此按已提供处理并推导 y2=x.shape;只有真正未提供 scales2 时才使用 y2=[1] 占位。 - 本轮补充:非法二维 gamma/beta 在 reshape 后才失败,以及 V3 部分非法 dtype、shape 组合到下层才失败,最终被包装为 561103 内部空指针错误。TTK 基于原 PR 提交 3fce33f2c 部署实测 34 条此类输入返回 561103;改为在 RegBase API 层检查并返回 161002。 - 这不是把所有内部错误统一改成参数错误:真正的内部构建失败仍保留原错误处理;必选 nullptr 仍为 161001,空 Tensor 为 161002。V3 可选 offset/beta 和未请求的 rstd 保留合法空值语义。 - 保留 gamma/beta 的 [H]、[1,H] 合法组合、scale 长度 1/H、INT32 打包 INT4 和有效 rstd 的形状约定;当 x 为一维时,rstd 保留 [1] 和标量两种历史表示;原生 GEIR 的多轴归一化能力不套用 ACLNN 的末轴限制。 - 修正 V1 offset 日志误写成 scale 的文本,以及共用 RegBase tiling 支持类型日志漏写 INT4。没有据此宣称发现合法输入的数值计算错误。 - 补充整改 RmsNormQuantV2/V3 的 zero_points2 单独提供场景:旧代码已经拒绝该组合,但使用内部错误上报,并在外层重复记录相同原因。改为 EZ0037 用户参数错误,明确提供 zero_points2 时必须提供 scales2;去掉外层重复日志,仍返回 GRAPH_FAILED,不新增限制、不放宽支持范围。此规则不套用到支持该组合的 AddRmsNormQuant V1/V2。 - TTK 进一步复现了 V3 原有 GEIR 功能缺陷:output_rstd=false 时 InferDataType 不写必需输出 rstd 的 dtype,初始 DT_UNDEFINED 导致 GE EZ3002 拒绝执行。改为始终推导 DT_FLOAT,只补输出元数据,不开启 rstd 计算;原先错误断言“false 时不应写 dtype”的 UT 同步纠正。 - 两条 aclnnRmsNormQuantV3GetWorkspaceSize 边界对照确认:offset 为标量、以及 H=1 时 beta 为标量,修改前 ACLNN 实现返回成功,修改后依公开接口的形状约束返回 161002;合法 H=1 的 [1]、[1,1] norm 参数前后均通过。这两条属于 ACLNN 非法输入校验遗漏,不混记为 561103 分类修正。 ### 每个文件的修改、目的及前后效果 | 文件 | 修改前的问题 → 修改及效果 | | --- | --- | | norm/rms_norm_quant/op_host/op_api/aclnn_rms_norm_quant.cpp | 原 scale rank 日志后遗漏返回,补 return false;本轮仅 RegBase 提前拒绝首维不为 1 的二维 gamma/beta、非法 scale 长度,将用户形状错误从 561103 纠正为 161002;修正 offset dtype 日志主体。 | | norm/rms_norm_quant/tests/ut/op_host/op_api/test_aclnn_rms_norm_quant.cpp | 增加 scale rank、二维首维、scale/offset 形状负向 UT;覆盖合法二维组合及 scale 模式、必选 nullptr、910B/910_93 原预处理行为。 | | norm/rms_norm_quant/docs/aclnnRmsNormQuant.md | 补全 950 gamma/beta、scale、offset 类型和返回码说明,明确 INT32 打包输出的形状例外,避免把产品差异写成所有平台通用约束。950 空 Tensor 的错误条件并入 161002 返回码表,不重复解释修复历史;明确 gamma、beta 均支持 [H] 或 [1,H],两者维度数不要求相同。非 950 的 scale=[1] 约束并入对应产品的 dtype 说明,删除重复产品列表。 | | norm/rms_norm_quant_v2/op_host/rms_norm_quant_v2_infershape.cpp | 无 scales2 时 y2 原先仍推导为 x;改为通过 GetOptionalInputShape(INPUT_SCALE2_IDX) != nullptr 判断可选输入是否存在,真正缺省时推导 [1] 无效占位,标量 scales2=[] 仍识别为已提供并推导 x 形状。 | | norm/rms_norm_quant_v2/tests/ut/op_host/test_rms_norm_quant_v2_infershape.cpp | 补缺省 scales2 与标量 scales2=[] 的 y2 推导断言,分别验证 [1] 占位和 y2=x.shape 分支。 | | norm/rms_norm_quant_v2/op_host/rms_norm_quant_v2_tiling_regbase_base.cpp | 输出类型检查已支持 INT4,但错误原因列表漏写,补齐支持类型日志;zero_points2 单独提供原先以内部错误上报且重复记录,改用 OP_LOGE_FOR_INVALID_ARGUMENT_WITH_REASON 上报 EZ0037,并删除外层重复日志。拒绝条件、GRAPH_FAILED、tiling 计算及 GEIR shape 能力不变。 | | norm/rms_norm_quant_v2/op_graph/rms_norm_quant_v2_proto.h | 原图原型未明确缺省第二路的输出语义;补充 y2 无效占位约定。 | | norm/rms_norm_quant_v2/README.md | 简要同步 y2 缺省场景,不堆入 ACLNN 详细校验规则。 | | norm/rms_norm_quant_v3/op_api/aclnn_rms_norm_quant_v3.cpp | 原最小 rank、dtype/组合、beta 及输出形状检查不完整;保留原 PR 的最小 rank 修复,本轮仅 RegBase 增加完整的所述 dtype/shape 检查,非法输入返回 161002;仅 outputRstd=true 校验 rstd。x 为一维时兼容标量 rstd,二维及以上 x 不适用此特例,dtype、空 Tensor、空指针检查不变。 | | norm/rms_norm_quant_v3/tests/ut/op_api/test_aclnn_rms_norm_quant_v3.cpp | 分别断言标量 x/y;补 dtype、shape、INT4/INT32 打包负向,合法 dtype 组合、rank 边界、可选空指针和不启用 rstd 时的占位正向。另新增 3 个 UT / 37 组参数检查,覆盖一维 scalar/[1]、三种 x dtype、H=1/16、二维/三维 x 拒绝 scalar、错误 dtype/空输出及未启用 rstd 的占位。 | | norm/rms_norm_quant_v3/docs/aclnnRmsNormQuantV3.md | 将已补检查的用户参数错误由 561103 调整为 161002;整除/比例错误改为“或者”,明确空 Tensor、打包形状及 rstd 生效条件,参数名与公开接口对齐;补充一维 x 对应标量 rstd 的合法形状,秩范围改为 0-8,返回码表同步这一例外。 | | norm/rms_norm_quant_v3/op_host/rms_norm_quant_v3_infershape.cpp | 通过非空可选输入 shape 指针区分 scales2 缺省与标量:缺省时推导 y2=[1],未知秩分支也保留占位;标量 scales2=[] 及其他已提供形状均推导 y2=x.shape。另修复 output_rstd=false 时 rstd 的 dtype 未设置导致 GE 拒绝的问题,始终推导 FLOAT,不改变是否计算 rstd。 | | norm/rms_norm_quant_v3/tests/ut/op_host/test_rms_norm_quant_v3_infershape.cpp | 覆盖 scales2 缺省、标量 []、普通形状及未知秩分支;纠正原 false 场景错误的 dtype 期望;从初始 UNDEFINED 验证 5 种 dst_type × true/false 和属性缺省的完整输出类型推导。 | | norm/rms_norm_quant_v3/tests/ut/op_host/test_rms_norm_quant_v3_tiling.cpp | 新增 1 个 UT,覆盖 output_rstd 开/关 × scales2 有/无 × zero_points2 有/无,共 8 种组合,断言 zero_points2-only 拒绝、其余组合成功;V2 既有 mismatch UT 同时回归。 | | norm/rms_norm_quant_v3/op_graph/rms_norm_quant_v3_proto.h | 同步 y2 占位语义,使图原型与 InferShape 一致。 | | norm/rms_norm_quant_v3/README.md | 简要同步 y2 占位约定。 | ### 兼容性边界 - 本轮新增 dtype/shape 检查只在 IsRegbase() 分支调用;不改 A2/A3 原有预处理和计算路径。 - zero_points2 日志整改仅在 V2/V3 的 RegBase tiling 路径生效;两者入口已通过 IsRegbaseSocVersion() 限定平台,不修改 A2/A3 路由及行为,也不改 kernel。 - 整个 PR 原有 V1 scale rank 修复属于共用检查,因此 A2/A3 的非法非一维 scale 也会由放行变为拒绝;不能将整个 PR 表述为对所有 A2/A3 输入完全无变化。合法输入行为不应改变,UT 验证与实机验证分别列出。 - PR 不包含 ST、TTK 用例、框架修改、日志或构建产物;这些测试资产保存在工作目录 TTK 和任务证据目录。 ## 关联的Issue 关联的Issue:[#6248](https://gitcode.com/cann/ops-nn/issues/6248) Fixes #6248 ## 测试 以下为 2026-09-20 已完成的回归记录;2026-09-21 与 2026-09-23 的增量验证单列在本节末尾,不将旧回归算成本次重新执行。使用工作目录的 TTK(add_ops_onto_master,f78078fb)和 CANN 9.2.0,950 实机;构建最多 -j8,所有 TTK 模式显式 --pc=1,批次串行。按 CSV 原始结果及真实返回码逐条核验,不以 runner exit=0 代替测试通过。 - 69 条负向 API 前后对照全部符合预期:34 条 561103→161002,原 24 条 161002、11 条 161001 保持;另 2 条 aclnnRmsNormQuantV3GetWorkspaceSize 标量边界为 0→161002。记录真实 GetWorkspaceSize 返回码,不用 TTK N/A 冒充 PASS。 - 本 PR 先前提交的 V1 非一维 scale、V3 标量 x/y 共 3 条扫描负向已做“修改前放行、修改后 161002”的 TTK 对照;原始证据保留,与本轮 69+2 条返回码整改分别记录,不重复归为本轮新增修复。 - 74 条合法输入前后均 74/74 PASS;合法 H=1 的 2 条输入前后均 PASS;另补 12 条非均匀 leading-one gamma/beta 输入,覆盖 x rank 1/2/3、beta rank 1/2 和 half/BF16/float,固定 seed=11027,旧/新 API 前后各 12/12 PASS。三组共 88 条合法场景前后均通过,有效输出精度达标比例 100%;未请求输出为 SUPPRESSED,无百分比。 - 最终 UT:op-host 51/51、op-api 39/39。V1/V3 API 行覆盖率分别 88.5%、97.5%,V3 推导文件 94.9%;函数覆盖率分别 93.3%、92.3%、100%,未采集分支覆盖率。 - 新增原生 kernel 58/58、GEIR 58/58 全部 PASS,有效输出精度达标比例 100%。覆盖多轴归一化、单/双路、rstd 开关、INT8/INT4/HIFLOAT8/FP8 E5M2/FP8 E4M3FN;GEIR rstd=false 旧代码失败→修复后通过的原始日志保留。 - GEIR 6 条非法形状全部按预期拒绝,错误为 EZ0010(参数形状错误),分别指出 scales1/x、scales1/zeroPoints1、gamma/x 的不匹配,不计入精度 PASS。 - 既有四套 ACLNN 各 500/500 PASS,共 2000 条,Add shape 20/20 PASS。Rms 两套有效输出精度达标比例 100%,Add 两套为 99.4791666667%~100%。Add 的现有 CSV 设置 ptol=0.01(最多 1% 元素可超 1 LSB),本轮未调整;不能把 PASS 等同于每个元素都 ≤1 LSB,旧回归也存在该现象。 - 既有四套 kernel 各 500 条全部执行:RmsNormQuantV2 为 370 PASS/130 未匹配,RmsNormQuantV3 为 340/160,AddRmsNormQuant 为 352/148,AddRmsNormQuantV2 为 360/140。1422 个已注册 dtype 组合全部 BINARY_MATCH 且精度 PASS,有效输出比例 100%;578 条未匹配均为当前 950 OpDef 未注册的 dtype 组合,保留 BINARY_MATCH_FAILURE/FAIL 原始结果,不算 PASS。 - 旧 aclnnRmsNormQuantV2 资产 1 条为 OP_API_NOT_FOUND,不算精度 PASS;950 的公开 V2 计算入口是 aclnnRmsNormQuant,已由其 500 条回归覆盖。 - 定向完整包构建通过;后续 dtype 修复用 --jit -j8 重编主机库,部署新 proto 并保留已验证的 API/tiling/kernel,实际加载路径已核对。整个 PR 15 文件基础检查/OAT 通过;未执行全仓本地 CI,未将跳过的全文件 clang-format 声称为通过。 截至 2026-09-20,既有全量及新增 kernel/GEIR 批次合计 4143 条记录:3558 条精度 PASS、578 条未注册 binary 组合、6 条预期拒绝、1 条不可用 API。上述 71 条返回码对照及 88 条合法输入前后对照另行统计,不重复堆入通过数。当时用例资产为 18 个 CSV、4244 行;资产行数也不等于通过数。最终自动核验覆盖资产 SHA256、完整行数、真实返回码、注册组合匹配和精度状态,全部符合上述预期。 本轮将 TTK Golden 对 ACLNN 二维 gamma 的归一化轴修正为公开接口的末轴语义,并增加 6 条 CPU 回归,相关 Golden/量化比较 CPU 测试共 45 PASS;没有放宽精度容差。GEIR 的原生多轴能力保留,不能复用 ACLNN 的轴限制。 上一版 GEIR runner 的 rc=-11 已定位到本机 Python 日志任务查询问题,可用不依赖 CANN 的最小程序复现;结合 TTK 的栈限制设置,仅在任务启动环境内处理。GEIR 能真正执行后又复现上述 V3 dtype 产品缺陷,并完成修复后 58 条正向回归;没有将产品缺陷归咎于环境,也没有把绕过 runner 崩溃本身算作算子通过。 2026-09-21,提交 b5ff65c07 的 zero_points2-only 日志整改补测: - 修改前为 313ed0c99 对应已部署产物,修改后重新以 --pkg -j8 构建相关算子包并部署到同一工作目录 CANN;包内和实际加载的 tiling 库 SHA256 一致。API/proto 库 SHA256 与修改前一致。 - 新增 2 个本地 TTK CSV:3 条非法组合、9 条合法组合,不进入本 PR。使用相同固定输入前后对照,所有批次显式 --pc=1。 - GEIR 3 条非法组合覆盖 V2、V3 output_rstd=false/true:前后均拒绝。修改前错误文本由 CheckOptionalInput/GetShapeAttrsInfo 重复记录,GE 对外为 E90003;修改后明确报 Invalid_Argument(EZ0037),指出 zero_points2 存在时缺少 scales2,且删除外层重复日志。负向 CSV 保留 EXEC_FAILURE,不算精度 PASS、没有精度百分比。Golden 不支持非法组合而报 TypeError 的原始记录也保留;拒绝结论来自其后实际 GEIR 执行的 tiling/RunGraph 日志,不来自 Golden 失败。 - 合法组合覆盖单路、仅 scales2、scales2+zero_points2,分别运行 V2、V3 rstd 开/关。GEIR 修改前 9/9、修改后 9/9 PASS;kernel binary 修改前 9/9、修改后 9/9 BINARY_MATCH 且精度 PASS。有效输出精度达标比例均为 100%,INT8 按绝对误差不超过 1 LSB 且 ptol=0 判断,rstd 使用 atol/rtol=1e-4;未请求输出为 SUPPRESSED。kernel 的 tilingKey、匹配 kernel 名保持一致,TTK 输出的越界检查通过;不据此宣称逐位一致。 - 此次重新执行 UT:op_host 52/52、op_api 39/39;新增 V3 UT 含 8 种组合,V2 既有 mismatch UT 通过。最终 16 个 PR 文件的基础检查/OAT 通过;新增 UT 范围格式化完成,全文件 clang-format 为跳过。未重新执行旧 4143 条批次,也未执行全仓本地 CI;本次共 36 条正向执行记录及 6 条预期拒绝记录,单独统计。 - 该非法第二路组合属于原生 V2/V3 图接口,公开 aclnnRmsNormQuant / aclnnRmsNormQuantV3 只有单路 scale/offset,无法直接传入该组合;本次用 GEIR 检查拦截和日志,同时回归 API UT,不伪造对应 ACLNN 实机测试。 2026-09-21,提交 520c75e4b 的一维 x / 标量 rstd 兼容补测: - TTK 对照确认:相同 x=[16]、rstd=[] 场景,旧 API 成功,PR 增加严格 shape 校验后返回 161002,本次修复恢复成功;y/rstd 的有效输出精度达标比例均为 100%。仅调整 RegBase ACLNN 的 shape 判断,不修改 kernel、tiling 或 A2/A3 路径。 - 增量 ACLNN 库编译成功;API UT 42/42 通过,包括新增 3 个 UT / 37 组参数检查。 - 新增 41 条 TTK 定向用例已保存于工作目录用例库:32 条正向 PASS,有效输出精度达标比例 100%;9 条非法输入均真实返回 161002,保留 TTK N/A,不算精度 PASS。未请求的 rstd 标记 SUPPRESSED。 - 先完成原有 500 条回归;随后将原有资产与历次补充资产纳入统一入口,于 2026-09-21 20:46–20:50 重新执行累计 640 条 V3 ACLNN 用例(7 份输入 CSV):580 条正向全部 PASS,GetWorkspaceSize/执行均返回 0,有效输出精度达标比例均为 100%;60 条负向全部符合真实返回码预期,其中 55 条 161002、5 条 161001,均不进入执行阶段,不计入精度 PASS。640 条包含前述 500 条和本次 41 条,不重复累计。 - 累计入口保存在工作目录 TTK 的 examples/regression/rms_norm_quant_v3_950_aclnn.py:自动收集同族输入 CSV 中的 V3 用例,排除结果 CSV,检查重名/禁用/负向预期缺失,记录逐例来源及源文件 SHA256;新增问题用例继续沉淀到 TTK,不进入产品 PR。 - 实测通过指定 API 动态库隔离此次 API 改动,使用同一工作目录 CANN 的 host/kernel;动态库依赖已核对为真实 CANN 库而非构建 stub。未重新执行 kernel/GEIR 全量或全仓本地 CI。 2026-09-23,提交 879de1f52 的标量 scales2 与 A3 兼容性补测: - V2、V3 InferShape UT 均显式传入标量 scales2=[],验证 GetOptionalInputShape(INPUT_SCALE2_IDX) 返回非空 shape 指针,y2 推导为 x 形状;缺省 scales2 的独立用例仍推导 [1] 占位。 - 950 实机 TTK GEIR 定向 4/4 PASS,所有命令显式 --pc=1:V2 覆盖二维/三维 x,V3 覆盖 output_rstd=false/true。V2 两个输出均为 100%;V3 未请求 rstd 时为 SUPPRESSED,请求 rstd 时三个输出均为 100%。这组实测确认标量不会被误判为缺省输入。 - A3 (Ascend910_9362) 使用同一提交独立编译、刷入任务专用 CANN/vendor 后,RmsNormQuant 合法 ACLNN 矩阵 22/22 P See merge request: cann/ops-nn!10865 | 15 天前 | |
fix(norm): 补齐 RmsNormQuant 参数校验与可选输出推导 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10865 merge fix/rmsnorm-quant-family-scan-issues into master fix(norm): 补齐 RmsNormQuant 参数校验与可选输出推导 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 Ascend 950/RegBase 上 RmsNormQuant 系列的参数校验遗漏、错误分类和可选输出推导问题。合并原扫描整改与返回码/日志整改;不修改 kernel 计算、tiling key 或 AddRmsNormQuant V1/V2 产品代码。 ### 问题、原因与效果 - 本 PR 先前提交已包含:V1 非一维 scale 只记录错误却继续执行;V3 标量 x/y 缺少最小维度检查;V2/V3 缺省 scales2 时 y2 仍推导完整形状的修复。V2/V3 通过 GetOptionalInputShape(INPUT_SCALE2_IDX) != nullptr 判断第二路是否实际提供:标量 scales2=[] 仍有非空 shape 对象,因此按已提供处理并推导 y2=x.shape;只有真正未提供 scales2 时才使用 y2=[1] 占位。 - 本轮补充:非法二维 gamma/beta 在 reshape 后才失败,以及 V3 部分非法 dtype、shape 组合到下层才失败,最终被包装为 561103 内部空指针错误。TTK 基于原 PR 提交 3fce33f2c 部署实测 34 条此类输入返回 561103;改为在 RegBase API 层检查并返回 161002。 - 这不是把所有内部错误统一改成参数错误:真正的内部构建失败仍保留原错误处理;必选 nullptr 仍为 161001,空 Tensor 为 161002。V3 可选 offset/beta 和未请求的 rstd 保留合法空值语义。 - 保留 gamma/beta 的 [H]、[1,H] 合法组合、scale 长度 1/H、INT32 打包 INT4 和有效 rstd 的形状约定;当 x 为一维时,rstd 保留 [1] 和标量两种历史表示;原生 GEIR 的多轴归一化能力不套用 ACLNN 的末轴限制。 - 修正 V1 offset 日志误写成 scale 的文本,以及共用 RegBase tiling 支持类型日志漏写 INT4。没有据此宣称发现合法输入的数值计算错误。 - 补充整改 RmsNormQuantV2/V3 的 zero_points2 单独提供场景:旧代码已经拒绝该组合,但使用内部错误上报,并在外层重复记录相同原因。改为 EZ0037 用户参数错误,明确提供 zero_points2 时必须提供 scales2;去掉外层重复日志,仍返回 GRAPH_FAILED,不新增限制、不放宽支持范围。此规则不套用到支持该组合的 AddRmsNormQuant V1/V2。 - TTK 进一步复现了 V3 原有 GEIR 功能缺陷:output_rstd=false 时 InferDataType 不写必需输出 rstd 的 dtype,初始 DT_UNDEFINED 导致 GE EZ3002 拒绝执行。改为始终推导 DT_FLOAT,只补输出元数据,不开启 rstd 计算;原先错误断言“false 时不应写 dtype”的 UT 同步纠正。 - 两条 aclnnRmsNormQuantV3GetWorkspaceSize 边界对照确认:offset 为标量、以及 H=1 时 beta 为标量,修改前 ACLNN 实现返回成功,修改后依公开接口的形状约束返回 161002;合法 H=1 的 [1]、[1,1] norm 参数前后均通过。这两条属于 ACLNN 非法输入校验遗漏,不混记为 561103 分类修正。 ### 每个文件的修改、目的及前后效果 | 文件 | 修改前的问题 → 修改及效果 | | --- | --- | | norm/rms_norm_quant/op_host/op_api/aclnn_rms_norm_quant.cpp | 原 scale rank 日志后遗漏返回,补 return false;本轮仅 RegBase 提前拒绝首维不为 1 的二维 gamma/beta、非法 scale 长度,将用户形状错误从 561103 纠正为 161002;修正 offset dtype 日志主体。 | | norm/rms_norm_quant/tests/ut/op_host/op_api/test_aclnn_rms_norm_quant.cpp | 增加 scale rank、二维首维、scale/offset 形状负向 UT;覆盖合法二维组合及 scale 模式、必选 nullptr、910B/910_93 原预处理行为。 | | norm/rms_norm_quant/docs/aclnnRmsNormQuant.md | 补全 950 gamma/beta、scale、offset 类型和返回码说明,明确 INT32 打包输出的形状例外,避免把产品差异写成所有平台通用约束。950 空 Tensor 的错误条件并入 161002 返回码表,不重复解释修复历史;明确 gamma、beta 均支持 [H] 或 [1,H],两者维度数不要求相同。非 950 的 scale=[1] 约束并入对应产品的 dtype 说明,删除重复产品列表。 | | norm/rms_norm_quant_v2/op_host/rms_norm_quant_v2_infershape.cpp | 无 scales2 时 y2 原先仍推导为 x;改为通过 GetOptionalInputShape(INPUT_SCALE2_IDX) != nullptr 判断可选输入是否存在,真正缺省时推导 [1] 无效占位,标量 scales2=[] 仍识别为已提供并推导 x 形状。 | | norm/rms_norm_quant_v2/tests/ut/op_host/test_rms_norm_quant_v2_infershape.cpp | 补缺省 scales2 与标量 scales2=[] 的 y2 推导断言,分别验证 [1] 占位和 y2=x.shape 分支。 | | norm/rms_norm_quant_v2/op_host/rms_norm_quant_v2_tiling_regbase_base.cpp | 输出类型检查已支持 INT4,但错误原因列表漏写,补齐支持类型日志;zero_points2 单独提供原先以内部错误上报且重复记录,改用 OP_LOGE_FOR_INVALID_ARGUMENT_WITH_REASON 上报 EZ0037,并删除外层重复日志。拒绝条件、GRAPH_FAILED、tiling 计算及 GEIR shape 能力不变。 | | norm/rms_norm_quant_v2/op_graph/rms_norm_quant_v2_proto.h | 原图原型未明确缺省第二路的输出语义;补充 y2 无效占位约定。 | | norm/rms_norm_quant_v2/README.md | 简要同步 y2 缺省场景,不堆入 ACLNN 详细校验规则。 | | norm/rms_norm_quant_v3/op_api/aclnn_rms_norm_quant_v3.cpp | 原最小 rank、dtype/组合、beta 及输出形状检查不完整;保留原 PR 的最小 rank 修复,本轮仅 RegBase 增加完整的所述 dtype/shape 检查,非法输入返回 161002;仅 outputRstd=true 校验 rstd。x 为一维时兼容标量 rstd,二维及以上 x 不适用此特例,dtype、空 Tensor、空指针检查不变。 | | norm/rms_norm_quant_v3/tests/ut/op_api/test_aclnn_rms_norm_quant_v3.cpp | 分别断言标量 x/y;补 dtype、shape、INT4/INT32 打包负向,合法 dtype 组合、rank 边界、可选空指针和不启用 rstd 时的占位正向。另新增 3 个 UT / 37 组参数检查,覆盖一维 scalar/[1]、三种 x dtype、H=1/16、二维/三维 x 拒绝 scalar、错误 dtype/空输出及未启用 rstd 的占位。 | | norm/rms_norm_quant_v3/docs/aclnnRmsNormQuantV3.md | 将已补检查的用户参数错误由 561103 调整为 161002;整除/比例错误改为“或者”,明确空 Tensor、打包形状及 rstd 生效条件,参数名与公开接口对齐;补充一维 x 对应标量 rstd 的合法形状,秩范围改为 0-8,返回码表同步这一例外。 | | norm/rms_norm_quant_v3/op_host/rms_norm_quant_v3_infershape.cpp | 通过非空可选输入 shape 指针区分 scales2 缺省与标量:缺省时推导 y2=[1],未知秩分支也保留占位;标量 scales2=[] 及其他已提供形状均推导 y2=x.shape。另修复 output_rstd=false 时 rstd 的 dtype 未设置导致 GE 拒绝的问题,始终推导 FLOAT,不改变是否计算 rstd。 | | norm/rms_norm_quant_v3/tests/ut/op_host/test_rms_norm_quant_v3_infershape.cpp | 覆盖 scales2 缺省、标量 []、普通形状及未知秩分支;纠正原 false 场景错误的 dtype 期望;从初始 UNDEFINED 验证 5 种 dst_type × true/false 和属性缺省的完整输出类型推导。 | | norm/rms_norm_quant_v3/tests/ut/op_host/test_rms_norm_quant_v3_tiling.cpp | 新增 1 个 UT,覆盖 output_rstd 开/关 × scales2 有/无 × zero_points2 有/无,共 8 种组合,断言 zero_points2-only 拒绝、其余组合成功;V2 既有 mismatch UT 同时回归。 | | norm/rms_norm_quant_v3/op_graph/rms_norm_quant_v3_proto.h | 同步 y2 占位语义,使图原型与 InferShape 一致。 | | norm/rms_norm_quant_v3/README.md | 简要同步 y2 占位约定。 | ### 兼容性边界 - 本轮新增 dtype/shape 检查只在 IsRegbase() 分支调用;不改 A2/A3 原有预处理和计算路径。 - zero_points2 日志整改仅在 V2/V3 的 RegBase tiling 路径生效;两者入口已通过 IsRegbaseSocVersion() 限定平台,不修改 A2/A3 路由及行为,也不改 kernel。 - 整个 PR 原有 V1 scale rank 修复属于共用检查,因此 A2/A3 的非法非一维 scale 也会由放行变为拒绝;不能将整个 PR 表述为对所有 A2/A3 输入完全无变化。合法输入行为不应改变,UT 验证与实机验证分别列出。 - PR 不包含 ST、TTK 用例、框架修改、日志或构建产物;这些测试资产保存在工作目录 TTK 和任务证据目录。 ## 关联的Issue 关联的Issue:[#6248](https://gitcode.com/cann/ops-nn/issues/6248) Fixes #6248 ## 测试 以下为 2026-09-20 已完成的回归记录;2026-09-21 与 2026-09-23 的增量验证单列在本节末尾,不将旧回归算成本次重新执行。使用工作目录的 TTK(add_ops_onto_master,f78078fb)和 CANN 9.2.0,950 实机;构建最多 -j8,所有 TTK 模式显式 --pc=1,批次串行。按 CSV 原始结果及真实返回码逐条核验,不以 runner exit=0 代替测试通过。 - 69 条负向 API 前后对照全部符合预期:34 条 561103→161002,原 24 条 161002、11 条 161001 保持;另 2 条 aclnnRmsNormQuantV3GetWorkspaceSize 标量边界为 0→161002。记录真实 GetWorkspaceSize 返回码,不用 TTK N/A 冒充 PASS。 - 本 PR 先前提交的 V1 非一维 scale、V3 标量 x/y 共 3 条扫描负向已做“修改前放行、修改后 161002”的 TTK 对照;原始证据保留,与本轮 69+2 条返回码整改分别记录,不重复归为本轮新增修复。 - 74 条合法输入前后均 74/74 PASS;合法 H=1 的 2 条输入前后均 PASS;另补 12 条非均匀 leading-one gamma/beta 输入,覆盖 x rank 1/2/3、beta rank 1/2 和 half/BF16/float,固定 seed=11027,旧/新 API 前后各 12/12 PASS。三组共 88 条合法场景前后均通过,有效输出精度达标比例 100%;未请求输出为 SUPPRESSED,无百分比。 - 最终 UT:op-host 51/51、op-api 39/39。V1/V3 API 行覆盖率分别 88.5%、97.5%,V3 推导文件 94.9%;函数覆盖率分别 93.3%、92.3%、100%,未采集分支覆盖率。 - 新增原生 kernel 58/58、GEIR 58/58 全部 PASS,有效输出精度达标比例 100%。覆盖多轴归一化、单/双路、rstd 开关、INT8/INT4/HIFLOAT8/FP8 E5M2/FP8 E4M3FN;GEIR rstd=false 旧代码失败→修复后通过的原始日志保留。 - GEIR 6 条非法形状全部按预期拒绝,错误为 EZ0010(参数形状错误),分别指出 scales1/x、scales1/zeroPoints1、gamma/x 的不匹配,不计入精度 PASS。 - 既有四套 ACLNN 各 500/500 PASS,共 2000 条,Add shape 20/20 PASS。Rms 两套有效输出精度达标比例 100%,Add 两套为 99.4791666667%~100%。Add 的现有 CSV 设置 ptol=0.01(最多 1% 元素可超 1 LSB),本轮未调整;不能把 PASS 等同于每个元素都 ≤1 LSB,旧回归也存在该现象。 - 既有四套 kernel 各 500 条全部执行:RmsNormQuantV2 为 370 PASS/130 未匹配,RmsNormQuantV3 为 340/160,AddRmsNormQuant 为 352/148,AddRmsNormQuantV2 为 360/140。1422 个已注册 dtype 组合全部 BINARY_MATCH 且精度 PASS,有效输出比例 100%;578 条未匹配均为当前 950 OpDef 未注册的 dtype 组合,保留 BINARY_MATCH_FAILURE/FAIL 原始结果,不算 PASS。 - 旧 aclnnRmsNormQuantV2 资产 1 条为 OP_API_NOT_FOUND,不算精度 PASS;950 的公开 V2 计算入口是 aclnnRmsNormQuant,已由其 500 条回归覆盖。 - 定向完整包构建通过;后续 dtype 修复用 --jit -j8 重编主机库,部署新 proto 并保留已验证的 API/tiling/kernel,实际加载路径已核对。整个 PR 15 文件基础检查/OAT 通过;未执行全仓本地 CI,未将跳过的全文件 clang-format 声称为通过。 截至 2026-09-20,既有全量及新增 kernel/GEIR 批次合计 4143 条记录:3558 条精度 PASS、578 条未注册 binary 组合、6 条预期拒绝、1 条不可用 API。上述 71 条返回码对照及 88 条合法输入前后对照另行统计,不重复堆入通过数。当时用例资产为 18 个 CSV、4244 行;资产行数也不等于通过数。最终自动核验覆盖资产 SHA256、完整行数、真实返回码、注册组合匹配和精度状态,全部符合上述预期。 本轮将 TTK Golden 对 ACLNN 二维 gamma 的归一化轴修正为公开接口的末轴语义,并增加 6 条 CPU 回归,相关 Golden/量化比较 CPU 测试共 45 PASS;没有放宽精度容差。GEIR 的原生多轴能力保留,不能复用 ACLNN 的轴限制。 上一版 GEIR runner 的 rc=-11 已定位到本机 Python 日志任务查询问题,可用不依赖 CANN 的最小程序复现;结合 TTK 的栈限制设置,仅在任务启动环境内处理。GEIR 能真正执行后又复现上述 V3 dtype 产品缺陷,并完成修复后 58 条正向回归;没有将产品缺陷归咎于环境,也没有把绕过 runner 崩溃本身算作算子通过。 2026-09-21,提交 b5ff65c07 的 zero_points2-only 日志整改补测: - 修改前为 313ed0c99 对应已部署产物,修改后重新以 --pkg -j8 构建相关算子包并部署到同一工作目录 CANN;包内和实际加载的 tiling 库 SHA256 一致。API/proto 库 SHA256 与修改前一致。 - 新增 2 个本地 TTK CSV:3 条非法组合、9 条合法组合,不进入本 PR。使用相同固定输入前后对照,所有批次显式 --pc=1。 - GEIR 3 条非法组合覆盖 V2、V3 output_rstd=false/true:前后均拒绝。修改前错误文本由 CheckOptionalInput/GetShapeAttrsInfo 重复记录,GE 对外为 E90003;修改后明确报 Invalid_Argument(EZ0037),指出 zero_points2 存在时缺少 scales2,且删除外层重复日志。负向 CSV 保留 EXEC_FAILURE,不算精度 PASS、没有精度百分比。Golden 不支持非法组合而报 TypeError 的原始记录也保留;拒绝结论来自其后实际 GEIR 执行的 tiling/RunGraph 日志,不来自 Golden 失败。 - 合法组合覆盖单路、仅 scales2、scales2+zero_points2,分别运行 V2、V3 rstd 开/关。GEIR 修改前 9/9、修改后 9/9 PASS;kernel binary 修改前 9/9、修改后 9/9 BINARY_MATCH 且精度 PASS。有效输出精度达标比例均为 100%,INT8 按绝对误差不超过 1 LSB 且 ptol=0 判断,rstd 使用 atol/rtol=1e-4;未请求输出为 SUPPRESSED。kernel 的 tilingKey、匹配 kernel 名保持一致,TTK 输出的越界检查通过;不据此宣称逐位一致。 - 此次重新执行 UT:op_host 52/52、op_api 39/39;新增 V3 UT 含 8 种组合,V2 既有 mismatch UT 通过。最终 16 个 PR 文件的基础检查/OAT 通过;新增 UT 范围格式化完成,全文件 clang-format 为跳过。未重新执行旧 4143 条批次,也未执行全仓本地 CI;本次共 36 条正向执行记录及 6 条预期拒绝记录,单独统计。 - 该非法第二路组合属于原生 V2/V3 图接口,公开 aclnnRmsNormQuant / aclnnRmsNormQuantV3 只有单路 scale/offset,无法直接传入该组合;本次用 GEIR 检查拦截和日志,同时回归 API UT,不伪造对应 ACLNN 实机测试。 2026-09-21,提交 520c75e4b 的一维 x / 标量 rstd 兼容补测: - TTK 对照确认:相同 x=[16]、rstd=[] 场景,旧 API 成功,PR 增加严格 shape 校验后返回 161002,本次修复恢复成功;y/rstd 的有效输出精度达标比例均为 100%。仅调整 RegBase ACLNN 的 shape 判断,不修改 kernel、tiling 或 A2/A3 路径。 - 增量 ACLNN 库编译成功;API UT 42/42 通过,包括新增 3 个 UT / 37 组参数检查。 - 新增 41 条 TTK 定向用例已保存于工作目录用例库:32 条正向 PASS,有效输出精度达标比例 100%;9 条非法输入均真实返回 161002,保留 TTK N/A,不算精度 PASS。未请求的 rstd 标记 SUPPRESSED。 - 先完成原有 500 条回归;随后将原有资产与历次补充资产纳入统一入口,于 2026-09-21 20:46–20:50 重新执行累计 640 条 V3 ACLNN 用例(7 份输入 CSV):580 条正向全部 PASS,GetWorkspaceSize/执行均返回 0,有效输出精度达标比例均为 100%;60 条负向全部符合真实返回码预期,其中 55 条 161002、5 条 161001,均不进入执行阶段,不计入精度 PASS。640 条包含前述 500 条和本次 41 条,不重复累计。 - 累计入口保存在工作目录 TTK 的 examples/regression/rms_norm_quant_v3_950_aclnn.py:自动收集同族输入 CSV 中的 V3 用例,排除结果 CSV,检查重名/禁用/负向预期缺失,记录逐例来源及源文件 SHA256;新增问题用例继续沉淀到 TTK,不进入产品 PR。 - 实测通过指定 API 动态库隔离此次 API 改动,使用同一工作目录 CANN 的 host/kernel;动态库依赖已核对为真实 CANN 库而非构建 stub。未重新执行 kernel/GEIR 全量或全仓本地 CI。 2026-09-23,提交 879de1f52 的标量 scales2 与 A3 兼容性补测: - V2、V3 InferShape UT 均显式传入标量 scales2=[],验证 GetOptionalInputShape(INPUT_SCALE2_IDX) 返回非空 shape 指针,y2 推导为 x 形状;缺省 scales2 的独立用例仍推导 [1] 占位。 - 950 实机 TTK GEIR 定向 4/4 PASS,所有命令显式 --pc=1:V2 覆盖二维/三维 x,V3 覆盖 output_rstd=false/true。V2 两个输出均为 100%;V3 未请求 rstd 时为 SUPPRESSED,请求 rstd 时三个输出均为 100%。这组实测确认标量不会被误判为缺省输入。 - A3 (Ascend910_9362) 使用同一提交独立编译、刷入任务专用 CANN/vendor 后,RmsNormQuant 合法 ACLNN 矩阵 22/22 P See merge request: cann/ops-nn!10865 | 15 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 20 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 25 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 13 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 19 天前 | ||
| 4 天前 | ||
| 19 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 13 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 19 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 14 天前 | ||
| 13 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 13 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 19 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 13 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 13 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 21 天前 | ||
| 14 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 19 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 9 个月前 |