| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !10477 merge fix/four-ops-quality-hardening into master fix(nn): 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 对 INInferV2、InTrainingReduceV2、NormalizeBBox 和 SGD 进行质量加固。当前 PR 实际修改 42 个受控文件,不包含 tests/st/ 目录及本地测试日志。 - **INInferV2**:补强 rank 2~8、shape、dtype、维度乘法溢出及 optional output 校验;使用 GetIrOutputInstanceInfo 处理 IR 输出序号与压实物理序号的映射,并修复 Tiling/Kernel 边界处理;将仅适用于 Ascend 950 的 tiling UT 归入 arch35,避免 A2 构建误收集。 - **InTrainingReduceV2**:统一 legacy V1 common infer 与 runtime2 infer 的 ND shape 推导口径,补强 Tiling/Kernel 的整数范围、地址计算和大 Shape 边界处理。 - **NormalizeBBox**:补强 shape、属性、空 axes、跨 tile 和边界访问校验,并完善 TensorFlow parser 回归。 - **SGD**:补强默认属性及 weight_decay 合法性校验,包含 NaN 拒收回归。 - 更新四个算子的 Kernel/GEIR TestSpec Golden,并分别提供 Torch、TensorFlow 独立参考实现,供 TTK 进行第三方精度比对。 - 四个算子均配置为 ACLNNTYPE aclnn_exclude,不提供 aclnn 单算子接口,也没有 Torch/TorchAir e2e 绑定;本次没有新增或宣称不存在的 aclnn/e2e 通路。真实调用通路为 GE 图模式,NormalizeBBox 另支持 TensorFlow 图导入。 - 补充 Host UT、Graph Infer UT 和 NormalizeBBox TensorFlow Plugin UT;更新四个 README 的接口约束、调用方式及产品差异说明。 ## 关联的Issue 关联 Issue #5872:https://gitcode.com/cann/ops-nn/issues/5872 ## 测试 - 本地定向 CI(提交 4887b775f,工作目录 CANN 9.2.0,构建并发 -j8):pre-commit 与 Markdown 链接检查 PASS。 - Ascend 950:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 144/144。 - Ascend 910B:package、Host UT、API UT、Graph UT、Kernel UT 全部 PASS;Host UT 112/112。INInferV2 arch35 tiling UT 未被 A2 收集,通用 infer-shape UT 保持执行。 - 本轮本地 CI 峰值 cgroup 内存约 17.8 GiB,30 GiB 保护未触发。 - 使用工作目录 ops-test-kit 的 add_ops_onto_master 分支验证;小用例 --pc<=2,大 Shape --pc=1。 - **INInferV2**:Torch/TF 独立三方各 100/100 PASS;既有泛化 900/900、rank 6~8 专项 12/12、optional output Kernel 6/6、GEIR 中间空洞 2/2、JIT 4/4、性能 150/150 PASS。 - **InTrainingReduceV2**:泛化 851/851、支持域性能 134/134、修复后 GEIR 100/100、最终 Kernel 小 Shape 2/2、大 Shape 1/1 PASS。原始 Torch/TF cross_check 中 11 项仅触发 RMSE ratio L1,随后按正式 stat_rel_err 标准复核,36/36 用例、72/72 个 NPU 输出 PASS。 - **NormalizeBBox**:Torch/TF 独立三方各 34/34、特殊值/缺省/空轴 15/15、非大 Shape 泛化 332/332、性能 134/134、跨 tile 2/2、JIT 1/1 PASS。 - **SGD**:Torch/TF 独立三方各 50/50、基础与扩展泛化合计 800/800、已完成性能 144/144 PASS;剩余 56 条为待补充的 A100 性能用例,不计作当前功能或 Golden 失败。 - CodeCheck 最终复扫:68 PASS、0 FAIL、4 SUSPICIOUS;4 项均为非阻断性能建议。 - 最终代码检视与设计一致性检查:8/8 PASS。 ## 文档更新 更新四个算子的 README,按仓库规范保留真实接口、约束、调用方式和多产品差异说明,不增加不存在的 aclnn 或 e2e 接口说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试与 Golden 加固 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10477 | 30 天前 | |
feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8130 merge feat/normalize_bbox_no_aclnn into master feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 变更说明 NormalizeBBox 算子 Ascend950(arch35 RegBase)重实现,仅支持 GEIR 图模式通路,不提供 aclnn 接口。 ### 算子功能 将目标检测预选框的绝对像素坐标,按对应图像的高(height)与宽(width)逐 batch 归一化到 [0, 1] 区间。每个框由 4 个坐标构成,y 系坐标除以 height、x 系坐标除以 width。 计算公式: 对第 b 个 batch,令 h = shapeHw[b, 0]、w = shapeHw[b, 1](int32 转 float): y[b,i] = boxes[b,i] / [h, w, h, w] ### 实现内容 - **op_host**:算子原型定义(def)、InferShape/InferDataType、RegBase Tiling(多核切分 + UB 规划) - **op_kernel(arch35)**:Ascend950 RegBase 内核,支持 fp16/fp32/bf16 三种 dtype,normal/reversed 两种 layout - **op_graph**:GEIR proto 声明(含 DT_BF16,对齐 950 实现) - **golden**:tests/assets/golden.py(numpy 复刻 cast 链,随 PR 上库) - **UT**:infershape UT(9 case,含 -1/-2 动态 shape)+ tiling UT(41 case,含负向校验) - **GEIR 测试**:examples/arch35/test_geir_normalize_bbox.cpp(真机 RunGraph 验证) - **文档**:README.md + docs/zh/op_list.md 条目 ### 产品支持 | 产品 | 支持 | |------|------| | Ascend 950PR/Ascend 950DT | √ | | Atlas A3 训练/推理系列产品 | √(built-in TBE) | | Atlas A2 训练/推理系列产品 | √(built-in TBE) | | Atlas 200I/500 A2 推理产品 | √(built-in TBE) | | Atlas 推理系列产品 | √(built-in TBE) | | Atlas 训练系列产品 | √(built-in TBE) | 注:Ascend950 为本 PR 新实现的 RegBase 内核;A2/A3/推理/训练系列由 canndev built-in TBE 实现支持。 ### 验证结果 | 测试项 | 规模 | 结果 | |--------|------|------| | ophost UT | 50 case | 50/50 PASS | | kernel UT | - | PASS | | 单算子出包 | --pkg --soc=ascend950 | SUCCESS | | 冒烟测试 | run_example graph(NPU 真机) | PASS,精度正确 | | pre-commit | 格式/拼写/OAT | PASS | | 文档链接 | MD 链接有效性 | PASS | ### 关联 Issue #4347 See merge request: cann/ops-nn!8130 | 2 个月前 | |
feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8130 merge feat/normalize_bbox_no_aclnn into master feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 变更说明 NormalizeBBox 算子 Ascend950(arch35 RegBase)重实现,仅支持 GEIR 图模式通路,不提供 aclnn 接口。 ### 算子功能 将目标检测预选框的绝对像素坐标,按对应图像的高(height)与宽(width)逐 batch 归一化到 [0, 1] 区间。每个框由 4 个坐标构成,y 系坐标除以 height、x 系坐标除以 width。 计算公式: 对第 b 个 batch,令 h = shapeHw[b, 0]、w = shapeHw[b, 1](int32 转 float): y[b,i] = boxes[b,i] / [h, w, h, w] ### 实现内容 - **op_host**:算子原型定义(def)、InferShape/InferDataType、RegBase Tiling(多核切分 + UB 规划) - **op_kernel(arch35)**:Ascend950 RegBase 内核,支持 fp16/fp32/bf16 三种 dtype,normal/reversed 两种 layout - **op_graph**:GEIR proto 声明(含 DT_BF16,对齐 950 实现) - **golden**:tests/assets/golden.py(numpy 复刻 cast 链,随 PR 上库) - **UT**:infershape UT(9 case,含 -1/-2 动态 shape)+ tiling UT(41 case,含负向校验) - **GEIR 测试**:examples/arch35/test_geir_normalize_bbox.cpp(真机 RunGraph 验证) - **文档**:README.md + docs/zh/op_list.md 条目 ### 产品支持 | 产品 | 支持 | |------|------| | Ascend 950PR/Ascend 950DT | √ | | Atlas A3 训练/推理系列产品 | √(built-in TBE) | | Atlas A2 训练/推理系列产品 | √(built-in TBE) | | Atlas 200I/500 A2 推理产品 | √(built-in TBE) | | Atlas 推理系列产品 | √(built-in TBE) | | Atlas 训练系列产品 | √(built-in TBE) | 注:Ascend950 为本 PR 新实现的 RegBase 内核;A2/A3/推理/训练系列由 canndev built-in TBE 实现支持。 ### 验证结果 | 测试项 | 规模 | 结果 | |--------|------|------| | ophost UT | 50 case | 50/50 PASS | | kernel UT | - | PASS | | 单算子出包 | --pkg --soc=ascend950 | SUCCESS | | 冒烟测试 | run_example graph(NPU 真机) | PASS,精度正确 | | pre-commit | 格式/拼写/OAT | PASS | | 文档链接 | MD 链接有效性 | PASS | ### 关联 Issue #4347 See merge request: cann/ops-nn!8130 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 30 天前 | ||
| 2 个月前 | ||
| 2 个月前 |