| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
修复AdaLayerNormQuant跑UT报错的问题 Co-authored-by: chenhaijie1423<chenhaijie2@h-partners.com> # message auto-generated for no-merge-commit merge: !8147 merge AdaLayerNormQuant into master 修复AdaLayerNormQuant跑UT报错的问题 Created-by: chenhaijie1423 Commit-by: chenhaijie1423 Merged-by: cann-robot Description: ## 描述 修复AdaLayerNormQuant跑UT报错的问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4207 ## 测试 只修改了UT,算子本身实现没有修改,UT运行OK ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8147 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
inplace_add_layer_norm: 基于 AddLayerNorm 实现 Ascend 950 支持 Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !8736 merge inplace_aln_k1 into master inplace_add_layer_norm: 基于 AddLayerNorm 实现 Ascend 950 支持 Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 InplaceAddLayerNorm 算子新增 Ascend 950(ascend950 / mc62)支持,且 950 路径额外支持空进空出。 ### 改动原因 - InplaceAddLayerNorm 此前未注册 950 的 OpAICoreConfig,且 tiling 走 Tiling4AddLayerNorm(非 regbase 路径),不支持 950。 ### 改动方法 **1. 算子定义(def.cpp)** - inplace_add_layer_norm_def.cpp:新增 OpAICoreConfig config_950,注册 ascend950,支持 fp16/bf16/fp32 多 dtype 组合,开启动态编译静态/动态 rank/动态 shape。 - add_layer_norm_def.cpp:移除 950 的 ExtendCfgInfo("opFile.value", "add_layer_norm_apt"),统一走通用配置。 **2. tiling** - add_layer_norm_tiling.cpp:InplaceAddLayerNorm 的 tiling 函数从 Tiling4AddLayerNorm 改为 TilingAddLayerNorm(走 regbase 路径,支持 950)。 - add_layer_norm_tiling.h:新增 AddLayerNorm_8010/8011/8012/8200 和 InplaceAddLayerNorm_8000~8200 的 tiling data class 注册(覆盖 950 子型号);新增成员 isReduceEmpty_、方法 CheckInplaceInputsDtype()、SetTilingData()。 - add_layer_norm_tiling_arch35.cpp:新增空张量场景处理、inplace dtype 校验、tiling data 设置逻辑。 **3. kernel** - 新增 norm/add_layer_norm/op_kernel/CMakeLists.txt、norm/inplace_add_layer_norm/op_kernel/CMakeLists.txt:声明 ascend950 编译目标及选项 --cce-no-dcache-flush --cce-simd-vf-fusion=false。 - 新增 arch35/add_layer_norm.cpp、arch35/inplace_add_layer_norm.cpp:kernel 入口。 - 新增 arch35/add_layer_norm_regbase_reduce_empty.h:空张量兜底 kernel,合轴后 R==0 且 A>0 时 mean/rstd 填 NaN,y/x 为空。 - 改 _regbase_common.h / _welford.h / _full_load.h:BUFFER_NUM 默认改为 DOUBLE_BUFFER_NUM=2(双 buffer),VFCalcY 增加 x 输出参数支持 inplace 写出 x,重构 VFCalcMeanVarFast 为 VFAddFrontend。 **4. 配置/文档** - 新增 inplace_add_layer_norm_binary.json(ascend950 binary 配置)。 - ascendc_config.json 移除 AddLayerNorm、InplaceAddLayerNorm 旧全局条目。 - README.md:InplaceAddLayerNorm 在 950 上 ×→√,并新增 950 支持空进空出说明。 ## 关联的Issue #https://gitcode.com/cann/ops-nn/issues/4858 ## 测试 - 泛化验证pass。 ## 文档更新 - norm/inplace_add_layer_norm/README.md:950 支持矩阵 ×→√,新增空进空出说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8736 | 1 个月前 | |
AddLayerNormGrad算子实现Ascend 950支持 Co-authored-by: zhaosusu<zhaosusu1@h-partners.com> # message auto-generated for no-merge-commit merge: !7925 merge master into master AddLayerNormGrad算子实现Ascend 950支持 Created-by: zhaosusu Commit-by: zhaosusu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AddLayerNormGrad算子实现Ascend 950支持,进行性能优化。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4845](https://gitcode.com/cann/ops-nn/issues/4845) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地泛化2000条用例精度通过,性能通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7925 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
fix(add_rms_norm_cast): correct doc formula to match kernel implementation Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !8689 merge fix/add_rms_norm_cast_doc_formula into master fix(add_rms_norm_cast): correct doc formula to match kernel implementation Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 修正 aclnnAddRmsNormCast.md 文档中计算公式的 y1Out/y2Out 计算顺序错误,使其与 kernel 实际实现一致。 当前文档公式写为 y1Out = float(y2Out),即先算 y2Out(b16 RmsNorm 结果)再 cast 到 y1Out(float32)。但实际 kernel 实现(add_rms_norm_cast_regbase_common.h:172-179)是先在 float32 上算出 RmsNorm 结果 y1Out,再 cast 到 b16 得到 y2Out。 修改内容: - 公式:x_i = float(x1) + float(x2) → y1Out = RmsNorm(x_i) → y2Out = cast(y1Out) - y1Out 参数描述:归一化后经过类型转换 → 归一化后的(y1Out 是 RmsNorm 主结果) - y2Out 参数描述:归一化后的 → 归一化后经过类型转换(y2Out 是 cast 结果) ## 关联的Issue 关联 Issue #4796:https://gitcode.com/cann/ops-nn/issues/4796 ## 测试 - pre-commit 全部通过(trailing-whitespace / end-of-file-fixer / codespell / OAT Compliance Check) - 仅修改文档,不涉及代码逻辑变更 ## 文档更新 更新了 norm/add_rms_norm_cast/docs/aclnnAddRmsNormCast.md 的计算公式和参数说明描述。 ## 类型标签 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8689 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
fix(log): 修复 add_rms_norm/add_layer_norm_quant 系列算子日志拼写、标签一致性及v1/v2交叉污染 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8732 merge fix/norm-add-layer-rms-log-quality into master fix(log): 修复 add_rms_norm/add_layer_norm_quant 系列算子日志拼写、标签一致性及v1/v2交叉污染 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 add_rms_norm / add_layer_norm_quant 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在拼写错误、标签大小写不一致、"Tilingdata"大小写错误、v1/v2算子日志交叉污染、Welford算法名拼写错误等问题。 ### 改动方法 - add_rms_norm_tiling_arch35.cpp/.h:133/127 — "gama" → "gamma" - add_rms_norm_dynamic_quant_infershape.cpp:130 — v1日志误写 "AddRmsNormDynamicQuantV2" → "AddRmsNormDynamicQuant" - add_rms_norm_dynamic_quant_v2_infershape.cpp:121 — v2日志误写 "AddRmsNormDynamicQuant" → "AddRmsNormDynamicQuantV2" - add_rms_norm_dynamic_quant_v2_tiling_arch35.cpp:27 — "AddRmsNormDynamicQuantv2" → "AddRmsNormDynamicQuantV2" - add_layer_norm_quant_tiling.cpp:78 — "unsuccess" → "unsuccessful" - add_layer_norm_quant_tiling_arch35.cpp:176 — "Tilingdata" → "TilingData";:407,412 — "WelFord" → "Welford" 注:arch22 目录下的 add_rms_norm_dynamic_quant_tiling.cpp 和 add_rms_norm_dynamic_quant_v2_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4814 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8732 | 1 个月前 | |
fix(log): 修复 add_rms_norm/add_layer_norm_quant 系列算子日志拼写、标签一致性及v1/v2交叉污染 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8732 merge fix/norm-add-layer-rms-log-quality into master fix(log): 修复 add_rms_norm/add_layer_norm_quant 系列算子日志拼写、标签一致性及v1/v2交叉污染 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 add_rms_norm / add_layer_norm_quant 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在拼写错误、标签大小写不一致、"Tilingdata"大小写错误、v1/v2算子日志交叉污染、Welford算法名拼写错误等问题。 ### 改动方法 - add_rms_norm_tiling_arch35.cpp/.h:133/127 — "gama" → "gamma" - add_rms_norm_dynamic_quant_infershape.cpp:130 — v1日志误写 "AddRmsNormDynamicQuantV2" → "AddRmsNormDynamicQuant" - add_rms_norm_dynamic_quant_v2_infershape.cpp:121 — v2日志误写 "AddRmsNormDynamicQuant" → "AddRmsNormDynamicQuantV2" - add_rms_norm_dynamic_quant_v2_tiling_arch35.cpp:27 — "AddRmsNormDynamicQuantv2" → "AddRmsNormDynamicQuantV2" - add_layer_norm_quant_tiling.cpp:78 — "unsuccess" → "unsuccessful" - add_layer_norm_quant_tiling_arch35.cpp:176 — "Tilingdata" → "TilingData";:407,412 — "WelFord" → "Welford" 注:arch22 目录下的 add_rms_norm_dynamic_quant_tiling.cpp 和 add_rms_norm_dynamic_quant_v2_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4814 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8732 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8734 merge fix/norm-batch-group-instance-log-quality into master fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 batch_norm / group_norm / instance_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在5D格式名错乱(H/W字母互换)、广播日志参数名错误、截断的op名、拼写错误等问题。 ### 改动方法 - aclnn_batch_norm.cpp:169-185 — "NCDWH" → "NCDHW"(4处)、"NDWHC" → "NDHWC"(2处) - aclnn_batch_norm_backward.cpp:183,190 — "NCDWH" → "NCDHW"、"NDWHC" → "NDHWC" - batch_norm_grad_v3_base_tiling.cpp:159 — "HCDHW" → "NDHWC" - batch_norm_grad_v3_tiling_infer_base.cpp:184 — "HCDHW" → "NDHWC" - batch_norm_grad_tiling.cpp:190 — 日志参数 "inputParamNames[i]" → "outputParamNames[i]"(输出shape校验循环) - group_norm_grad_empty_tiling_arch35.cpp:337 — "CalcuTilingData" → "CalculateTilingData" - group_norm_grad_tiling_arch35.cpp:61 — "initing" → "initializing";:788 — 日志标签 "nMainFlodCount" → "nMainFoldCount" - group_norm_grad_tiling.cpp:483 — "initing" → "initializing" - instance_norm_tiling_base_arch35.cpp:241 — "betta" → "beta";:247 — "varience" → "variance";:322 — "Betta" → "Beta" ## 关联的Issue #4816 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8734 | 1 个月前 | |
fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8734 merge fix/norm-batch-group-instance-log-quality into master fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 batch_norm / group_norm / instance_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在5D格式名错乱(H/W字母互换)、广播日志参数名错误、截断的op名、拼写错误等问题。 ### 改动方法 - aclnn_batch_norm.cpp:169-185 — "NCDWH" → "NCDHW"(4处)、"NDWHC" → "NDHWC"(2处) - aclnn_batch_norm_backward.cpp:183,190 — "NCDWH" → "NCDHW"、"NDWHC" → "NDHWC" - batch_norm_grad_v3_base_tiling.cpp:159 — "HCDHW" → "NDHWC" - batch_norm_grad_v3_tiling_infer_base.cpp:184 — "HCDHW" → "NDHWC" - batch_norm_grad_tiling.cpp:190 — 日志参数 "inputParamNames[i]" → "outputParamNames[i]"(输出shape校验循环) - group_norm_grad_empty_tiling_arch35.cpp:337 — "CalcuTilingData" → "CalculateTilingData" - group_norm_grad_tiling_arch35.cpp:61 — "initing" → "initializing";:788 — 日志标签 "nMainFlodCount" → "nMainFoldCount" - group_norm_grad_tiling.cpp:483 — "initing" → "initializing" - instance_norm_tiling_base_arch35.cpp:241 — "betta" → "beta";:247 — "varience" → "variance";:322 — "Betta" → "Beta" ## 关联的Issue #4816 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8734 | 1 个月前 | |
fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8734 merge fix/norm-batch-group-instance-log-quality into master fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 batch_norm / group_norm / instance_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在5D格式名错乱(H/W字母互换)、广播日志参数名错误、截断的op名、拼写错误等问题。 ### 改动方法 - aclnn_batch_norm.cpp:169-185 — "NCDWH" → "NCDHW"(4处)、"NDWHC" → "NDHWC"(2处) - aclnn_batch_norm_backward.cpp:183,190 — "NCDWH" → "NCDHW"、"NDWHC" → "NDHWC" - batch_norm_grad_v3_base_tiling.cpp:159 — "HCDHW" → "NDHWC" - batch_norm_grad_v3_tiling_infer_base.cpp:184 — "HCDHW" → "NDHWC" - batch_norm_grad_tiling.cpp:190 — 日志参数 "inputParamNames[i]" → "outputParamNames[i]"(输出shape校验循环) - group_norm_grad_empty_tiling_arch35.cpp:337 — "CalcuTilingData" → "CalculateTilingData" - group_norm_grad_tiling_arch35.cpp:61 — "initing" → "initializing";:788 — 日志标签 "nMainFlodCount" → "nMainFoldCount" - group_norm_grad_tiling.cpp:483 — "initing" → "initializing" - instance_norm_tiling_base_arch35.cpp:241 — "betta" → "beta";:247 — "varience" → "variance";:322 — "Betta" → "Beta" ## 关联的Issue #4816 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8734 | 1 个月前 | |
BNInferGrad算子问题修复 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8302 merge bn_infer_grad into master BNInferGrad算子问题修复 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 本 PR 修复 BNInferGrad 在转测准入检查中发现的 Golden、数据格式、Shape/Rank 异常拦截及 UT 构建问题,并按 runtime proto.h 的数据格式语义完善 Ascend950 实现。 主要修改: - 对齐格式契约:原型逻辑格式支持 NCHW、NHWC、NC1HWC0;Ascend950 Vector 分支仅支持属于 ND 类格式的 NCHW、NHWC,并显式拒绝 NC1HWC0。 - 按数据格式识别 C 轴:NCHW 取第 2 维,NHWC 取最后一维;校验 scale、batch_variance 均为一维 FP32 Tensor,且长度等于 C 轴大小。 - 完善 Tiling 输入/输出校验:拦截不支持的 dtype/format、输入间格式不一致、输出 shape/dtype/format 与 grads 不一致,以及 grads rank 不在 2~5 范围内等异常场景。 - 修复空 Tensor Golden:空输入直接返回同 shape、同 dtype 的空输出,避免调用 PyTorch BatchNorm backward 时出现异常。 - 更新 NCHW/NHWC GEIR 示例、Tiling UT、README,并修复 op_host UT CMake 对 arch35 用例的收集问题。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4595 ## 测试 - bash build.sh -u --cov --ophost -f pr_filelist.txt -j16:通过 - Ascend950 Tiling UT:29/29 通过 - InferShape UT:3/3 通过 - 行覆盖率:87.5%(537/614) - 函数覆盖率:92.9%(144/155) - 静态 GEIR:NCHW FP16、NHWC BF16 场景通过 - 动态 GEIR:动态 Shape、动态 Rank 场景通过 - git diff --check:通过 - PR 当前检查状态:api-check-pass、ci-pipeline-passed ## 文档更新 - 更新 norm/bn_infer_grad/README.md,补充原型格式、Ascend950 Vector 格式限制、C 轴规则及输出约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8302 | 1 个月前 | |
BatchNormReduce算子在ascend 950 NPU上支持ascendc实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8543 merge bn_training_reduce into master BatchNormReduce算子在ascend 950 NPU上支持ascendc实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 本 PR 为 BNTrainingReduce 算子在 Ascend 950PR/Ascend 950DT(arch35)新增 AscendC 实现。算子对四维 NCHW 输入沿 N、H、W 轴归约,按通道输出元素和 sum 与平方和 square_sum。 主要改动: - 新增 BNTrainingReduce 算子原型、OpDef 注册及图级 InferShape/InferDataType;输入支持 FLOAT16、BFLOAT16、FLOAT + NCHW,两个输出固定为 FLOAT + ND,Shape 为 [C]。 - 新增 arch35 Host Tiling,实现基于 Shape、DType、UB 容量和核数的多核切分,覆盖 normal、group、tail 和 empty 等执行分支。 - 新增 AscendC Kernel,实现 sum_c = Σ(n,h,w) x[n,c,h,w] 与 square_sum_c = Σ(n,h,w) x[n,c,h,w]^2;FLOAT16/BFLOAT16 输入按 FLOAT 精度执行平方与累加,并处理空 Tensor。 - 调整 ACLNN 文件目录与构建配置,新增 Ascend 950 ACLNN 两段式调用示例。 - 新增 GEIR 静态/动态 Shape、未知 Rank、数据类型/格式/非法输入及特殊值场景的验证代码。 - 更新算子 README、aclnnBatchNormReduce 产品支持说明和中英文算子清单。 本次变更共涉及 27 个文件,新增 6373 行、删除 33 行。 ## 关联的Issue 关联 Issue #4715:https://gitcode.com/cann/ops-nn/issues/4715 ## 测试 已补充以下验证资产: - ACLNN:新增 aclnnBatchNormReduceGetWorkspaceSize + aclnnBatchNormReduce 两段式调用示例。 - GEIR:新增静态/动态 Shape 与未知 Rank 执行框架,覆盖 FLOAT16、BFLOAT16、FLOAT、NCHW 输入、FLOAT/ND 输出、空 Tensor、NaN/Inf 及非法 Rank/Format/DType 等场景。 - Host/API UT:同步修正 ACLNN UT 的 include 路径以适配目录调整。 当前 PR 描述未附可独立核对的全量执行报告;最终结果以仓库 CI、复测记录及未解决检视意见闭环为准。 ## 文档更新 - 更新 norm/bn_training_reduce/README.md,补充功能、公式、参数、约束和调用说明。 - 更新 norm/bn_training_reduce/docs/aclnnBatchNormReduce.md,声明 Ascend 950PR/Ascend 950DT 支持。 - 更新 docs/zh/op_api_list.md、docs/zh/op_list.md 及对应英文算子清单。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8543 | 1 个月前 | |
[bugfix] 修复bn_training_update_v2算子资料格式问题 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !8766 merge master into master [bugfix] 修复bn_training_update_v2算子资料格式问题 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 修复bn_training_update_v2算子资料格式问题,将html中不兼容md格式的 x调整为<code>x</code> <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 仅资料格式修改,不涉及测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了ops-nn/norm/bn_training_update_v2/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8766 | 1 个月前 | |
feat: A5新增BNTrainingUpdateV3算子 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !8778 merge BNTrainingUpdateV3 into master feat: A5新增BNTrainingUpdateV3算子 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 本 PR 新增 BNTrainingUpdateV3 算子,实现批归一化训练前向的 update 阶段(Batch Normalization Training Update V3)。给定 BNTrainingReduce 产出的逐通道 sum/square_sum,结合 scale 与 offset 对输入 x 做归一化仿射变换,输出 y 及本 batch 统计量 batch_mean/batch_variance(无偏)、reserve_1(save_mean)、reserve_2(save_variance,有偏),适用于不含 moving average 更新的场景,与 BNTrainingReduce 配套使用。 ### 改动原因 补充 A5平台上 BN 训练 update 阶段的算子能力,覆盖 fp16/fp32/bf16 输入与动态 shape/rank 场景。 ### 改动方法 - op_graph: bn_training_update_v3_proto.h 通过 REG_OP 注册算子原型(5 输入 x/sum/square_sum/scale/offset、必选属性 epsilon、5 输出 y/batch_mean/batch_variance/reserve_1/reserve_2),与 canndev built-in 定义一致。 - op_host: - bn_training_update_v3_def.cpp 以 OpDef 注册 ascend950 vendor:x/y 支持 FLOAT16/FLOAT32/BF16(ND),sum/square_sum/scale/offset 及四路统计量输出恒为 FLOAT32;开启 DynamicCompileStatic、DynamicRank、DynamicShape 支持,PrecisionReduce=true。 - bn_training_update_v3_infershape.cpp 实现 gert infershape 2.0:y shape/dtype 同 x,四路统计量输出同 scale;支持 unknown rank 早退。 - arch35/bn_training_update_v3_tiling_arch35.* 实现单条 ND 计算路径(tilingKey=0)的 tiling:plane(N*C)按 unitCores 均分(former/latter),plane 不足时 inner 维再切 innerCores 份;numRecip 与 batchVarScaler 以 fp64 计算后舍入 fp32(对齐 A2 TBE 语义);无 workspace。 - op_kernel:arch35/bn_training_update_v3.{h,cpp} 实现 per-channel 仿射系数(multiplier/addend)广播计算 y,fp16/bf16 输入升 fp32 计算后单次舍入写回。 - 测试:UT tests/ut/op_host/arch35/test_bn_training_update_v3_tiling.cpp 覆盖 tiling;ST tests/st/arch35/ttk_kernel_bn_training_update_v3.csv;tests/assets/golden.py 提供 golden;examples/arch35/test_geir_bn_training_update_v3.cpp 提供图模式调用样例(含两组 shape/epsilon 用例)。 ## 关联的Issue - #4841 ## 测试 - UT:op_host tiling 单测(test_bn_training_update_v3_tiling.cpp)。 - ST:kernel 端到端用例(ttk_kernel_bn_training_update_v3.csv),golden 由 tests/assets/golden.py 生成。 - 图模式样例:examples/arch35/test_geir_bn_training_update_v3.cpp 含两组 shape/epsilon 用例。 ## 文档更新 - 新增 norm/bn_training_update_v3/README.md,含产品支持情况、功能说明、计算公式、参数说明、约束说明与调用说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8778 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
test: 更新7个算子golden测试数据 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !8510 merge master into master test: 更新7个算子golden测试数据 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 7 个算子的 golden(准确度基准)测试数据,同步最新参考值。 | 模块 | 算子 | 文件 | 变化 | |------|------|------|------| | loss | cosine_embedding_loss | golden.py | +56 | | loss | fused_cross_entropy_loss_with_max_sum | golden.py | +145 | | norm | deep_norm | golden.py | +59 | | norm | deep_norm_grad | golden.py | +77 | | optim | apply_adam_w_quant | golden.py | +68 | | quant | dynamic_quant_update_scatter | golden.py | +54 | | quant | dynamic_quant_update_scatter_v2 | golden.py | +56 | ## 测试 - CI golden 数据一致性验证 ## 类型标签 - [x] 测试 ## 关联的Issue - #4683 See merge request: cann/ops-nn!8510 | 1 个月前 | |
test: 更新deep_norm_grad等4个算子golden测试数据 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !8582 merge codex/golden-upstream-rebased into master test: 更新deep_norm_grad等4个算子golden测试数据 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 4 个算子的 golden 测试数据。 | 算子 | 变化 | |------|------| | deep_norm_grad | +61 -4 | | apply_adam_w_quant | +113 -28 | | dynamic_quant_update_scatter | +3 -3 | | dynamic_quant_update_scatter_v2 | +6 -2 | ## 类型标签 - [x] 测试 ## 关联的Issue - #4730 See merge request: cann/ops-nn!8582 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
EuclideanNorm,AscendAntiQuant 资料增加A2/A3的支持 Co-authored-by: wow5522<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !8889 merge master into master EuclideanNorm,AscendAntiQuant 资料增加A2/A3的支持 Created-by: wow5523 Commit-by: wow5522 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!8889 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8734 merge fix/norm-batch-group-instance-log-quality into master fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 batch_norm / group_norm / instance_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在5D格式名错乱(H/W字母互换)、广播日志参数名错误、截断的op名、拼写错误等问题。 ### 改动方法 - aclnn_batch_norm.cpp:169-185 — "NCDWH" → "NCDHW"(4处)、"NDWHC" → "NDHWC"(2处) - aclnn_batch_norm_backward.cpp:183,190 — "NCDWH" → "NCDHW"、"NDWHC" → "NDHWC" - batch_norm_grad_v3_base_tiling.cpp:159 — "HCDHW" → "NDHWC" - batch_norm_grad_v3_tiling_infer_base.cpp:184 — "HCDHW" → "NDHWC" - batch_norm_grad_tiling.cpp:190 — 日志参数 "inputParamNames[i]" → "outputParamNames[i]"(输出shape校验循环) - group_norm_grad_empty_tiling_arch35.cpp:337 — "CalcuTilingData" → "CalculateTilingData" - group_norm_grad_tiling_arch35.cpp:61 — "initing" → "initializing";:788 — 日志标签 "nMainFlodCount" → "nMainFoldCount" - group_norm_grad_tiling.cpp:483 — "initing" → "initializing" - instance_norm_tiling_base_arch35.cpp:241 — "betta" → "beta";:247 — "varience" → "variance";:322 — "Betta" → "Beta" ## 关联的Issue #4816 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8734 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
规范化修改产品术语名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8341 merge master into master 规范化修改产品术语名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中产品名需规范化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 相关readme和aclnn API MD ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8341 | 1 个月前 | |
modified md files (update product labels) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !8256 merge master into master modified md files (update product labels) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Update product labels. ## 关联的Issue [#4574](https://gitcode.com/cann/ops-nn/issues/4574) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 norm/group_norm_swish_grad/docs/aclnnGroupNormSwishGrad.md norm/rms_norm_quant_v3/docs/aclnnRmsNormQuantV3.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8256 | 1 个月前 | |
feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Co-authored-by: zhuzixian-lr<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8083 merge softmax_bin into master feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Created-by: zhuzixian-lr Commit-by: zhuzixian-lr Merged-by: cann-robot Description: ## 描述 本 PR 为 softmax 和 group_norm 系列算子在 ascend950 平台的 binary JSON 配置中添加 format_match_mode: FormatAgnostic 格式匹配模式,使这些算子能够以格式无关方式接收输入/输出张量。同时重构 softmax_grad 算子的编译信息获取接口,将 reinterpret_cast 强制类型转换替换为类型安全的模板 API。 ### 改动原因 当前 softmax/group_norm 系列算子的 ascend950 binary JSON 配置未设置 format_match_mode,在格式匹配时存在限制。仓库中其他算子(如 relu_grad_v2、gelu_grad、log_sigmoid_grad、hard_swish_grad_v2、swiglu_group 等)已广泛使用 FormatAgnostic 模式,本 PR 将该模式统一扩展至 softmax/group_norm 系列,保持一致性。 ### 改动方法 **1. Binary JSON 配置变更(6 个算子,ascend950 平台)** 为以下算子的所有输入和输出张量添加 "format_match_mode": "FormatAgnostic" 字段: | 算子 | 配置文件 | binary 变体数 | 数据类型 | 张量数 | |------|----------|:---:|------|:---:| | ConfusionSoftmaxGrad | activation/confusion_softmax_grad/op_host/config/ascend950/confusion_softmax_grad_binary.json | 3 | bfloat16 / float16 / float32 | 9 | | LogSoftmaxGrad | activation/log_softmax_grad/op_host/config/ascend950/log_softmax_grad_binary.json | 3 | float16 / bfloat16 / float32 | 9 | | SoftmaxGrad | activation/softmax_grad/op_host/config/ascend950/softmax_grad_binary.json | 3 | float16 / float32 / bfloat16 | 9 | | SoftmaxV2 | activation/softmax_v2/op_host/config/ascend950/softmax_v2_binary.json | 4 | bfloat16 / float16 / float16_to_float32 / float32 | 8 | | GroupNormGrad | norm/group_norm_grad/op_host/config/ascend950/group_norm_grad_binary.json | 5 | fp32 / fp16 / bf16 / fp16_f32 / bf16_f32 | 40 | | GroupNormV2 | norm/group_norm_v2/op_host/config/ascend950/group_norm_v2_binary.json | 5 | fp16 / fp32 / bf16 / bf16_f32 / fp16_f32 | 30 | 共 105 个张量条目添加了 FormatAgnostic 格式匹配模式。 **2. C++ 接口重构** activation/softmax_grad/op_host/arch35/softmax_grad_tiling_base.cpp 中 GetPlatformInfo() 方法: - 将 reinterpret_cast<const SoftmaxGradCompileInfo*>(context_->GetCompileInfo()) 替换为 context->GetCompileInfo<SoftmaxGradCompileInfo>() - 使用类型安全的模板 API 替代不安全的强制类型转换 **3. 其他变更** - 新增 .opencode/opencode.json(opencode 工具配置文件) ## 关联的Issue - #4469 ## 测试 - 验证各算子 binary JSON 配置文件格式正确性 - 验证 FormatAgnostic 模式下算子能够正确匹配不同格式的输入/输出张量 - 验证 softmax_grad 编译信息获取接口重构后功能正常 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8083 | 1 个月前 | |
test(golden): 升级 INInferV2 TestSpec Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8513 merge fix/in-infer-v2-golden-spec-update into master test(golden): 升级 INInferV2 TestSpec Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 本次仅更新 norm/in_infer_v2/tests/assets/golden.py: - 引入 __spec__ TestSpec 注册,kernel 与 GEIR 共用 in_infer_v2 算子键和 Spec。 - 使用 Promote 感知的 Torch CPU true-value,保留框架提供的 FP64 输入,不再强制降为 FP32。 - 增加独立 Torch third-party composition,按 arch35 kernel 的 FP32 运算顺序执行,并配置 FP16/FP32 cross_check 容差。 - 保留兼容旧加载器的 __golden__,并与 TestSpec 复用同一计算核心。 - 删除无真实接口支撑的 ACLNN golden 注册;该算子配置为 ACLNNTYPE aclnn_exclude,不新增 ACLNN 或 e2e 通路。 ## 关联的Issue 关联 Issue #4684:https://gitcode.com/cann/ops-nn/issues/4684 ## 测试 - pre-commit run --files norm/in_infer_v2/tests/assets/golden.py:通过。 - Python AST/import、TestSpec 惰性加载与注册检查:通过。 - FP16/FP32、gamma/beta 有无、不同 rank/统计量 shape、Promote 输出 dtype 与 third-party 本地语义检查:通过。 - TTK 用例校验:100/100 valid;覆盖 FP16/FP32 各 50 条、gamma/beta 有无、rank 2~5、epsilon 与 inner 边界。 - TTK kernel release binary + Promote 双向精度验证:100/100 PASS;三个输出均 PASS,内存越界检查 100/100 PASS。 - TTK GEIR release 集成冒烟:FP16 无 gamma/beta 与 FP32 有 gamma/beta 共 2/2 PASS,三个输出均 PASS。 ## 文档更新 无,本次仅更新 golden 测试资产。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:测试 golden 规范升级 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8513 | 1 个月前 | |
feat(in_training_reduce_v2): sub-R分组折叠解除规约轴R的上限 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8862 merge feat/in-training-reduce-v2-lift-r-limit into master feat(in_training_reduce_v2): sub-R分组折叠解除规约轴R的上限 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 解除 INTrainingReduceV2 规约轴长度 R 的上限。 ### 问题 sub-R 分块路径把 numChunks = ceil(R / rFactor) 个部分和**全部常驻 UB**,于是"输入分块双缓冲"与"随 R 增长的部分和数组"争抢同一块 UB: 2·e·rFactor + 8·(R/rFactor) ≤ usable ⟹ e·R ≤ (usable/8)² (e = 元素字节宽度) 按 Ascend 950 的 ub_size=253952 复算 DoSubRTiling() 并二分求临界点,上限为 **FLOAT32 R ≤ 249,892,864 / FLOAT16 R ≤ 500,797,440**(均约 0.93 GiB 输入),超出即在 Host Tiling 阶段返回失败。上游反馈的用例 InTrainingReduceV2_L1_upboundary_highpre_047(N=1, C=1, R=4294967296)正是因此失败: EZ9999: sub-R tiling requires N, C, R and N*C to fit in uint32: N=1 C=1 R=4294967296. [FUNC:CheckSubRNarrowable][FILE:in_training_reduce_v2_tiling_ar_full_reduce_arch35.cpp][LINE:127] 这个上限并非硬件或算法固有,而是实现耦合。同族对照支持"该能力本应具备":canndev 的 A2/A3 实现(TBE tuple_reduce)在类型与架构上均不设 R 上限;本仓 batch_norm_v3 的 block_split_r 也通过分级归约避开了同样的耦合。 ### 方案:分组折叠 给部分和缓存一个**固定**的分组预算:每 chunksPerGroup 个 chunk 折叠一次,结果写入 carry 槽并参与下一组的树形折叠,使 UB 占用与 R 完全解耦。 runningFold = 0 for g in [0, numGroups): for c in [0, chunksInGroup): CopyIn / ReduceChunk → partial[c] foldCnt = chunksInGroup + (g > 0 ? 1 : 0) # g>0 时含上一组的 carry FoldGroupSubR(partial[0, foldCnt)) → 末组写输出,否则写下一组的 carry 槽 实测 UB 用量恒为 **253,056 / 253,440 字节**,R 从 2.6×10⁸ 到 4.29×10⁹ 完全不变。**R 不再有上限,仅受设备内存约束。** ### 三点设计取舍 1. **保留原有求解作为快路径。** 装得下即 numGroups == 1,tiling 参数与 Kernel 行为逐位不变,存量 shape 零影响;分组仅在原本会被拒绝的 R 上启用。TTK 851 条泛化用例**全部走快路径**,这既解释了它们全绿,也印证了改造对存量行为无影响。 2. **chunksPerGroup 取"VL 对齐值 − 1"**,使 CeilAlign(chunksPerGroup + 1, VL) 恰好等于该对齐值,carry 槽不额外多吃一个 VL —— 分组路径的 UB 开销为零。 3. **carry 与本组 chunk 走同一次向量折叠**,而非标量顺序累加,精度优于顺序加。 ### 附带 sub-R 路径的 numN / numC / numR / perCoreCnt 由 uint32_t 放宽到 uint64_t,并移除 CheckSubRNarrowable() 中对 numR 的守卫(N / C / N×C 的 uint32 约束保留)。顺带修正 ar_full_reduce.h 中 perCoreCnt_ 的隐式收窄(同段其余字段均有显式 static_cast)。 README 未作改动:R 的上限是被**删除**的,不是被补充的,「约束说明」无需新增条目。 ## 关联的Issue 关联Issue #4872 —— 该 Issue 原诉求是把 R 上限写入文档;排查后确认上限可解除,故改为直接解除,Issue 将同步说明。原 PR !8838(文档化该上限)已因此关闭。 ## 测试 **op_host UT:22/22 通过** 新增 / 改写: - ..._sub_r_r_over_uint32_015:R=2³²(即上游失败用例的 R),改造前被拒,现须出 tiling - ..._sub_r_r_far_over_uint32_fp16_017:R=2³⁴ fp16,验证上限是"解除"而非"抬高一档" - ..._sub_r_nc_over_uint32_rejected_018:N×C=2³²,验证 N/C 的 uint32 守卫仍生效 - ..._sub_r_grouped_fold_2e9_014:原为"断言拒绝",改为"断言分组后接受" - 新增 ExpectSubRSelfConsistent():断言 numChunks/tailLen/numGroups/tailChunks 彼此自洽,且 Kernel 按该组参数申请的 UB 不越界 - 存量用例 013 / 016 增加 numGroups == 1 断言,守住"快路径不变" **TTK kernel 泛化:851 / 851 全部 PASS**(Ascend 950PR_9579) | 项 | 结果 | |---|---| | precision_status | PASS × 851,0 FAIL | | bin_precision | 100.0%,100.0% × 851 | | bin_compile_s | BINARY_MATCH × 851(跑的是部署的预编译 .o,非 JIT 兜底) | | memory_oob | PASS × 851 | 命令:ttk kernel -i in_training_reduce_v2_full.csv -d=false -b=release --compare close --plugin <op>/tests/assets **超限用例实测**(这批是唯一能覆盖新增分组路径的用例,851 条泛化全部走快路径) | R | dtype | numGroups | 结果 | |---:|---|---:|---| | 260,000,000 | fp32 | 2 | PASS,精度 100% | | 600,000,000 | fp32 | 3 | PASS,精度 100% | | 520,000,000 | fp16 | 2 | PASS,精度 100% | | 1,200,000,000 | fp16 | 3 | 跑批中 | | 4,294,967,296 | fp16 | 9 | 跑批中 | | 4,294,967,296 | fp32 | 18 | 跑批中 | 前三条均已超过改造前的上限(改造前会被 Host Tiling 拒绝)。后三条规模较大(fp64 golden 需 32 GiB),结果出来后补充到评论。 **本地门禁**:pre-commit 全项 Passed(含 clang-format / codespell / OAT 合规)。 ## 文档更新 无。R 的上限被解除而非文档化,README 无需改动。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8862 | 1 个月前 | |
fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;8 算子 golden 适配三方对比 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8492 merge fix/op-binary-json-missing into master fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;8 算子 golden 适配三方对比 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 按照ttk最新支持规范更新ttk golden ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4685 ## 测试 st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8492 | 1 个月前 | |
inplace_add_layer_norm: 基于 AddLayerNorm 实现 Ascend 950 支持 Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !8736 merge inplace_aln_k1 into master inplace_add_layer_norm: 基于 AddLayerNorm 实现 Ascend 950 支持 Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 InplaceAddLayerNorm 算子新增 Ascend 950(ascend950 / mc62)支持,且 950 路径额外支持空进空出。 ### 改动原因 - InplaceAddLayerNorm 此前未注册 950 的 OpAICoreConfig,且 tiling 走 Tiling4AddLayerNorm(非 regbase 路径),不支持 950。 ### 改动方法 **1. 算子定义(def.cpp)** - inplace_add_layer_norm_def.cpp:新增 OpAICoreConfig config_950,注册 ascend950,支持 fp16/bf16/fp32 多 dtype 组合,开启动态编译静态/动态 rank/动态 shape。 - add_layer_norm_def.cpp:移除 950 的 ExtendCfgInfo("opFile.value", "add_layer_norm_apt"),统一走通用配置。 **2. tiling** - add_layer_norm_tiling.cpp:InplaceAddLayerNorm 的 tiling 函数从 Tiling4AddLayerNorm 改为 TilingAddLayerNorm(走 regbase 路径,支持 950)。 - add_layer_norm_tiling.h:新增 AddLayerNorm_8010/8011/8012/8200 和 InplaceAddLayerNorm_8000~8200 的 tiling data class 注册(覆盖 950 子型号);新增成员 isReduceEmpty_、方法 CheckInplaceInputsDtype()、SetTilingData()。 - add_layer_norm_tiling_arch35.cpp:新增空张量场景处理、inplace dtype 校验、tiling data 设置逻辑。 **3. kernel** - 新增 norm/add_layer_norm/op_kernel/CMakeLists.txt、norm/inplace_add_layer_norm/op_kernel/CMakeLists.txt:声明 ascend950 编译目标及选项 --cce-no-dcache-flush --cce-simd-vf-fusion=false。 - 新增 arch35/add_layer_norm.cpp、arch35/inplace_add_layer_norm.cpp:kernel 入口。 - 新增 arch35/add_layer_norm_regbase_reduce_empty.h:空张量兜底 kernel,合轴后 R==0 且 A>0 时 mean/rstd 填 NaN,y/x 为空。 - 改 _regbase_common.h / _welford.h / _full_load.h:BUFFER_NUM 默认改为 DOUBLE_BUFFER_NUM=2(双 buffer),VFCalcY 增加 x 输出参数支持 inplace 写出 x,重构 VFCalcMeanVarFast 为 VFAddFrontend。 **4. 配置/文档** - 新增 inplace_add_layer_norm_binary.json(ascend950 binary 配置)。 - ascendc_config.json 移除 AddLayerNorm、InplaceAddLayerNorm 旧全局条目。 - README.md:InplaceAddLayerNorm 在 950 上 ×→√,并新增 950 支持空进空出说明。 ## 关联的Issue #https://gitcode.com/cann/ops-nn/issues/4858 ## 测试 - 泛化验证pass。 ## 文档更新 - norm/inplace_add_layer_norm/README.md:950 支持矩阵 ×→√,新增空进空出说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8736 | 1 个月前 | |
fix: 修复RmsNorm系列算子example中CHECK_RET宏多余分号及License Header格式 Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !8356 merge fix/rms_norm_check_ret_cpp into master fix: 修复RmsNorm系列算子example中CHECK_RET宏多余分号及License Header格式 Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 修复 RmsNorm、RmsNormGrad、AddRmsNorm、AddRmsNormCast、InplaceAddRmsNorm 五个算子 example cpp 文件中 CHECK_RET 宏调用处 return ret;); 的多余分号问题,改为 return ret);。 涉及文件(examples): | 算子 | 文件 | |------|------| | RmsNorm | examples/test_aclnn_rms_norm.cpp | | RmsNormGrad | examples/test_aclnn_rms_norm_grad.cpp | | AddRmsNorm | examples/test_aclnn_add_rms_norm.cpp | | AddRmsNormCast | examples/test_aclnn_add_rms_norm_cast.cpp | | InplaceAddRmsNorm | examples/test_aclnn_inplace_add_rms_norm.cpp | 同时修正 5 个 cpp 文件的 License Header 格式以通过 OAT 合规检查(原格式与 OAT.xml 中 licensematcher 定义不匹配)。 ## 关联的Issue - #4619 ## 测试 - 已通过 pre-commit 全部检查(clang-format、codespell、OAT Compliance Check 均 Passed) ## 文档更新 - 无(本 PR 仅修改 example cpp 文件) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8356 | 1 个月前 | |
fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8734 merge fix/norm-batch-group-instance-log-quality into master fix(log): 修复 batch_norm/group_norm/instance_norm 系列算子日志格式名错乱、参数名错误及拼写问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 batch_norm / group_norm / instance_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在5D格式名错乱(H/W字母互换)、广播日志参数名错误、截断的op名、拼写错误等问题。 ### 改动方法 - aclnn_batch_norm.cpp:169-185 — "NCDWH" → "NCDHW"(4处)、"NDWHC" → "NDHWC"(2处) - aclnn_batch_norm_backward.cpp:183,190 — "NCDWH" → "NCDHW"、"NDWHC" → "NDHWC" - batch_norm_grad_v3_base_tiling.cpp:159 — "HCDHW" → "NDHWC" - batch_norm_grad_v3_tiling_infer_base.cpp:184 — "HCDHW" → "NDHWC" - batch_norm_grad_tiling.cpp:190 — 日志参数 "inputParamNames[i]" → "outputParamNames[i]"(输出shape校验循环) - group_norm_grad_empty_tiling_arch35.cpp:337 — "CalcuTilingData" → "CalculateTilingData" - group_norm_grad_tiling_arch35.cpp:61 — "initing" → "initializing";:788 — 日志标签 "nMainFlodCount" → "nMainFoldCount" - group_norm_grad_tiling.cpp:483 — "initing" → "initializing" - instance_norm_tiling_base_arch35.cpp:241 — "betta" → "beta";:247 — "varience" → "variance";:322 — "Betta" → "Beta" ## 关联的Issue #4816 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8734 | 1 个月前 | |
InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8723 merge fix/op-binary-json-missing into master InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;MultilabelMarginLoss A5 独立 tiling 与归约精度;InstanceNormGrad UB 记账与缓冲下发;8 算子 golden 适配三方对比 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4818 ## 测试 ut/st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8723 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8723 merge fix/op-binary-json-missing into master InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;MultilabelMarginLoss A5 独立 tiling 与归约精度;InstanceNormGrad UB 记账与缓冲下发;8 算子 golden 适配三方对比 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4818 ## 测试 ut/st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8723 | 1 个月前 | |
modifed md file (README.md of the layer_norm operator) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !8213 merge master into master modifed md file (README.md of the layer_norm operator) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Modify the default value of epsilon in the README.md file of the layer_norm operator. ## 关联的Issue [#2932](https://gitcode.com/cann/ops-nn/issues/2932) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 norm/layer_norm/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8213 | 1 个月前 | |
优化LayerNormGrad/V3 base:CastToFp32From使用AddrReg,ComputeGammaCommon使用局部outerLoopStride Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8861 merge feat/areg-modify into master 优化LayerNormGrad/V3 base:CastToFp32From使用AddrReg,ComputeGammaCommon使用局部outerLoopStride Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 优化 LayerNormGrad 和 LayerNormGradV3 的 base 文件,两项改动: **1. CastToFp32From 使用 AddrReg** 将原本通过 ptr + i * stride + j * stride 手动计算地址的 DataCopy 调用,改为使用 CreateAddrReg 创建地址寄存器,通过 DataCopy(reg, base, addrReg) 形式访问,减少 Scalar 地址计算开销。 涉及两个文件的 CastToFp32From(多行版本): - layer_norm_grad_v3_base.h - layer_norm_grad_base.h **2. ComputeGammaCommon 使用局部 outerLoopStride** 在 ComputeGammaCommon 函数中,将参数 outerStride(int64_t)先用局部变量 uint32_t outerLoopStride 承接,VF 内部全部使用该局部变量,让编译器可以自动优化使用AddrReg。 涉及文件:layer_norm_grad_v3_base.h ## 关联的Issue #4885 ## 测试 - 使用 bash build.sh --ops=layer_norm_grad_v3,layer_norm_grad --soc=ascend950 --opkernel --noexec 编译验证,两个算子所有 dtype 组合均编译通过 ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8861 | 1 个月前 | |
优化LayerNormGrad/V3 base:CastToFp32From使用AddrReg,ComputeGammaCommon使用局部outerLoopStride Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8861 merge feat/areg-modify into master 优化LayerNormGrad/V3 base:CastToFp32From使用AddrReg,ComputeGammaCommon使用局部outerLoopStride Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 优化 LayerNormGrad 和 LayerNormGradV3 的 base 文件,两项改动: **1. CastToFp32From 使用 AddrReg** 将原本通过 ptr + i * stride + j * stride 手动计算地址的 DataCopy 调用,改为使用 CreateAddrReg 创建地址寄存器,通过 DataCopy(reg, base, addrReg) 形式访问,减少 Scalar 地址计算开销。 涉及两个文件的 CastToFp32From(多行版本): - layer_norm_grad_v3_base.h - layer_norm_grad_base.h **2. ComputeGammaCommon 使用局部 outerLoopStride** 在 ComputeGammaCommon 函数中,将参数 outerStride(int64_t)先用局部变量 uint32_t outerLoopStride 承接,VF 内部全部使用该局部变量,让编译器可以自动优化使用AddrReg。 涉及文件:layer_norm_grad_v3_base.h ## 关联的Issue #4885 ## 测试 - 使用 bash build.sh --ops=layer_norm_grad_v3,layer_norm_grad --soc=ascend950 --opkernel --noexec 编译验证,两个算子所有 dtype 组合均编译通过 ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8861 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
fix(log): 修复 layer_norm/lp_norm 系列算子日志复制粘贴op名、拼写、格式符及错误日志参数 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8735 merge fix/norm-layer-lp-log-quality into master fix(log): 修复 layer_norm/lp_norm 系列算子日志复制粘贴op名、拼写、格式符及错误日志参数 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 layer_norm / lp_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在复制粘贴导致的op名错误、拼写错误、日志参数引用错误等问题。 ### 改动方法 - layer_norm_grad_infershape.cpp:82 — 复制粘贴 InferDataType4GridSampler3DGrad → InferDataTypeLayerNormGrad - layer_norm_grad_v3_infershape.cpp:82 — 同上 → InferDataTypeLayerNormGradV3 - aclnn_layer_norm_backward.cpp:158 — 缺少 Backward:aclnnLayerNorm → aclnnLayerNormBackward - layer_norm_v3_infershape.cpp:70 — 结束日志缺少 V3 后缀 - layer_norm_v3_tiling_base.cpp:316 — normlize → normalize - layer_norm_v3_tiling_arch35.cpp — Unknow → Unknown(5处) - layer_norm_v4_infershape.cpp:37 — return unsuccess → return unsuccessful - layer_norm_v4_infershape.cpp:93 — 结束日志缺少 V4 后缀 - lp_norm_v2_tiling_arch35.cpp:431 — 错误日志参数 compileInfo->ubSize → 局部变量 ubSize 注:layer_norm_v4_common_tiling.cpp 和 layer_norm_v4_merge_n_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4817 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8735 | 1 个月前 | |
fix(log): 修复 layer_norm/lp_norm 系列算子日志复制粘贴op名、拼写、格式符及错误日志参数 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8735 merge fix/norm-layer-lp-log-quality into master fix(log): 修复 layer_norm/lp_norm 系列算子日志复制粘贴op名、拼写、格式符及错误日志参数 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 layer_norm / lp_norm 系列算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在复制粘贴导致的op名错误、拼写错误、日志参数引用错误等问题。 ### 改动方法 - layer_norm_grad_infershape.cpp:82 — 复制粘贴 InferDataType4GridSampler3DGrad → InferDataTypeLayerNormGrad - layer_norm_grad_v3_infershape.cpp:82 — 同上 → InferDataTypeLayerNormGradV3 - aclnn_layer_norm_backward.cpp:158 — 缺少 Backward:aclnnLayerNorm → aclnnLayerNormBackward - layer_norm_v3_infershape.cpp:70 — 结束日志缺少 V3 后缀 - layer_norm_v3_tiling_base.cpp:316 — normlize → normalize - layer_norm_v3_tiling_arch35.cpp — Unknow → Unknown(5处) - layer_norm_v4_infershape.cpp:37 — return unsuccess → return unsuccessful - layer_norm_v4_infershape.cpp:93 — 结束日志缺少 V4 后缀 - lp_norm_v2_tiling_arch35.cpp:431 — 错误日志参数 compileInfo->ubSize → 局部变量 ubSize 注:layer_norm_v4_common_tiling.cpp 和 layer_norm_v4_merge_n_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4817 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8735 | 1 个月前 | |
fix: inplace_apply_keras_momentum/lp_norm_update 属性标记为 OPTIONAL 与 REG_OP 行为对齐 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !8161 merge proto into master fix: inplace_apply_keras_momentum/lp_norm_update 属性标记为 OPTIONAL 与 REG_OP 行为对齐 Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将inplace_apply_keras_momentum/lp_norm_update 算子的kernel定义文件与proto文件中的属性定义不一致,需要和proto文件对齐,改为可选属性 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4498](https://gitcode.com/cann/ops-nn/issues/4498) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8161 | 1 个月前 | |
[CANNBot] lp_norm_update_v2算子增加异常拦截校验 Co-authored-by: chen_chenn<chenchen167@huawei.com> # message auto-generated for no-merge-commit merge: !8367 merge LpNormUpdateV2 into master [CANNBot] lp_norm_update_v2算子增加异常拦截校验 Created-by: chen_chenn Commit-by: chen_chenn Merged-by: cann-robot Description: ## 描述 lp_norm_update_v2算子增加异常拦截校验 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4829 ## 测试 TTK ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8367 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
Add fallback registration for quant_update_scatter/scatter_nd_update/masked_softmax_with_rel_pos_bia Co-authored-by: lijingxuan<lijingxuan13@huawei.com> # message auto-generated for no-merge-commit merge: !8765 merge Add_new_operators into master Add fallback registration for quant_update_scatter/scatter_nd_update/masked_softmax_with_rel_pos_bia Created-by: 2401_87820340 Commit-by: lijingxuan Merged-by: cann-robot Description: ## 描述 本 PR 为以下三个算子新增图模式 fallback 注册: - quant_update_scatter - scatter_nd_update - masked_softmax_with_rel_pos_bias 将 canndev 中对应的 fallback 实现迁移至 ops-nn。执行函数通过 CANN_OPS_OPB_SYN_EXEC_ACLNN 调用对应 ACLNN API,并显式传入 hostApiCtx。 本次迁移保留了原有 ACLNN API、输入及属性索引、参数顺序和错误处理逻辑,不修改算子公共接口及计算语义。 ## 关联的Issue 无关联 Issue。 ## 测试 已完成以下检查: - 对三个新增 CPP 文件执行 clang-format 18.1.8,检查通过。 - 对三个新增 CPP 文件执行完整 pre-commit,所有检查通过。 - 执行 git diff --check,检查通过。 - 检查三个文件均使用 CANN_OPS_OPB_SYN_EXEC_ACLNN,不存在旧的 EXEC_OPAPI_CMD。 - GitCode 远端 Git Hooks 检查通过。 Linux/CANN 编译、opgraph UT 和软件包构建由 PR 流水线继续验证。 ## 文档更新 本 PR 不包含文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8765 | 1 个月前 | |
fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;8 算子 golden 适配三方对比 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8492 merge fix/op-binary-json-missing into master fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;8 算子 golden 适配三方对比 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 按照ttk最新支持规范更新ttk golden ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4685 ## 测试 st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8492 | 1 个月前 | |
A5新增MVNV2算子 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !8594 merge mvn into master A5新增MVNV2算子 Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 算子功能:对ND输入张量沿指定axes计算均值与标准差,执行均值方差归一化,使输出在规约轴上均值为0、方差近似为1。 - 计算公式: $$ y = \frac{x - mean}{\sqrt{var} + eps} $$ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4878](https://gitcode.com/cann/ops-nn/issues/4878) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8594 | 1 个月前 | |
perf: optimize CalculateSquareReduceSumCommon tail loop for instruction-level parallelism Co-authored-by: liangyuhua<liangyuhua4@huawei.com> # message auto-generated for no-merge-commit merge: !8181 merge perf/optimize-calculate-square-reduce-sum into master perf: optimize CalculateSquareReduceSumCommon tail loop for instruction-level parallelism Created-by: liangyuhua Commit-by: liangyuhua Merged-by: cann-robot Description: ## 描述 优化 reduce_common_regbase.h 中 CalculateSquareReduceSumCommon 函数的 tail 循环,提升指令级并行度。 ### 改动内容 1. **重排 Load/Mul 指令顺序**:Load x → Mul x → Load xFold → Mul xFold(原为 Load x → Load xFold → Mul x → Mul xFold),使 x 的 Mul 可以与 xFold 的 Load 重叠执行。 2. **合并 tail 两阶段循环为统一循环**:将原来的 tailFullLoops(整除迭代)+ tailRemain(余数迭代)两阶段循环替换为统一的 tailCeilLoops 循环,使用 UpdateMask(sregTail) 自动递减掩码,无需单独处理余数。 3. **移除 ShiftLefts 调用**:原代码用 ShiftLefts(.., pregLoop) 将越界元素清零,现在 UpdateMask 已正确处理掩码,不再需要。 4. **重命名循环变量**:firstFlodWithOutAddLoops 提升可读性。 ## 关联的Issue #4505 ## 测试 在 Ascend950 上使用 TTK (ops-test-kit) 对 6 个 rmsnorm 系列算子进行了全面验证,每个算子 50 条 case,共 300 条,覆盖 CalculateSquareReduceSumCommon 的所有分支。 ### 分支覆盖 - **LAST_LOOP_NUMS=1** (reduceBranchNum 129~8192):26 条/算子 - **LAST_LOOP_NUMS=2** (reduceBranchNum 8193~16384):24 条/算子 - **tail 场景**:单次部分迭代、单次完整迭代、多次完整迭代、多次部分迭代,4 种全覆盖 - **dtype 覆盖**:fp16 + bf16 - **add_rms_norm_dynamic_mx_quant**:fp8 (e4m3fn/e5m2) + fp4 (e2m1) 两条路径全覆盖 ### 性能对比结果 每个算子 50 条 case,--run 5 中位数逐条对比。对首轮退化 case 用 --run 20 复检降噪,复检结果替换首轮结果: | 算子 | 用例数 | 提升 | 退化 | 持平 | 精度PASS | 平均变化 | |------|--------|------|------|------|---------|---------| | rms_norm | 50 | 39 | 11 | 0 | YES | -2.6% | | add_rms_norm_cast | 50 | 29 | 20 | 1 | YES | -0.3% | | add_rms_norm_quant | 50 | 37 | 13 | 0 | YES | -1.9% | | add_rms_norm_dynamic_quant | 50 | 24 | 24 | 2 | YES | -0.1% | | rms_norm_quant_v2 | 50 | 40 | 10 | 0 | YES | -2.0% | | add_rms_norm_dynamic_mx_quant | 50 | 34 | 15 | 1 | YES | -0.7% | | **TOTAL** | **300** | **203** | **93** | **4** | **YES** | **-1.3%** | - 所有 300 条 case 精度检查通过(rms_norm 和 add_rms_norm_cast 有 golden plugin 验证,其余编译执行 PASS) - 性能提升的 case(203,68%)远多于退化的 case(93,31%),总体平均提升 1.3% - 退化的 case 幅度均在 ±2% 以内,属于测量噪声范围 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8181 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 2 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
refactor: rename APIs in ops-nn batch4 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8569 merge rename-api-batch4 into master refactor: rename APIs in ops-nn batch4 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - DataCopyUnAlign → StoreUnAlign - DataCopyUnAlignPost → StoreUnAlignPost - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/softmax_cross_entropy_with_logits - activation/softmax_grad - activation/softmax_v2 - loss/nll_loss - loss/sparse_softmax_cross_entropy_with_logits - norm/rms_norm - norm/rms_norm_dynamic_mx_quant - norm/rms_norm_grad - norm/rms_norm_grad_quant - norm/rms_norm_quant_v2 共修改 38 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8569 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
fix: torch ops cpp sources Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8489 merge torch into master fix: torch ops cpp sources Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 本次PR主要修复了 Torch 算子 C++ 源码的路径管理问题,将原本按算子类别(如 activation、matmul、norm、quant)分目录存放的 .cpp 文件统一扁平化到 csrc/ 根目录。同时简化了 OpBuilder 基类,移除 category 参数及相关路径拼接逻辑,并增强了 JIT 编译阶段的错误诊断能力和构建过程中的文件清理机制。 主要改动 OpBuilder 基类重构:移除 __init__ 中的 category 参数,resolve_source 方法简化为直接返回 csrc/{cpp_filename},不再拼接子目录;各子类 sources() 方法统一改用 self.resolve_source("xxx.cpp") 替代原有的硬编码子目录路径。 load 方法增强:新增 ninja 可用性检查,若未安装则抛出明确的 RuntimeError;JIT 编译失败时提供包含常见原因(CANN toolkit 未 source、缺少编译器、缺少 ninja)的诊断信息。 setup.py 打包逻辑适配:_non_python_files 和 _collect_op 中 .cpp 文件的收集路径从 csrc/<category>/ 调整为 csrc/;BuildPyWithOps 新增对 csrc 子目录的处理,构建时清理不属于当前选中算子的残留 .cpp 文件。 install_requires 依赖调整:移除 torch>=2.6.0 和 torch_npu,新增 ninja 作为安装依赖。 ## 关联的Issue [#4690](https://gitcode.com/cann/ops-nn/issues/4690) ## 测试 本地编译构建,查看build目录下的目录层级 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8489 | 1 个月前 | |
docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Co-authored-by: HelloWord-LuXin<luxin67@h-partners.com> # message auto-generated for no-merge-commit merge: !8709 merge fix-bn-groupnorm-deterministic-doc into master docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Created-by: HelloWord-LuXin Commit-by: HelloWord-LuXin Merged-by: cann-robot Description: ## 修改内容 修正 aclnnBatchNorm、aclnnBatchNormElemt、aclnnBatchNormBackward、aclnnGroupNormBackward、aclnnRmsNormGrad、aclnnRmsNormGradQuant 六个算子文档中 A5(Ascend 950) 确定性计算描述与代码实际行为不符的问题。 close #4890 ## 问题分析 原描述为「默认非确定性实现,支持通过 aclrtCtxSetSysParamOpt 开启确定性」,未区分芯片版本。代码核查表明: A5(Ascend 950) 的 arch35/regbase kernel 使用 SyncAll 做核间同步,无 SetAtomicAdd;regbase tiling 不检查 GetDeterministic(),不读取 aclrtCtxSetSysParamOpt 设置。因此 A5 实际为默认确定性实现,且不支持通过 aclrtCtxSetSysParamOpt 开启确定性。 ## 代码依据 | 算子 | A5 GetDeterministic() | A5 SetAtomicAdd | A5 同步机制 | |------|-----------------------|-----------------|-------------| | aclnnBatchNorm | 否 | 否 | SyncAll | | aclnnBatchNormElemt | 否 | 否 | 无跨核归约 | | aclnnBatchNormBackward | 否 | 否 | SyncAll | | aclnnGroupNormBackward | 否 | 是(workspace写入) | SyncAll+二分树归约 | | aclnnRmsNormGrad | 否 | 否 | SyncAll | | aclnnRmsNormGradQuant | 否 | 否 | 无跨核归约 | > GroupNormBackward A5 虽使用 SetAtomicAdd 写 workspace,但 SPLIT_COUNT=2 保证每个 workspace slot 仅 2 个核写入,浮点加法交换律(a+b==b+a)保证结果确定;stage2 用 SyncAll + 二分树归约,最终输出无 atomic add。 ## 修改方案 仅修改 A5(Ascend 950) 描述,区分芯片版本描述: | 算子 | A5 描述 | |------|---------| | aclnnBatchNorm | → 默认确定性实现 | | aclnnBatchNormElemt | → 默认确定性实现 | | aclnnBatchNormBackward | → 默认确定性实现 | | aclnnGroupNormBackward | → 默认确定性实现 | | aclnnRmsNormGrad | → 默认确定性实现 | | aclnnRmsNormGradQuant | → 默认确定性实现 | ## 涉及文件 - norm/batch_norm_v3/docs/aclnnBatchNorm.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_elemt/docs/aclnnBatchNormElemt.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_grad_v3/docs/aclnnBatchNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/group_norm_grad/docs/aclnnGroupNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad/docs/aclnnRmsNormGrad.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md — 仅 A5 支持,改为默认确定性实现 - docs/zh/op_api_list.md — 同步修正上述 6 个算子的 A5 列 See merge request: cann/ops-nn!8709 | 1 个月前 | |
docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Co-authored-by: HelloWord-LuXin<luxin67@h-partners.com> # message auto-generated for no-merge-commit merge: !8709 merge fix-bn-groupnorm-deterministic-doc into master docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Created-by: HelloWord-LuXin Commit-by: HelloWord-LuXin Merged-by: cann-robot Description: ## 修改内容 修正 aclnnBatchNorm、aclnnBatchNormElemt、aclnnBatchNormBackward、aclnnGroupNormBackward、aclnnRmsNormGrad、aclnnRmsNormGradQuant 六个算子文档中 A5(Ascend 950) 确定性计算描述与代码实际行为不符的问题。 close #4890 ## 问题分析 原描述为「默认非确定性实现,支持通过 aclrtCtxSetSysParamOpt 开启确定性」,未区分芯片版本。代码核查表明: A5(Ascend 950) 的 arch35/regbase kernel 使用 SyncAll 做核间同步,无 SetAtomicAdd;regbase tiling 不检查 GetDeterministic(),不读取 aclrtCtxSetSysParamOpt 设置。因此 A5 实际为默认确定性实现,且不支持通过 aclrtCtxSetSysParamOpt 开启确定性。 ## 代码依据 | 算子 | A5 GetDeterministic() | A5 SetAtomicAdd | A5 同步机制 | |------|-----------------------|-----------------|-------------| | aclnnBatchNorm | 否 | 否 | SyncAll | | aclnnBatchNormElemt | 否 | 否 | 无跨核归约 | | aclnnBatchNormBackward | 否 | 否 | SyncAll | | aclnnGroupNormBackward | 否 | 是(workspace写入) | SyncAll+二分树归约 | | aclnnRmsNormGrad | 否 | 否 | SyncAll | | aclnnRmsNormGradQuant | 否 | 否 | 无跨核归约 | > GroupNormBackward A5 虽使用 SetAtomicAdd 写 workspace,但 SPLIT_COUNT=2 保证每个 workspace slot 仅 2 个核写入,浮点加法交换律(a+b==b+a)保证结果确定;stage2 用 SyncAll + 二分树归约,最终输出无 atomic add。 ## 修改方案 仅修改 A5(Ascend 950) 描述,区分芯片版本描述: | 算子 | A5 描述 | |------|---------| | aclnnBatchNorm | → 默认确定性实现 | | aclnnBatchNormElemt | → 默认确定性实现 | | aclnnBatchNormBackward | → 默认确定性实现 | | aclnnGroupNormBackward | → 默认确定性实现 | | aclnnRmsNormGrad | → 默认确定性实现 | | aclnnRmsNormGradQuant | → 默认确定性实现 | ## 涉及文件 - norm/batch_norm_v3/docs/aclnnBatchNorm.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_elemt/docs/aclnnBatchNormElemt.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_grad_v3/docs/aclnnBatchNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/group_norm_grad/docs/aclnnGroupNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad/docs/aclnnRmsNormGrad.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md — 仅 A5 支持,改为默认确定性实现 - docs/zh/op_api_list.md — 同步修正上述 6 个算子的 A5 列 See merge request: cann/ops-nn!8709 | 1 个月前 | |
fix(log): 修复 rms_norm_quant/sync_batch_norm_backward_reduce 算子日志拼写、错误op名、格式符及语义问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8733 merge fix/norm-rms-sync-log-quality into master fix(log): 修复 rms_norm_quant/sync_batch_norm_backward_reduce 算子日志拼写、错误op名、格式符及语义问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 rms_norm_quant / sync_batch_norm_backward_reduce 算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在拼写错误、错误op名引用、语义描述与实际检查不匹配等问题。 ### 改动方法 - aclnn_add_rms_norm_quant_v2.cpp:130 — 移除 "tensor's" 中多余撇号 → "tensor" - aclnn_rms_norm_quant.cpp:247 — "surport" → "support" - aclnn_rms_norm_quant.cpp:318 — 错误op名 "AclnnDynamicQuant" → "aclnnRmsNormQuant" - rms_norm_quant_v2_tiling_regbase_base.cpp:690 — "Set Output shape failed" → "The output shape is invalid"(校验检查而非设置操作) - aclnn_batch_norm_backward_reduce.cpp:351 — "less than 2" → "not equal to 2"(实际检查为 != 2) 注:rms_norm_quant_common_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4815 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8733 | 1 个月前 | |
fix(log): 修复 rms_norm_quant/sync_batch_norm_backward_reduce 算子日志拼写、错误op名、格式符及语义问题 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !8733 merge fix/norm-rms-sync-log-quality into master fix(log): 修复 rms_norm_quant/sync_batch_norm_backward_reduce 算子日志拼写、错误op名、格式符及语义问题 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 本PR对 ops-nn 仓库中 rms_norm_quant / sync_batch_norm_backward_reduce 算子的日志消息进行质量修复,仅修改日志字符串,不涉及任何功能逻辑变更。 ### 改动原因 代码审计发现该系列算子日志存在拼写错误、错误op名引用、语义描述与实际检查不匹配等问题。 ### 改动方法 - aclnn_add_rms_norm_quant_v2.cpp:130 — 移除 "tensor's" 中多余撇号 → "tensor" - aclnn_rms_norm_quant.cpp:247 — "surport" → "support" - aclnn_rms_norm_quant.cpp:318 — 错误op名 "AclnnDynamicQuant" → "aclnnRmsNormQuant" - rms_norm_quant_v2_tiling_regbase_base.cpp:690 — "Set Output shape failed" → "The output shape is invalid"(校验检查而非设置操作) - aclnn_batch_norm_backward_reduce.cpp:351 — "less than 2" → "not equal to 2"(实际检查为 != 2) 注:rms_norm_quant_common_tiling.cpp 的修改已撤销,不在本PR范围内。 ## 关联的Issue #4815 ## 测试 本次修改仅涉及日志字符串,不影响算子功能逻辑,无需额外功能测试。 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8733 | 1 个月前 | |
modified md files (update product labels) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !8256 merge master into master modified md files (update product labels) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Update product labels. ## 关联的Issue [#4574](https://gitcode.com/cann/ops-nn/issues/4574) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 norm/group_norm_swish_grad/docs/aclnnGroupNormSwishGrad.md norm/rms_norm_quant_v3/docs/aclnnRmsNormQuantV3.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8256 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
refactor: rename AscendC MicroAPIs in 4 arch35 operator kernels (batch5) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8429 merge rename-api-batch5 into master refactor: rename AscendC MicroAPIs in 4 arch35 operator kernels (batch5) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 4 个算子的 arch35 kernel 实现进行 AscendC MicroAPI 接口重命名,以同步 AscendC SDK 新版本的 API 命名规范。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 接口命名进行了系统性调整(地址空间限定符统一、加载/存储方向接口拆分、Mask 相关接口去前缀化等),算子代码需同步更新以使用新 API 名称,旧名称将在后续版本废弃。 ### 改动方法 纯机械重命名,不涉及任何逻辑变更。共修改 7 个文件,333 行增 + 333 行删(一一对应替换)。 ### 涉及算子(4 个) | 算子 | 目录 | 修改文件数 | |------|------|-----------| | unique_consecutive | index/unique_consecutive | 1 | | sync_batch_norm_gather_stats | norm/sync_batch_norm_gather_stats | 2 | | swiglu_mx_quant | quant/swiglu_mx_quant | 3 | | swiglu_mx_quant_with_dual_axis | quant/swiglu_mx_quant_with_dual_axis | 1 | ### 变更文件列表(7 个) | 文件 | +行 | -行 | |------|-----|-----| | index/unique_consecutive/op_kernel/arch35/unique_consecutive_helper.h | 83 | 83 | | norm/sync_batch_norm_gather_stats/op_kernel/arch35/sync_batch_norm_gather_stats_n_full_load.h | 22 | 22 | | norm/sync_batch_norm_gather_stats/op_kernel/arch35/sync_batch_norm_gather_stats_n_not_full_load.h | 52 | 52 | | quant/swiglu_mx_quant/op_kernel/arch35/swiglu_mx_quant_axis_last.h | 13 | 13 | | quant/swiglu_mx_quant/op_kernel/arch35/swiglu_mx_quant_axis_not_last.h | 6 | 6 | | quant/swiglu_mx_quant/op_kernel/arch35/swiglu_mx_quant_common.h | 96 | 96 | | quant/swiglu_mx_quant_with_dual_axis/op_kernel/arch35/swiglu_mx_quant_with_dual_axis_regbase.h | 61 | 61 | | **合计** | **333** | **333** | ### API 改名映射 | 旧 API | 新 API | 说明 | |--------|--------|------| | __local_mem__ | __ubuf__ | 地址空间限定符统一(128 处) | | MicroAPI::DataCopy(加载)/ 裸 DataCopy | MicroAPI::LoadAlign / LoadAlign | 对齐加载 | | MicroAPI::DataCopy(存储) | MicroAPI::StoreAlign | 对齐存储 | | MicroAPI::DataCopyUnAlign(加载) | MicroAPI::LoadUnAlign | 非对齐加载 | | MicroAPI::DataCopyUnAlign(存储) | MicroAPI::StoreUnAlign | 非对齐存储 | | MicroAPI::DataCopyUnAlignPre | MicroAPI::LoadUnAlignPre | 非对齐加载预处理 | | MicroAPI::DataCopyUnAlignPost | MicroAPI::StoreUnAlignPost | 非对齐存储后处理(8 处) | | MicroAPI::CompareScalar | MicroAPI::Compares | 标量比较(41 处) | | MicroAPI::MaskAnd | MicroAPI::And | Mask 按位与(11 处) | | MicroAPI::MaskUnPack | MicroAPI::UnPack | Mask 解包(16 处) | | MicroAPI::MaskPack | MicroAPI::Pack | Mask 打包 | | MicroAPI::GatherMask(函数) | MicroAPI::Squeeze | GatherMask 函数更名(GatherMaskMode 枚举不变) | | MicroAPI::UnalignReg | MicroAPI::UnalignRegForLoad / MicroAPI::UnalignRegForStore | 按加载/存储方向拆分 | ## 关联的Issue - #4652 https://gitcode.com/cann/ops-nn/issues/4652 ## 测试 - 二进制一致性验证:对重命名前后的 7 个 kernel 分别编译生成 .o 文件,逐字节对比无差异,确认重命名为纯机械替换、不影响生成代码。 - 无新增/删除逻辑,无需补充功能测试用例。 ## 文档更新 无。本次为纯 API 重命名,不涉及接口语义或使用方式变化。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(AscendC API 重命名同步) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8429 | 1 个月前 | |
modified md file(aclnn*.md and README.md) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !7119 merge master into master modified md file(aclnn*.md and README.md) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 1. Updated the constraints on the C and group parameters in aclnnGroupNormBackward.md. 2. Updated the calculation formula and parameter types of the lp_norm_v2 operator, and updated the parameter description of aclnn. 3. Updated the case of parameter names in the README.md file of renorm. 4. Updated the calculation formula of sync_batch_norm_backward_elemt and added the constraints on the combination of data types in the README file. 5. Updated the attribute parameter types and default values in the README file of sync_batch_norm_backward_elemt. ## 关联的Issue [#3701](https://gitcode.com/cann/ops-nn/issues/3701) [#3702](https://gitcode.com/cann/ops-nn/issues/3702) [#3693](https://gitcode.com/cann/ops-nn/issues/3693) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/op_list.md norm/group_norm_grad/docs/aclnnGroupNormBackward.md norm/lp_norm_v2/README.md norm/lp_norm_v2/docs/aclnnNorm.md norm/renorm/README.md norm/sync_batch_norm_backward_elemt/README.md norm/sync_batch_norm_backward_elemt/docs/aclnnBatchNormElemtBackward.md norm/sync_batch_norm_backward_elemt/docs/aclnnBatchNormElemtBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7119 | 2 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 9 个月前 |