已关闭
[Bug-Report|缺陷反馈]: sign_bits_unpack 的 InferShape 不支持未知 rank/dim 输入,动态 shape 场景推导失败 #3640
zhanw_coding创建于  6 天前关闭于  3 天前
zhanw_coding
zhanw_coding成员
6 天前 创建

一、问题描述 (必填)

SignBitsUnpack 算子的 InferShape 推导仅支持 1 维且维度已知的输入,在动态 shape 场景下会推导失败:

  • 当输入 x 为未知 rank(unknown rank)时,原实现直接读取 GetDim(0) 并按「x 必须 1 维」校验,导致未知 rank 场景返回 GRAPH_FAILED;
  • 当输入 x 的维度为未知值(-1)时,xShape * 8 以 -1 参与计算,导致整除校验与输出维度推导错误。

期望 InferShape 能兼容动态 shape:

  • 输入未知 rank → 输出 shape 置为未知 rank,返回成功;
  • 输入维度为 -1(UNKNOWN_DIM)→ 输出 shape 置为 [size, -1],返回成功。

此外,原实现使用通用 OP_LOGE 输出错误,错误信息不够结构化;期望改用 OP_LOGE_WITH_INVALID_ATTR / OP_LOGE_FOR_INVALID_SHAPEDIM / OP_LOGE_FOR_INVALID_SHAPESIZE / OP_LOGE_FOR_INVALID_VALUE 等结构化日志宏。

二、环境信息 (可选)

三、重现步骤 (可选)

  1. 构造 SignBitsUnpack 算子,输入 x 为 1 维但维度未知(-1),属性 size=2;
  2. 触发 InferShape 推导;
  3. 观察输出 shape 与返回状态。

四、预期结果 (可选)

  • 输入未知 rank → InferShape 成功,输出为未知 rank;
  • 输入维度为 -1 → InferShape 成功,输出 shape 为 [size, -1]。

💡 备注(选填)

likedislike
zhanw_codingzhanw_coding成员
6 天前 添加了label:bug-report
zhanw_coding
zhanw_coding成员
6 天前 评论:

/assign

likedislike
CANN-robotCANN-robot成员
6 天前 将 zhanw_coding 设为负责人
CANN-robotCANN-robot成员
3 天前 关闭了 issue
CANN-robotCANN-robot成员
3 天前 添加了label:resolved