| [CANNBot] BNInferGrad算子支持Ascend950 Ascendc实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !7960 merge bn_infer_grad into master [CANNBot] BNInferGrad算子支持Ascend950 Ascendc实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 ### 背景与目标 为满足 [Issue #4333](https://gitcode.com/cann/ops-nn/issues/4333) 中 BNInferGrad 算子在 Ascend 950 上的支持需求,本 PR 新增 BNInferGrad 的 AscendC 实现,打通算子定义、图推导、Host Tiling、Kernel、GEIR 示例及 UT 测试链路。 算子用于计算 Batch Normalization 推理模式下输入的反向梯度: $$ x\_backprop = grads \times \frac{scale}{\sqrt{batch\_variance + epsilon}} $$ 其中 scale 和 batch_variance 沿 grads 的 C 维广播。 ### 功能规格 - grads:支持 2D~5D ND 张量,数据类型支持 FLOAT16、FLOAT、BFLOAT16。 - scale、batch_variance:仅支持一维 FLOAT 张量,长度必须与 grads 的 C 维一致。 - epsilon:可选 FLOAT 属性,默认值为 0.0001。 - x_backprop:shape 和数据类型与 grads 保持一致。 ### 主要改动 1. **算子定义与图推导** - 新增 BNInferGrad 原型、OpDef 注册、Graph Infer、InferShape 和 InferDataType 实现。 - 配置 Ascend 950 AI Core,支持动态 Shape、动态 Rank 和动态 Format。 2. **Host Tiling** - 新增 arch35 Tiling 实现及容量计算,根据输入 rank 分发 RANK_4(rank 2~4)和 RANK_8(rank 5)TilingKey。 - 实现通道广播归一化、UB 容量评估和多核切分。 - 增加输入 rank、scale/batch_variance 一维约束及通道长度一致性校验,并处理空 Tensor 场景。 3. **AscendC Kernel** - 新增 Ascend 950 Kernel 入口及 BnInferGradKernel 模板实现。 - FP32 路径直接计算;FP16/BF16 路径转为 FP32 计算后再转换回原数据类型。 - 通过 NDDMA 随路广播读取 scale 和 batch_variance,支持多核分片计算与结果搬出。 4. **示例、测试与文档** - 新增 FP16 多核广播、BF16 数值校验的 GEIR 图模式示例,并覆盖非法输入 rank 拒绝场景。 - 新增 Tiling、InferShape、Kernel UT 及 Python Golden。 - 新增算子 README,并更新中文算子清单。 ## 关联的 Issue - https://gitcode.com/cann/ops-nn/issues/4333 ## 测试 - **Tiling UT**:覆盖 FP16/FP32/BF16、2D~5D、RANK_4/RANK_8 分发、C 维广播、空 Tensor、多核大 Shape,以及 rank/通道长度非法场景。 - **InferShape UT**:覆盖 2D、4D、5D 输入,校验输出 shape 跟随 grads。 - **Kernel UT**:覆盖 FP32 的 RANK_4、RANK_8 数值结果校验。 - **GEIR 示例**:覆盖 FP16 多核广播数值校验、BF16 数值校验,以及非法 scale/batch_variance rank 拒绝场景。 - **CI**:编译、ophost/opapi/kernel/opgraph UT、PreSmoke 和静态检查已通过;当前 API_Check 为 WARNING,后续以 PR 页面最新流水线结果为准。 ## 文档更新 - 新增 norm/bn_infer_grad/README.md,补充产品支持、计算公式、参数约束和调用示例。 - 更新 docs/zh/op_list.md,新增 BNInferGrad 算子条目。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7960 | 1 个月前 |
| 批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 3 个月前 |
| docs: fix aclnnAddmm sample results and QUICKSTART soc placeholder Co-authored-by: liyuanqiang<liyuanqiang@huawei.com> # message auto-generated for no-merge-commit merge: !7868 merge issues into master docs: fix aclnnAddmm sample results and QUICKSTART soc placeholder Created-by: liyuanqiang Commit-by: liyuanqiang Merged-by: cann-robot Description: ## 描述 修改文档中的样例错误、soc引用错误。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue: [#3638](https://gitcode.com/cann/ops-nn/issues/3638) [#3636](https://gitcode.com/cann/ops-nn/issues/3636) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7868 | 1 个月前 |
| docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 1 个月前 |