| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11068 merge feat/norm-ascend950-normalize-ops into master feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 新增 Ascend 950 平台的 L2Normalize 和 LpNormReduce 算子实现,统一按 GE 图模式交付,不包含 ACLNN 接口。 ### L2Normalize - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel、二进制配置及 GEIR 调用样例。 - 支持 FLOAT16、FLOAT32 和 1~8 维 ND Tensor;输出与输入同 shape、同 dtype。 - 支持空或省略 axis 时的逐元素归一化、多轴联合归约、负索引折算和重复轴去重;eps 不限制符号并按公开公式参与计算,非有限值行为不定义。 - 支持空 Tensor、动态 shape、未知 rank 和非连续 Tensor;FLOAT16 输入在内部提升为 FLOAT32 计算。 - Kernel 包含 Loop、Group 和 Empty 三类路径,并包含 GM 对齐回退、补偿求和及 FP32 subnormal 处理。 ### LpNormReduce - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel 及三档二进制配置。 - 支持 FLOAT16、FLOAT32、BFLOAT16,以及 p=0、p=1、非负 int64 有限 p 和正负无穷哨兵对应的归约路径。 - 支持重复 axes 去重、rank-0 标量、未知 rank 透传,并校验输出 dtype、format 和 shape。 - 大有限 p 使用二进制快速幂;shape 连乘、分核和 workspace 计算包含 int64 溢出保护。 ### 集成说明 - 基于上游最新 master(6bf411a1c5c8bfde94573ad49f76628550c04c7f)创建组合分支,功能代码分别来自原 PR #10832 和 #10489。 - docs/zh/op_list.md 同时保留 L2Normalize 和 LpNormReduce 两项索引,没有带入无关提交。 - 合并后按仓库当前 clang-format 规则规范化 9 个 LpNormReduce 源码/测试文件;这些变更仅为格式调整,不改变功能语义。 - 当前分支相对上游 master 仅有 1 个提交(e40431f95139539cfd122e9794eb47afc04fa702)。 - 两个算子交付范围均为 GE 图模式;已有 ACLNN 通路测试仅作为 Host Tiling 和 Kernel 正确性证据,不作为本 PR 的接口交付。 ## 关联的Issue 关联 Issue:#6146(https://gitcode.com/cann/ops-nn/issues/6146) ## 测试 ### L2Normalize - Ascend 950PR 上完成 Kernel L1、GEIR L0、异常用例及关键缺陷回归;有效用例精度通过,宿主 OOM 与非有限 eps 病态输入按既有记录区分处理。 - 无 ACLNN 新包的 GE 冒烟通过;Host Tiling 与 InferShape UT 随构建执行通过。 ### LpNormReduce - Ascend 950 上构建成功,Host Tiling UT 87/87、正向黑盒 399/399、负向 14/14、Torch 20/20 以及 TorchAir 静态/动态回归通过。 - 大 p、超大合法 shape、rank-0、BFLOAT16 和重复 axes 等专项复现器 7/7 通过。 ### 组合分支本地 CI - CI 范围严格限定为 l2_normalize,lp_norm_reduce,构建并发使用 -j16。 - pre-commit、隔离 OAT、Markdown 链接检查、L2Normalize GEIR 样例语法检查全部通过。 - Ascend 950 与 Ascend 910B 的定向 package 构建和适用 UT 全部通过,脚本最终结果为“定向检查全部通过”。 - 远端 Git Hooks 检查通过。 ## 文档更新 - 新增 norm/l2_normalize/README.md、norm/lp_norm_reduce/README.md。 - 新增 L2Normalize GEIR 调用样例。 - 更新 docs/zh/op_list.md,增加两个算子的产品支持与功能索引。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11068 | 1 个月前 | |
feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11068 merge feat/norm-ascend950-normalize-ops into master feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 新增 Ascend 950 平台的 L2Normalize 和 LpNormReduce 算子实现,统一按 GE 图模式交付,不包含 ACLNN 接口。 ### L2Normalize - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel、二进制配置及 GEIR 调用样例。 - 支持 FLOAT16、FLOAT32 和 1~8 维 ND Tensor;输出与输入同 shape、同 dtype。 - 支持空或省略 axis 时的逐元素归一化、多轴联合归约、负索引折算和重复轴去重;eps 不限制符号并按公开公式参与计算,非有限值行为不定义。 - 支持空 Tensor、动态 shape、未知 rank 和非连续 Tensor;FLOAT16 输入在内部提升为 FLOAT32 计算。 - Kernel 包含 Loop、Group 和 Empty 三类路径,并包含 GM 对齐回退、补偿求和及 FP32 subnormal 处理。 ### LpNormReduce - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel 及三档二进制配置。 - 支持 FLOAT16、FLOAT32、BFLOAT16,以及 p=0、p=1、非负 int64 有限 p 和正负无穷哨兵对应的归约路径。 - 支持重复 axes 去重、rank-0 标量、未知 rank 透传,并校验输出 dtype、format 和 shape。 - 大有限 p 使用二进制快速幂;shape 连乘、分核和 workspace 计算包含 int64 溢出保护。 ### 集成说明 - 基于上游最新 master(6bf411a1c5c8bfde94573ad49f76628550c04c7f)创建组合分支,功能代码分别来自原 PR #10832 和 #10489。 - docs/zh/op_list.md 同时保留 L2Normalize 和 LpNormReduce 两项索引,没有带入无关提交。 - 合并后按仓库当前 clang-format 规则规范化 9 个 LpNormReduce 源码/测试文件;这些变更仅为格式调整,不改变功能语义。 - 当前分支相对上游 master 仅有 1 个提交(e40431f95139539cfd122e9794eb47afc04fa702)。 - 两个算子交付范围均为 GE 图模式;已有 ACLNN 通路测试仅作为 Host Tiling 和 Kernel 正确性证据,不作为本 PR 的接口交付。 ## 关联的Issue 关联 Issue:#6146(https://gitcode.com/cann/ops-nn/issues/6146) ## 测试 ### L2Normalize - Ascend 950PR 上完成 Kernel L1、GEIR L0、异常用例及关键缺陷回归;有效用例精度通过,宿主 OOM 与非有限 eps 病态输入按既有记录区分处理。 - 无 ACLNN 新包的 GE 冒烟通过;Host Tiling 与 InferShape UT 随构建执行通过。 ### LpNormReduce - Ascend 950 上构建成功,Host Tiling UT 87/87、正向黑盒 399/399、负向 14/14、Torch 20/20 以及 TorchAir 静态/动态回归通过。 - 大 p、超大合法 shape、rank-0、BFLOAT16 和重复 axes 等专项复现器 7/7 通过。 ### 组合分支本地 CI - CI 范围严格限定为 l2_normalize,lp_norm_reduce,构建并发使用 -j16。 - pre-commit、隔离 OAT、Markdown 链接检查、L2Normalize GEIR 样例语法检查全部通过。 - Ascend 950 与 Ascend 910B 的定向 package 构建和适用 UT 全部通过,脚本最终结果为“定向检查全部通过”。 - 远端 Git Hooks 检查通过。 ## 文档更新 - 新增 norm/l2_normalize/README.md、norm/lp_norm_reduce/README.md。 - 新增 L2Normalize GEIR 调用样例。 - 更新 docs/zh/op_list.md,增加两个算子的产品支持与功能索引。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11068 | 1 个月前 | |
feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11068 merge feat/norm-ascend950-normalize-ops into master feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 新增 Ascend 950 平台的 L2Normalize 和 LpNormReduce 算子实现,统一按 GE 图模式交付,不包含 ACLNN 接口。 ### L2Normalize - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel、二进制配置及 GEIR 调用样例。 - 支持 FLOAT16、FLOAT32 和 1~8 维 ND Tensor;输出与输入同 shape、同 dtype。 - 支持空或省略 axis 时的逐元素归一化、多轴联合归约、负索引折算和重复轴去重;eps 不限制符号并按公开公式参与计算,非有限值行为不定义。 - 支持空 Tensor、动态 shape、未知 rank 和非连续 Tensor;FLOAT16 输入在内部提升为 FLOAT32 计算。 - Kernel 包含 Loop、Group 和 Empty 三类路径,并包含 GM 对齐回退、补偿求和及 FP32 subnormal 处理。 ### LpNormReduce - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel 及三档二进制配置。 - 支持 FLOAT16、FLOAT32、BFLOAT16,以及 p=0、p=1、非负 int64 有限 p 和正负无穷哨兵对应的归约路径。 - 支持重复 axes 去重、rank-0 标量、未知 rank 透传,并校验输出 dtype、format 和 shape。 - 大有限 p 使用二进制快速幂;shape 连乘、分核和 workspace 计算包含 int64 溢出保护。 ### 集成说明 - 基于上游最新 master(6bf411a1c5c8bfde94573ad49f76628550c04c7f)创建组合分支,功能代码分别来自原 PR #10832 和 #10489。 - docs/zh/op_list.md 同时保留 L2Normalize 和 LpNormReduce 两项索引,没有带入无关提交。 - 合并后按仓库当前 clang-format 规则规范化 9 个 LpNormReduce 源码/测试文件;这些变更仅为格式调整,不改变功能语义。 - 当前分支相对上游 master 仅有 1 个提交(e40431f95139539cfd122e9794eb47afc04fa702)。 - 两个算子交付范围均为 GE 图模式;已有 ACLNN 通路测试仅作为 Host Tiling 和 Kernel 正确性证据,不作为本 PR 的接口交付。 ## 关联的Issue 关联 Issue:#6146(https://gitcode.com/cann/ops-nn/issues/6146) ## 测试 ### L2Normalize - Ascend 950PR 上完成 Kernel L1、GEIR L0、异常用例及关键缺陷回归;有效用例精度通过,宿主 OOM 与非有限 eps 病态输入按既有记录区分处理。 - 无 ACLNN 新包的 GE 冒烟通过;Host Tiling 与 InferShape UT 随构建执行通过。 ### LpNormReduce - Ascend 950 上构建成功,Host Tiling UT 87/87、正向黑盒 399/399、负向 14/14、Torch 20/20 以及 TorchAir 静态/动态回归通过。 - 大 p、超大合法 shape、rank-0、BFLOAT16 和重复 axes 等专项复现器 7/7 通过。 ### 组合分支本地 CI - CI 范围严格限定为 l2_normalize,lp_norm_reduce,构建并发使用 -j16。 - pre-commit、隔离 OAT、Markdown 链接检查、L2Normalize GEIR 样例语法检查全部通过。 - Ascend 950 与 Ascend 910B 的定向 package 构建和适用 UT 全部通过,脚本最终结果为“定向检查全部通过”。 - 远端 Git Hooks 检查通过。 ## 文档更新 - 新增 norm/l2_normalize/README.md、norm/lp_norm_reduce/README.md。 - 新增 L2Normalize GEIR 调用样例。 - 更新 docs/zh/op_list.md,增加两个算子的产品支持与功能索引。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11068 | 1 个月前 | |
perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11237 merge quality/l2-normalize-golden-20260923 into master perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 加固 L2Normalize 的 Ascend 950 实现与独立精度基准,仅修改本算子的两个 arch35 kernel 头文件和 tests/assets/golden.py。 - Base 路径:FP16 长归约按 64-lane 分组进行补偿求和,降低串行累加开销;屏蔽 Inf/NaN 引起的无效补偿残差,保留主累加值的特殊值传播。 - Group 路径:第三阶段按分母槽位与归约块重新分配所有核,改善大归约、少分组场景的并行度;保留跨阶段同步。 - Golden:使用独立 NumPy FP64 真值核,全计算链不提前降精度;对齐轴归一化/去重,保留独立 PyTorch 标杆,移除本算子未交付的 ACLNN 注册。 - 不修改 REG_OP、Host/Tiling、公开接口及公共构建文件。 ## 关联的Issue 关联 Issue #6229:https://gitcode.com/cann/ops-nn/issues/6229 ## 测试 - 本地 CI 已通过:定向 pre-commit、Ascend 950/910b 编译及实际存在的 Host UT;CANN 9.0.0 隔离环境编译通过,构建并行度不超过 8。 - 分阶段定向精度回归:Base 161/161(特殊值防护前);最终版本特殊值 24/24、对照 64/64、大 shape 1/1、历史慢用例 41/41、固定输入 4/4,通过。以上包含交叉用例,不作为唯一用例数相加。 - 最终版本 GEIR 常量 6/6、动态 6/6 通过。 - TTK 所有测试显式单进程,Golden 未因性能优化而降级或放宽阈值。 - 额外性能补集 211/211 cross_check 精度通过,全部 BINARY_MATCH;本次补测没有引起源码或 Golden 修改。 - 正式性能:254 个独立用例中 252 个非空用例全部计时、2 个空 Tensor 标记 N/A;5 条完全重复记录去重,没有按性能过滤用例。Ascend 950 release binary 对比 A100 的 torch.compile(fullgraph=True) F.normalize,raw G/N(fold=1)平均 2.589133,最低 0.172636,均通过 mean≥1.2、min≥0.1 的门槛。 - NPU 5 次采样排除首样本、余下 4 次取中位;GPU 20 次预热、20 次 NVTX 范围内 CUDA kernel 总耗时取中位,不计 Host 时间。252 条 NPU 原始采样均与明细核对一致,GPU 逐例 compiled/eager 校验通过。最保守 GPU 最小采样 / NPU 最大稳态采样的全体最小比值为 0.170783。 - 性能比较保持 shape/dtype/属性一致,但 GPU/NPU 输入数组并非逐位相同;本轮 kernel 性能结果不代替历史 GEIR 通路缺失的 GPU 性能对照。 ## 文档更新 算子接口和产品支持范围未变;本 PR 不修改 README。测试与性能证据在独立迭代交付件中更新,不混入源码仓库。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:独立高精度 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11237 | 1 个月前 | |
perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11237 merge quality/l2-normalize-golden-20260923 into master perf(l2_normalize): 优化 Ascend 950 长归约并加固高精度 Golden Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 加固 L2Normalize 的 Ascend 950 实现与独立精度基准,仅修改本算子的两个 arch35 kernel 头文件和 tests/assets/golden.py。 - Base 路径:FP16 长归约按 64-lane 分组进行补偿求和,降低串行累加开销;屏蔽 Inf/NaN 引起的无效补偿残差,保留主累加值的特殊值传播。 - Group 路径:第三阶段按分母槽位与归约块重新分配所有核,改善大归约、少分组场景的并行度;保留跨阶段同步。 - Golden:使用独立 NumPy FP64 真值核,全计算链不提前降精度;对齐轴归一化/去重,保留独立 PyTorch 标杆,移除本算子未交付的 ACLNN 注册。 - 不修改 REG_OP、Host/Tiling、公开接口及公共构建文件。 ## 关联的Issue 关联 Issue #6229:https://gitcode.com/cann/ops-nn/issues/6229 ## 测试 - 本地 CI 已通过:定向 pre-commit、Ascend 950/910b 编译及实际存在的 Host UT;CANN 9.0.0 隔离环境编译通过,构建并行度不超过 8。 - 分阶段定向精度回归:Base 161/161(特殊值防护前);最终版本特殊值 24/24、对照 64/64、大 shape 1/1、历史慢用例 41/41、固定输入 4/4,通过。以上包含交叉用例,不作为唯一用例数相加。 - 最终版本 GEIR 常量 6/6、动态 6/6 通过。 - TTK 所有测试显式单进程,Golden 未因性能优化而降级或放宽阈值。 - 额外性能补集 211/211 cross_check 精度通过,全部 BINARY_MATCH;本次补测没有引起源码或 Golden 修改。 - 正式性能:254 个独立用例中 252 个非空用例全部计时、2 个空 Tensor 标记 N/A;5 条完全重复记录去重,没有按性能过滤用例。Ascend 950 release binary 对比 A100 的 torch.compile(fullgraph=True) F.normalize,raw G/N(fold=1)平均 2.589133,最低 0.172636,均通过 mean≥1.2、min≥0.1 的门槛。 - NPU 5 次采样排除首样本、余下 4 次取中位;GPU 20 次预热、20 次 NVTX 范围内 CUDA kernel 总耗时取中位,不计 Host 时间。252 条 NPU 原始采样均与明细核对一致,GPU 逐例 compiled/eager 校验通过。最保守 GPU 最小采样 / NPU 最大稳态采样的全体最小比值为 0.170783。 - 性能比较保持 shape/dtype/属性一致,但 GPU/NPU 输入数组并非逐位相同;本轮 kernel 性能结果不代替历史 GEIR 通路缺失的 GPU 性能对照。 ## 文档更新 算子接口和产品支持范围未变;本 PR 不修改 README。测试与性能证据在独立迭代交付件中更新,不混入源码仓库。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:独立高精度 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11237 | 1 个月前 | |
feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11068 merge feat/norm-ascend950-normalize-ops into master feat(norm): add Ascend 950 L2Normalize and LpNormReduce implementations Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 新增 Ascend 950 平台的 L2Normalize 和 LpNormReduce 算子实现,统一按 GE 图模式交付,不包含 ACLNN 接口。 ### L2Normalize - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel、二进制配置及 GEIR 调用样例。 - 支持 FLOAT16、FLOAT32 和 1~8 维 ND Tensor;输出与输入同 shape、同 dtype。 - 支持空或省略 axis 时的逐元素归一化、多轴联合归约、负索引折算和重复轴去重;eps 不限制符号并按公开公式参与计算,非有限值行为不定义。 - 支持空 Tensor、动态 shape、未知 rank 和非连续 Tensor;FLOAT16 输入在内部提升为 FLOAT32 计算。 - Kernel 包含 Loop、Group 和 Empty 三类路径,并包含 GM 对齐回退、补偿求和及 FP32 subnormal 处理。 ### LpNormReduce - 接入 REG_OP、V1/V2 shape 与 dtype 推导、Host Tiling、Ascend C Kernel 及三档二进制配置。 - 支持 FLOAT16、FLOAT32、BFLOAT16,以及 p=0、p=1、非负 int64 有限 p 和正负无穷哨兵对应的归约路径。 - 支持重复 axes 去重、rank-0 标量、未知 rank 透传,并校验输出 dtype、format 和 shape。 - 大有限 p 使用二进制快速幂;shape 连乘、分核和 workspace 计算包含 int64 溢出保护。 ### 集成说明 - 基于上游最新 master(6bf411a1c5c8bfde94573ad49f76628550c04c7f)创建组合分支,功能代码分别来自原 PR #10832 和 #10489。 - docs/zh/op_list.md 同时保留 L2Normalize 和 LpNormReduce 两项索引,没有带入无关提交。 - 合并后按仓库当前 clang-format 规则规范化 9 个 LpNormReduce 源码/测试文件;这些变更仅为格式调整,不改变功能语义。 - 当前分支相对上游 master 仅有 1 个提交(e40431f95139539cfd122e9794eb47afc04fa702)。 - 两个算子交付范围均为 GE 图模式;已有 ACLNN 通路测试仅作为 Host Tiling 和 Kernel 正确性证据,不作为本 PR 的接口交付。 ## 关联的Issue 关联 Issue:#6146(https://gitcode.com/cann/ops-nn/issues/6146) ## 测试 ### L2Normalize - Ascend 950PR 上完成 Kernel L1、GEIR L0、异常用例及关键缺陷回归;有效用例精度通过,宿主 OOM 与非有限 eps 病态输入按既有记录区分处理。 - 无 ACLNN 新包的 GE 冒烟通过;Host Tiling 与 InferShape UT 随构建执行通过。 ### LpNormReduce - Ascend 950 上构建成功,Host Tiling UT 87/87、正向黑盒 399/399、负向 14/14、Torch 20/20 以及 TorchAir 静态/动态回归通过。 - 大 p、超大合法 shape、rank-0、BFLOAT16 和重复 axes 等专项复现器 7/7 通过。 ### 组合分支本地 CI - CI 范围严格限定为 l2_normalize,lp_norm_reduce,构建并发使用 -j16。 - pre-commit、隔离 OAT、Markdown 链接检查、L2Normalize GEIR 样例语法检查全部通过。 - Ascend 950 与 Ascend 910B 的定向 package 构建和适用 UT 全部通过,脚本最终结果为“定向检查全部通过”。 - 远端 Git Hooks 检查通过。 ## 文档更新 - 新增 norm/l2_normalize/README.md、norm/lp_norm_reduce/README.md。 - 新增 L2Normalize GEIR 调用样例。 - 更新 docs/zh/op_list.md,增加两个算子的产品支持与功能索引。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11068 | 1 个月前 | |
docs(norm): 统一四个算子 README 的产品名称 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !11133 merge docs/fix-norm-product-tags into master docs(norm): 统一四个算子 README 的产品名称 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 按仓库[算子 README 文档模板](https://gitcode.com/cann/ops-nn/wiki/算子README文档模板),统一 INTrainingUpdateV2、INTrainingUpdateGradGammaBeta、L2Normalize 和 LpNormReduce 四份 README 的产品名称。 使用 Ascend 950PR&950DT系列产品、Atlas A3系列产品、Atlas A2系列产品、Atlas 200I/500 A2推理产品、Atlas推理系列产品、Atlas训练系列产品,同步统一正文中的产品称呼。产品支持情况、产品差异及其余内容保留原有表格或列表形式。本 PR 的最终净变更仅为产品名称替换。 ## 关联的Issue 关联的Issue:#6180(https://gitcode.com/cann/ops-nn/issues/6180)。 关联原功能 Issue #6147、#6146;对应已合入 PR #11067、#11068。 ## 测试 - [x] 四份文档的产品支持表名称及顺序与 README Wiki 模板一致。 - [x] 相对 PR 基线的内容等价检查通过:除产品名称替换外,文本、表格、公式、参数及排版保持一致。 - [x] 确认未新增 npu 芯片标签,Markdown 结构和相对链接检查通过。 - [x] git diff --check、pre-commit(含 codespell、OAT)及远端 Git Hooks 检查通过。 本次为纯文档修改,未执行算子编译及 NPU 测试。 ## 文档更新 - norm/in_training_update_v2/README.md - norm/in_training_update_grad_gamma_beta/README.md - norm/l2_normalize/README.md - norm/lp_norm_reduce/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11133 | 1 个月前 |
L2Normalize
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:对输入张量
x沿axis指定的轴列表做L2归一化,输出y与x同shape、同dtype。 -
计算公式:
s=∑i∈axisxi2(keepdims)s = \sum_{i \in axis} x_i^2 \quad (keepdims) s=i∈axis∑xi2(keepdims)
y=x/max(s,eps)y = x / \sqrt{\max(s, eps)} y=x/max(s,eps)
其中
eps为平方和的下限,先max后sqrt;当eps > 0时可避免全零/极小向量除零。 公开契约不限制eps的符号,eps <= 0时按上述公式直接计算;eps为非有限值(inf/nan)时行为不定义,调用方应传入有限值。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示被归一化的输入特征张量,即公式中的`x`。 | FLOAT16、FLOAT32 | ND |
| y | 输出 | 表示L2归一化结果张量,即公式中的`y`,shape和数据类型与`x`一致。 | FLOAT16、FLOAT32 | ND |
| axis | 可选属性 | 表示归一化轴列表,即公式中的`axis`,支持多轴联合归约与负索引折算,默认值为`{}`;省略或传入空列表时不做跨元素归约,逐元素计算。 | LIST_INT | - |
| eps | 可选属性 | 表示平方和的下限,即公式中的`eps`,默认值为1e-4。 | FLOAT | - |
产品差异说明
各支持产品的公开GEIR接口保持一致:x和y支持FLOAT16、FLOAT32和ND格式,y与x的shape和数据类型一致,运行时实际rank为1-8;axis和eps的语义与默认值也一致。各产品的具体能力和契约边界如下。
| 产品 | 实现与调用通路 | 静态shape能力 | 动态shape能力 | shape/rank及扩展场景 |
|---|---|---|---|---|
| Ascend 950PR&950DT系列产品 | 由本仓库的Ascend 950PR&950DT系列产品实现提供能力,通过GE图模式调用。 | FLOAT16、FLOAT32,ND→ND;支持1-8维具体shape,输出与输入同shape、同dtype。 | ND→ND;图推导支持未知维(-1)和未知rank({-2}),执行前需解析为1-8维具体shape。 |
不支持0维标量;支持某维为0的空Tensor及非连续Tensor。 |
| Atlas A3系列产品 Atlas A2系列产品 Atlas 200I/500 A2推理产品 Atlas推理系列产品 Atlas训练系列产品 |
由CANN存量实现提供能力,通过GE图模式调用。 | FLOAT16、FLOAT32,ND→ND;支持1-8维具体shape,输出与输入同shape、同dtype。 | ND→ND;CANN存量注册支持动态shape,运行时实际rank仍需满足1-8维的公开契约。 | 不支持0维标量;存量公开契约未明确承诺空Tensor、未知rank和非连续Tensor,本文档不将这些场景作为该类产品的对外能力。 |
约束说明
x、y仅支持FLOAT16、FLOAT32(数据类型一致),数据格式仅支持ND,维度为1-8,y.shape = x.shape,不支持0维标量输入。axis省略或为空列表时不归约,此时逐元素计算y = x / sqrt(max(x * x, eps));非空时每个元素的取值范围为[-rank(x), rank(x)),支持负索引折算,折算到同一维的重复项按一个归约轴处理。- 在Ascend 950PR&950DT系列产品上,支持空Tensor(某维为0时输出为同维空Tensor)、动态shape(某维为
-1)、未知维度数(shape的dims为{-2},由图编译阶段推导实际rank)与非连续Tensor。 - 在Ascend 950PR&950DT系列产品上,本算子为非原地实现,执行后输入
x保持不变;调用方应保证y与x底层内存不重叠。 - 在Ascend 950PR&950DT系列产品上,FLOAT16输入在算子内部提升为FLOAT32计算后回转FLOAT16输出。
调用说明
| 调用方式 | 调用样例 | 说明 | 支持产品 |
|---|---|---|---|
| GE图模式 | test_geir_l2_normalize | 通过算子IR构图方式调用L2Normalize算子。 | 全部支持产品 |