已关闭
[Requirement|需求建议]: 算子 tiling 报错日志规范化 - op_loge 整改 #3631
陈思创建于  6月27日关闭于  6月29日
陈思
陈思
6月27日 创建

Backgroud(背景信息)

当前 cann/ops-nn 仓库中 conv / foreach / norm / quant 等多个算子 host 侧 tiling 代码使用通用 OP_LOGE(nodeName, "...") 输出报错信息,仅有一段自然语言描述,缺少错误分类、参数名与实际值,不符合 op_loge 日志规范,下游定位非法输入参数时困难。

Origin(信息来源)

算子质量与报错规范化整改 —— 落实 op_loge 日志规范(按错误类型分类、携带参数名 / 实际值 / 原因)。

Benefit / Necessity(价值/作用)

  • 报错信息按错误类型分类(dtype / shape / shapedim / shapesize / value 等),并通过参数名 + 实际值 + 原因描述精确定位非法输入,显著降低模型训练 / 推理阶段的问题排查成本。
  • 统一全仓算子报错格式,便于日志聚合、自动分析与文档化。
  • 不改变算子原有校验逻辑与返回值,风险可控。

Design(设计方案)

将上述算子 tiling 中的 OP_LOGE(...) 替换为 OP_LOGE_FOR_INVALID_*_WITH_REASON 系列宏,按错误类型选择对应宏,统一传入 (nodeName, paramName, actualValue, reason)

错误类型 选用宏
单值/多值非法 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON / OP_LOGE_FOR_INVALID_VALUES_WITH_REASON
dtype 非法 OP_LOGE_FOR_INVALID_DTYPE_WITH_REASON
dtype 组合非法 OP_LOGE_FOR_INVALID_DTYPES_WITH_REASON
单 shape size 非法 OP_LOGE_FOR_INVALID_SHAPESIZE_WITH_REASON
多 shape size 不一致 OP_LOGE_FOR_INVALID_SHAPESIZES_WITH_REASON
shape 维度数非法 OP_LOGE_FOR_INVALID_SHAPEDIM(_WITH_REASON)
shape 非法 OP_LOGE_FOR_INVALID_SHAPE_WITH_REASON

涉及算子(共 8 个文件):

  • conv:deformable_offsets(arch35)、deformable_offsets_grad(arch35)
  • foreach:foreach_non_finite_check_and_unscale
  • norm:group_norm_gradgroup_norm_silu(arch35)、group_norm_v2(arch35)
  • quant:dequant_swiglu_quantdequant_swiglu_quant(arch35)

关联 PR:https://gitcode.com/cann/ops-nn/pull/6677

likedislike
陈思陈思
6月27日 添加了label:requirement
陈思
陈思
6月27日 评论:

/assign @chensi79

likedislike
CANN-robotCANN-robot成员
6月27日 将 chensi79 设为负责人
CANN-robotCANN-robot成员
6月29日 关闭了 issue
CANN-robotCANN-robot成员
6月29日 添加了label:resolved