| fix: 修复 norm 类算子示例及文档中 CHECK_RET 宏语法错误 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8348 merge code_check_0806 into master fix: 修复 norm 类算子示例及文档中 CHECK_RET 宏语法错误 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修复 norm 目录下 4 个算子的示例代码(.cpp)及文档(.md)中 CHECK_RET 宏调用的语法错误。原代码在宏的第二个参数末尾多了一个分号,形成 return ret;); 的结构,宏展开后会产生语法错误。同时规范了 group_norm_grad 示例的版权声明格式并补充了部分文件缺失的末尾换行符。 ### 改动原因 CHECK_RET 宏的第二个参数是代码块表达式,原代码 LOG_PRINT(...); return ret;); 中 return ret 后多余的分号导致宏展开后出现 ); 语法错误。该问题在 AddLayerNorm、AddLayerNormQuant、BatchNormReduce、GroupNormBackward 四个算子的 docs 和 examples 中均存在。 ### 改动方法 - 将 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("allocate workspace failed. ERROR: %d\n", ret); return ret;); 修正为 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("allocate workspace failed. ERROR: %d\n", ret); return ret); - 涉及算子:AddLayerNorm、AddLayerNormQuant、BatchNormReduce、GroupNormBackward - 更新 test_aclnn_group_norm_grad.cpp 版权声明(年份 2025→2026,格式规范化),添加 Doxygen \file / \brief 注释 - 为 3 个 cpp 文件补充末尾换行符 ## 关联的Issue - #4626 ## 测试 代码审查确认 CHECK_RET 宏修正后语法合法,宏展开无语法问题。 ## 文档更新 同步更新了 4 个算子文档(aclnnAddLayerNorm.md、aclnnAddLayerNormQuant.md、aclnnBatchNormReduce.md、aclnnGroupNormBackward.md)中示例代码的 CHECK_RET 语法。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8348 | 1 个月前 |
| fix: 修复 norm 类算子示例及文档中 CHECK_RET 宏语法错误 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8348 merge code_check_0806 into master fix: 修复 norm 类算子示例及文档中 CHECK_RET 宏语法错误 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修复 norm 目录下 4 个算子的示例代码(.cpp)及文档(.md)中 CHECK_RET 宏调用的语法错误。原代码在宏的第二个参数末尾多了一个分号,形成 return ret;); 的结构,宏展开后会产生语法错误。同时规范了 group_norm_grad 示例的版权声明格式并补充了部分文件缺失的末尾换行符。 ### 改动原因 CHECK_RET 宏的第二个参数是代码块表达式,原代码 LOG_PRINT(...); return ret;); 中 return ret 后多余的分号导致宏展开后出现 ); 语法错误。该问题在 AddLayerNorm、AddLayerNormQuant、BatchNormReduce、GroupNormBackward 四个算子的 docs 和 examples 中均存在。 ### 改动方法 - 将 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("allocate workspace failed. ERROR: %d\n", ret); return ret;); 修正为 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("allocate workspace failed. ERROR: %d\n", ret); return ret); - 涉及算子:AddLayerNorm、AddLayerNormQuant、BatchNormReduce、GroupNormBackward - 更新 test_aclnn_group_norm_grad.cpp 版权声明(年份 2025→2026,格式规范化),添加 Doxygen \file / \brief 注释 - 为 3 个 cpp 文件补充末尾换行符 ## 关联的Issue - #4626 ## 测试 代码审查确认 CHECK_RET 宏修正后语法合法,宏展开无语法问题。 ## 文档更新 同步更新了 4 个算子文档(aclnnAddLayerNorm.md、aclnnAddLayerNormQuant.md、aclnnBatchNormReduce.md、aclnnGroupNormBackward.md)中示例代码的 CHECK_RET 语法。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8348 | 1 个月前 |
| AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !993 merge nn_ops_fix_1 into master AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!993 | 7 个月前 |
| 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 batch1 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8505 merge rename-api-batch1 into master refactor: rename APIs in ops-nn batch1 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 本 PR 对 ops-nn 仓库中 batch1 涉及的 10 个算子(norm 系列 8 个 + optim 系列 2 个)的 arch35 kernel 头文件进行 API 重命名,将旧版 MicroAPI/Reg-VF 接口名替换为 CANN 新版 SDK 对应的接口名,无任何逻辑改动。 ### 改动原因 CANN 新版 SDK 对 AscendC MicroAPI(351x 架构 Reg 矢量计算层)的接口命名进行了统一调整:统一地址空间限定符、按 Load/Store 方向拆分搬运 API、去废弃前缀。ops-nn 仓库需同步更新以匹配新版 SDK 头文件,避免编译警告/废弃提示,为后续架构迁移和新特性使能扫清障碍。 ### 改动方法 纯机械重命名,涉及 39 个 arch35 kernel 头文件(+2244 -2269),覆盖以下 13 类 API 替换: 1. __local_mem__ → __ubuf__(UB 地址空间限定符,1664 处) 2. DataCopy(Reg load 方向)→ LoadAlign(392 处) 3. DataCopy(Reg store 方向)→ StoreAlign(154 处) 4. ReduceSum → Reduce<ReduceType::SUM>(115 处) 5. MultiCopyConfig / MultiCopyLoopInfo / MultiCopyParams → NdDmaConfig / NdDmaLoopInfo / NdDmaParams 6. DataCopyUnAlignPre → LoadUnAlignPre、DataCopyUnAlign → LoadUnAlign / StoreUnAlign(按方向拆分)、DataCopyUnAlignPost → StoreUnAlignPost 7. UnalignReg → UnalignRegForLoad / UnalignRegForStore(按用途拆分) 8. CompareScalar → Compares(8 处) 9. DataCopyGather → Gather(8 处) 10. MaskAnd → And、MaskOr → Or、MaskPack → Pack(去 Mask 前缀) 11. ReduceMaxWithDataBlock → ReduceDataBlock<ReduceType::MAX>(2 处) GM↔UB 之间的 DataCopy 调用(5 处)保持不变,未被误改。 涉及的 10 个算子: - norm: add_layer_norm、add_layer_norm_quant、add_rms_norm、add_rms_norm_cast、add_rms_norm_dynamic_mx_quant、add_rms_norm_dynamic_quant、add_rms_norm_quant、batch_norm - optim: apply_adam_d、apply_adam_w ## 关联的Issue #4718 ## 测试 重命名后各算子需通过编译验证与原有算子精度/性能用例,确认无行为变化。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8505 | 1 个月前 |
| add_layer_norm_quant: add Dtype check Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !7652 merge alnq_checkDtype into master add_layer_norm_quant: add Dtype check Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为 add_layer_norm_quant 算子 regbase tiling 路径补全 dtype 校验。 ### 改动原因 1. 缺失 dtype 校验:regbase tiling 路径此前未对输入 dtype 做前置校验,非法 dtype 会直达 kernel 导致未定义行为。 2. 取值方式:按官方规范将 GetInputTensor()->GetDataType() 改为 GetInputDesc()->GetDataType() 并补判空。 ### 改动方法 - 新增 CheckInputDtype():校验 x1 支持的 dtype(fp16/bf16/fp32)、x1/x2/gamma/beta 一致性、bias(若存在)与 x1 一致 - 新增 CheckOptionalInputDtype():用 lambda + && 短路替代早返回,四个可选输入(scales1/scales2/zero_points1/zero_points2)各自独立按 exist 标志校验,dtype 须为 x1 或 fp32,且彼此一致 - 新增 CheckOutputDtype: 校验 输出dtype。 - 调用点:DoTiling 中 GetShapeInfo 之后、DoBlockTiling 之前 - 补 3 条 tiling UT 覆盖主输入一致性、bias 一致性、可选输入 dtype 合法性失败分支 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4172 ## 测试 - pass ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7652 | 2 个月前 |
| AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !993 merge nn_ops_fix_1 into master AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 AddLayerNorm/AddLayerNormQuant/AddRmsNorm/AddRmsNormCast/AddRmsNormDynamicQuant/AddRmsNormQuant/InplaceAddRmsNorm/RmsNorm/RmsNormGrad算子支持下一代芯片 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!993 | 7 个月前 |
| modified md files(for readability improvement) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !6050 merge master into master modified md files(for readability improvement) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Mofify redundant spaces, such as those between Chinese and English characters. ## 关联的Issue [#3317](https://gitcode.com/cann/ops-nn/issues/3317) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6050 | 3 个月前 |