已关闭
Embedding 二维 indices 推导错误输出形状 #6512
KaranocaVe创建于  16 天前关闭于  8 天前
KaranocaVe
KaranocaVe
16 天前 创建

Embedding 二维 indices 推导错误输出形状

问题

Embedding 的 InferShape 先将 indices 的各维写入输出,随后把 weight 的 embedding width 固定写到 output[1]。当 indices rank 为 2 时,第二个 indices 维度被覆盖,新增的末维也没有设置;InferShape 仍返回成功。

复现

  • 输入 weight 形状:[8, 10]
  • 输入 indices 形状:[2, 3]
  • 预期输出形状:[2, 3, 10]
  • 固定源码基线实际输出:[2, 10, 0],返回 GRAPH_SUCCESS

同一算子的一维 indices [9] 原本可得到 [9, 10]。

影响

使用二维及更高 rank indices 的图会收到错误的 Embedding 输出形状,导致后续算子形状推导或执行与真实输出不符。

修复

将 weight 的最后一维写入 output[rank(indices)],保留 indices 的所有维度;增加二维 Host InferShape 回归用例。

Validation

验证记录

  • EmbeddingTest.* 定向 Host InferShape 测试 2 项通过:一维 indices 输出 [9, 10],二维 indices 输出 [2, 3, 10]。
  • git diff --check 和新增 C++ 测试的语法检查通过。
  • 未运行全量构建或 NPU 算子执行。

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

likedislike
KaranocaVeKaranocaVe
16 天前 关联了pull request:修复 Embedding 二维 indices 的输出形状推导
KaranocaVeKaranocaVe
16 天前 修改了issue 的描述
yuning_chenyuning_chen成员
16 天前 将 KaranocaVe 设为负责人
CANN-robotCANN-robot成员
8 天前 关闭了 issue
CANN-robotCANN-robot成员
8 天前 添加了label:resolved
KaranocaVe
KaranocaVe
6 天前 评论:

@chenfeng61 您好,这个 Issue 对应的修复已经合入:https://gitcode.com/cann/ops-nn/merge_requests/11750

开发者计划反馈,Issue 需要有 Accepted 标签才能计入积分,仅关闭或标记 resolved 还不够。目前这条 Issue 尚未标记 Accepted,麻烦您结合问题和已合入的修复复核一下;确认符合受理条件后,帮忙补上 Accepted 标签。

感谢您的支持!

likedislike