Closed
[Bug-Report|缺陷反馈]: circular_pad等3个pad算子op_host侧存在E*9***内部错误码(EZ9999)未整改 #4548
WangJinChengAdd on  5 days agoClosed at  5 days ago
WangJinCheng
WangJinChengCollaborators
5 days ago Create

一、问题描述 (必填)

按照「E9*** 内部错误码清零」整改要求扫描,ops-math 仓库 circular_pad、circular_pad_grad、pad_v3_grad_replication 三个算子的 op_host 侧(A2/A3 及公共部分)存在 44 处 EZ9999 内部错误码静态命中,未整改为正式语义错误码,具体分两类:

  1. OP_CHECK_NULL_WITH_CONTEXT 判空宏(log.h:1089):内部以 OP_LOGE 上报 EZ9999,例如:

    • circular_pad_common_tiling.cpp(GetShapeAttrsInfo/GetPlatformInfo):paddings、x_shape、y_shape、compileInfoPtr 判空
    • circular_pad_tiling.cpp / circular_pad_grad_tiling.cpp / pad_v3_grad_replication_tiling.cpp(TilingPrepare*):compileInfo、platformInfo 判空
    • 三个算子的 infershape:输入/输出 shape 判空
      这些场景均为用户参数问题或 tiling 框架信息获取失败,应分别上报 EZ0004(参数为空)/ EZ1008(tiling 执行失败),而非内部异常码 EZ9999。
  2. 裸 OP_LOGE 调用(log.h:1076):默认携带 REPORT_INNER_ERR_MSG("EZ9999"),例如:

    • grad tiling 的 CheckLeftAndRight/CheckTopAndBottom/CheckFrontAndBack 边界校验(9 处)
    • coreNum/ubSize/vectorCoreNum/ubByteSize 获取失败、UB 容量超限
    • dtype/dim/paddings 数量/负维度校验、infershape 负维检查
      这些均为用户输入不合法,应使用 OP_LOGE_FOR_INVALID_*_WITH_REASON 语义宏族上报对应参数错误码。

EZ9999 为内部异常兜底码,用户参数类错误上报 EZ9999 会干扰错误定界(无法区分"用户用法错误"与"内部异常"),不符合错误码语义化整改规范。

涉及文件(7 个,arch35 平台另有命中但不在本次范围):

  • conversion/circular_pad/op_host/arch22/circular_pad_common_tiling.cpp(4 处)
  • conversion/circular_pad/op_host/arch22/circular_pad_tiling.cpp(5 处)
  • conversion/circular_pad/op_host/circular_pad_infershape.cpp(2 处)
  • conversion/circular_pad_grad/op_host/arch22/circular_pad_grad_tiling.cpp(16 处)
  • conversion/circular_pad_grad/op_host/circular_pad_grad_infershape.cpp(4 处)
  • conversion/pad_v3_grad_replication/op_host/arch22/pad_v3_grad_replication_tiling.cpp(9 处)
  • conversion/pad_v3_grad_replication/op_host/pad_v3_grad_replication_infershape.cpp(4 处)

二、环境信息 (可选)

• 仓库:ops-math(CANN 算子仓,conversion 目录)
• 扫描口径:E9** 静态命中(Excel 扫描表),覆盖 OP_CHECK_NULL_WITH_CONTEXT 与裸 OP_LOGE

三、重现步骤 (可选)

静态扫描即可复现:对上述 7 个文件 grep OP_CHECK_NULL_WITH_CONTEXT 与 OP_LOGE(,命中即上报 EZ9999(参照 log.h:1089/1076 宏定义展开)。

四、预期结果 (可选)

44 处命中全部替换为预定义语义错误码,且不改变校验条件与返回控制流:

  • 输入/输出判空 → OP_LOGE_WITH_INVALID_INPUT(EZ0004)
  • shape/dim/size/dtype/value 校验 → OP_LOGE_FOR_INVALID_*_WITH_REASON 宏族(EZ0010/0012/0016/0020/0027),日志补充具体参数值与 reason
  • tiling 框架执行失败(compileInfo/platformInfo 判空、coreNum/ubSize 获取失败、UB 容量超限)→ ReportTilingFailure 封装(EZ1008,对齐 diag_flat 官方范式)
  • A2/A3 及公共部分残留清零;arch35(A5 平台)由对应团队另行整改

💡 备注:修复 PR 见关联链接。

likedislike
WangJinChengWangJinChengCollaborators
5 days ago Added label: bug-report
WangJinChengWangJinChengCollaborators
5 days ago Associated pull request
CANN-robotCANN-robotCollaborators
5 days ago Close issue
CANN-robotCANN-robotCollaborators
5 days ago Added label: resolved