| 修改RmsNormGradQuant的aclnn文档中函数声明和代码不一致 Co-authored-by: relaxfish<guoxu48@huawei.com> # message auto-generated for no-merge-commit merge: !6788 merge RmsNormGradQuant_ziliao into master 修改RmsNormGradQuant的aclnn文档中函数声明和代码不一致 Created-by: guoxu7 Commit-by: relaxfish Merged-by: cann-robot Description: ## 描述 RmsNormGradQuant的aclnn文档中aclnnRmsNormGradQuantGetWorkspaceSize头文件和文档的算子声明不一致,修改为一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3717 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6788 | 19 天前 |
| 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 | 15 天前 |
| 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 | 15 天前 |
| fix: 修复 RmsNormGradQuant 全载模板并完善 shape 校验 Co-authored-by: guoxu7<guoxu48@huawei.com> # message auto-generated for no-merge-commit merge: !6265 merge fix_rngq into master fix: 修复 RmsNormGradQuant 全载模板并完善 shape 校验 Created-by: duchaune Commit-by: guoxu7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 RmsNormGradQuant 算子全载模板(full load)在 shape 校验和 UB 分块计算方面存在不足: 1. 输入/输出 tensor 的维度约束未在 OpProto 中明确,且 tiling 阶段缺少对 dy/x/rstd/gamma 维度关系及输出 shape 一致性的校验。 2. CalcTilingDataDx 中全载模板存在累加顺序问题,需要修复。 ### 改动方法 1. **补充 shape 维度约束与校验** - 在 rms_norm_grad_quant_proto.h 中明确 dy/x/dx 支持 2-8 维、rstd/gamma/dgamma 支持 1-7 维、scales_x/offset_x 支持 1 维。 - 在 RmsNormGradQuantRegbaseTiling 中新增 CheckShapeDimNum、CheckShapePrefixMatch、CheckShapeSuffixMatch 等校验函数。 - 在 CheckInputsShape 中增加 dy 维度范围检查、x.dimNum == rstd.dimNum + gamma.dimNum 关系检查、rstd 前缀匹配 x、gamma 后缀匹配 x,以及 dxOut/dgammaOut 与对应输入 shape 一致性检查。 2. . **修复全载 kernel 模板** - 在 rms_norm_grad_quant_dx_full_load.h 中的累加采取api调用,与反向算子保持一致。 4. **同步更新测试** - 在 test_rms_norm_grad_quant_tiling.cpp 中新增维度非法、维度关系非法、前缀/后缀不匹配、输出 shape 不匹配等负向 UT。 - 在 test_rms_norm_grad_quant.cpp 中删除已移除的 ubFactor 字段赋值。 ## 关联的Issue - #3435 ## 测试 本地验证解决累加问题,并且通过泛化测试和冒烟测试。 - 新增 op_host tiling 单测,覆盖 shape 维度与一致性校验的异常分支。 - 调整 op_kernel 单测,适配删除 ubFactor 后的 tiling data 结构。 - 现有 test_full_load_dgamma_* 等用例同步更新后通过。 ## 文档更新 - norm/rms_norm_grad_quant/op_graph/rms_norm_grad_quant_proto.h 中补充了各输入/输出 tensor 的 Support shape 说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6265 | 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 | 15 天前 |
| 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 | 15 天前 |
| 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 | 15 天前 |
| feat(norm): 新增RmsNormGradQuant算子支持反向梯度量化融合计算 Co-authored-by: guoxu7<guoxu48@huawei.com> # message auto-generated for no-merge-commit merge: !5336 merge RmsNormGradQuantPrint into master feat(norm): 新增RmsNormGradQuant算子支持反向梯度量化融合计算 Created-by: guoxu7 Commit-by: guoxu7 Merged-by: cann-robot Description: ## 描述 新增RmsNormGradQuant算子,将RmsNormGrad和Quantize两个算子融合,在反向传播过程中计算输入张量的梯度后直接对dx结果进行量化,减少搬入搬出操作,提升训练性能。 ### 改动原因 在大模型训练场景中,RmsNormGrad计算完梯度后通常需要再经过Quantize算子进行量化。两个算子分开执行会产生额外的数据搬运开销。通过算子融合,可以在计算完梯度后直接在片上完成量化,减少HBM访存次数。 ### 改动方法 - 新增完整的RmsNormGradQuant算子实现,包括: - op_api层:aclnnRmsNormGradQuant接口实现,支持两段式调用 - op_host层:算子定义(OpDef注册)、InferShape、Tiling策略(regbase/regbase_big_m/empty三种tiling模式) - op_kernel层:基于arch35(Ascend 950)的kernel实现,包含dx计算(full_load/split_d两种模式)和dgamma计算(常规/big_m两种模式) - op_graph层:算子IR proto定义 - 支持的输入数据类型:FLOAT32、FLOAT16、BFLOAT16 - 支持的输出数据类型:dx支持INT8、HIFLOAT8;dgamma为FLOAT32 - 支持的量化模式:static静态量化,支持div_mode控制量化公式使用乘法或除法 - 支持空Tensor输入,dy/x/rstd/gamma支持非连续Tensor ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3089 ## 测试 - op_api层单元测试:验证aclnn接口参数校验和调用流程 - op_host层单元测试:验证InferShape和Tiling逻辑正确性 - op_kernel层单元测试:验证kernel计算结果 - 泛化测试和冒烟测试 ## 文档更新 - docs/zh/op_api_list.md:新增aclnnRmsNormGradQuant接口条目 - docs/zh/op_list.md:新增RmsNormGradQuant算子条目 - norm/rms_norm_grad_quant/README.md:算子说明文档 - norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md:aclnn接口详细文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5336 | 1 个月前 |
| feat(norm): 新增RmsNormGradQuant算子支持反向梯度量化融合计算 Co-authored-by: guoxu7<guoxu48@huawei.com> # message auto-generated for no-merge-commit merge: !5336 merge RmsNormGradQuantPrint into master feat(norm): 新增RmsNormGradQuant算子支持反向梯度量化融合计算 Created-by: guoxu7 Commit-by: guoxu7 Merged-by: cann-robot Description: ## 描述 新增RmsNormGradQuant算子,将RmsNormGrad和Quantize两个算子融合,在反向传播过程中计算输入张量的梯度后直接对dx结果进行量化,减少搬入搬出操作,提升训练性能。 ### 改动原因 在大模型训练场景中,RmsNormGrad计算完梯度后通常需要再经过Quantize算子进行量化。两个算子分开执行会产生额外的数据搬运开销。通过算子融合,可以在计算完梯度后直接在片上完成量化,减少HBM访存次数。 ### 改动方法 - 新增完整的RmsNormGradQuant算子实现,包括: - op_api层:aclnnRmsNormGradQuant接口实现,支持两段式调用 - op_host层:算子定义(OpDef注册)、InferShape、Tiling策略(regbase/regbase_big_m/empty三种tiling模式) - op_kernel层:基于arch35(Ascend 950)的kernel实现,包含dx计算(full_load/split_d两种模式)和dgamma计算(常规/big_m两种模式) - op_graph层:算子IR proto定义 - 支持的输入数据类型:FLOAT32、FLOAT16、BFLOAT16 - 支持的输出数据类型:dx支持INT8、HIFLOAT8;dgamma为FLOAT32 - 支持的量化模式:static静态量化,支持div_mode控制量化公式使用乘法或除法 - 支持空Tensor输入,dy/x/rstd/gamma支持非连续Tensor ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3089 ## 测试 - op_api层单元测试:验证aclnn接口参数校验和调用流程 - op_host层单元测试:验证InferShape和Tiling逻辑正确性 - op_kernel层单元测试:验证kernel计算结果 - 泛化测试和冒烟测试 ## 文档更新 - docs/zh/op_api_list.md:新增aclnnRmsNormGradQuant接口条目 - docs/zh/op_list.md:新增RmsNormGradQuant算子条目 - norm/rms_norm_grad_quant/README.md:算子说明文档 - norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md:aclnn接口详细文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5336 | 1 个月前 |