已关闭
[Bug-Report|缺陷反馈]: 加固 INInferV2、InTrainingReduceV2、NormalizeBBox 与 SGD #5872
raoliang_sac创建于  9月15日关闭于  9月17日
raoliang_sac成员
9月15日 创建

Describe the current behavior / 问题描述 (Mandatory / 必填)

INInferV2、InTrainingReduceV2、NormalizeBBox 和 SGD 在 arch35 实现及配套测试中存在以下质量加固项:

  • INInferV2 对输入 rank、dtype、维度乘法溢出以及 optional output 压实后的物理索引校验不完整,默认 epsilon、空 Tensor和高维场景的覆盖不足。
  • InTrainingReduceV2 的 Host/Graph shape 推导逻辑存在重复且口径不完全一致,Tiling 与 Kernel 的边界、整数计算和精度场景需要统一加固。
  • NormalizeBBox 对 shape、属性值、空 axes、跨 tile 数据和边界访问场景的校验及覆盖不足。
  • SGD 对默认属性和非法 weight_decay(包括 NaN)等输入的校验与回归覆盖不足。
  • 四个算子的 Kernel/GEIR TestSpec Golden 和 UT 覆盖不完整;需增加 Torch 与 TensorFlow 独立三方参考。四个算子均不提供 aclnn 单算子接口或 e2e Torch/TorchAir 绑定;ST 通过本地 TTK 用例验证,测试文件不纳入 PR。

关联 PR:https://gitcode.com/cann/ops-nn/merge_requests/10477

Environment Information / 环境信息 (Mandatory / 必填)

  • 昇腾硬件型号:Ascend950PR(TTK Device Platform:Ascend950PR_9579)
  • 目标代码架构:arch35
  • CANN 版本:9.2.0
  • TTK:工作目录 ops-test-kit,分支 add_ops_onto_master
  • Python 版本:3.12.9
  • 测试并发:小用例 --pc<=2,大 Shape --pc=1;构建并发 -j8

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

  1. 使用 CANN 9.2.0 编译并部署 INInferV2、InTrainingReduceV2、NormalizeBBox 和 SGD。
  2. 运行四算子的 Host/Graph/TF Plugin UT。
  3. 使用 TTK 覆盖 optional input/output、默认属性、空 Tensor、rank 2~8、ND shape、跨 tile、非法属性、整数溢出和大 Shape 等场景。
  4. 通过 TTK Kernel/GEIR TestSpec,分别以 Torch 和 TensorFlow 独立三方参考对 NPU 输出进行精度比对。
  5. 在加固前代码上可观察到部分非法输入缺少前置拦截、optional output 映射及图推导口径不完整,以及相应 Golden/回归用例缺失。

Describe the expected behavior / 预期结果 (Mandatory / 必填)

  • 四个算子的输入、属性、shape、dtype 和整数范围均按接口契约校验,非法输入在 Host/Tiling 阶段稳定返回失败。
  • INInferV2 optional output 压实、默认 epsilon、空 Tensor及支持范围内高维输入行为正确。
  • InTrainingReduceV2 的 Host 与 Graph shape 推导口径一致,Kernel 在小 Shape、大 Shape 和跨 tile 场景下无越界且精度达标。
  • NormalizeBBox 和 SGD 的默认属性、特殊边界与异常输入行为明确且可回归。
  • Kernel/GEIR TestSpec Golden 可由 TTK 稳定执行 Torch 与 TensorFlow 三方比对,不注册不存在的 aclnn 或 e2e 通路;相关 UT 持续通过,并由本地 TTK 用例完成 ST 验证。
  • 四算子编译、打包和部署通过,构建使用 -j8,峰值 cgroup 内存 26.54 GB。
  • Host UT:167/167 通过(INInferV2 39、InTrainingReduceV2 42、NormalizeBBox 53、SGD 33)。
  • INInferV2:Kernel/GEIR TestSpec 的 Torch/TF 三方比对各 100 条、optional output 6 条、GEIR optional output hole 2 条、高维 12 条、JIT 4 条通过。
  • InTrainingReduceV2:GEIR 100/100、Kernel 小 Shape 2/2、大 Shape 1/1,以及精度、二进制和越界检查通过;正式 stat_rel_err 口径 36/36 用例、72/72 输出通过。
  • NormalizeBBox:Kernel/GEIR TestSpec 的 Torch/TF 三方比对各 34 条、特殊场景 15 条、JIT 1 条、生成用例 332 条、性能用例 134 条通过。
  • SGD:Kernel/GEIR TestSpec 的 Torch/TF 三方比对各 50 条、生成用例 800 条、本地性能用例 144 条通过。
  • CodeCheck:68 PASS、0 FAIL、4 SUSPICIOUS;剩余项均为非阻塞性能建议。
  • 设计一致性检查:8/8 通过。

Special notes for this issue/备注 (Optional / 选填)

  • PR 共修改 42 个源码、Golden、UT 和 README 文件,不包含 tests/st/;提交为 a4b050782c87160db0229e51384c9d94a62f7dec。
  • SGD 剩余 56 条 A100 性能横向标杆因外部端点 /v1/heartbeat 返回 404 暂未执行,不影响本地功能和精度闭环。
likedislike
Rraoliang_sac成员
9月15日 添加了label:bug-report
raoliang_sac成员
9月15日 评论:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robot成员
9月15日 将 raoliang_sac 设为负责人
Rraoliang_sac成员
9月15日 修改了issue 的描述
Rraoliang_sac成员
9月15日 修改了issue 的描述
CANN-robotCANN-robot成员
9月17日 关闭了 issue
CANN-robotCANN-robot成员
9月17日 添加了label:resolved