已关闭
[Bug-Report|缺陷反馈]: RaggedBinCount GE 图推导截断不同 rank 的 weights 形状 #3641
raoliang_sac创建于  9 天前关闭于  3 天前
raoliang_sac成员
9 天前 创建

一、问题描述 (必填)

在 GEIR 构图时,RaggedBinCount 的旧 V1 InferShape 把 weights 的 rank 改成 values 的 rank。values=[6]、weights=[2,3] 会变为 weights=[2],随后报 non-empty weights must have the same element count as values;91,054,373 元素原尺寸同样复现。

当前 native InferShape 本来支持 values rank 1~2;问题不在其一维校验,也不是确定性修改引入。当前仓 op_graph 仅注册 dtype,GE 图通路仍可能回落到内置旧 V1 形状推导。

二、环境信息 (可选)

Ascend950PR_9579,任务内独立 CANN 9.3.0 weekly.20260923.01 Toolkit+ops;源码基线为 PR #6428 的 97415bb847a4aee6fc4cf645dfe265fea720f406。该包版本不等于现场版本,不能声称现场逐字节复现。

三、重现步骤 (可选)

在 GEIR 中构造 RaggedBinCount:splits=[0,6]、values shape=[6]、size=[5]、weights shape=[2,3],values/size 同为 int32 或 int64,weights/output 为 float32。执行图编译,旧推导将 weights 截成 [2]。

附件来源:https://gitcode.com/wangyueting/changwei_sunyibo/issues/6 。本次只处理当前 RaggedBinCount 的图推导;包内另一注册名 RaggedBincount 的历史一维限制应按其代码归属单独处理。

四、预期结果 (可选)

所有输入形状保持原样,仅推导 output=[numel(splits)-1,size[0]]。权重在 native 路径按展平后的元素数配对,合法的 rank/shape 不同组合应能执行。

修复在算子内补齐 V1 推导,并补真实注册入口 UT 与静态 GEIR 形状回归资产。两平台 UT 共 133 条记录通过;默认模式三方 54/54、确定性三方 16/16(每条重复三次输出一致)、独立三方冒烟 2/2 全部通过。保留原始结果 CSV,并逐条核对真实 GPU 状态和 cross_check 判据。两项修复现统一到 PR #6428,不再等待父 PR 单独合入,也不再单独合入草稿 #6454。

关联 PR:https://gitcode.com/cann/ops-math/pull/6428

原独立草稿(被上述PR替代):https://gitcode.com/cann/ops-math/pull/6454

合并提交验证(2026-10-17)

提交 56110ba62d60e3cc505028bf22c9716bc6e1aa45,官方 master 8ade3796f8fb22de7679569337fcbe6618b2ce32。整个算子目录与已验证的 2745680d 完全相同。

本轮指定统一入口 950/910b 本地 CI 全部通过,受测 56110ba62d60e3cc505028bf22c9716bc6e1aa45:pre-commit、隔离 oat-py 1.0.3(12 个完整变更文件)、链接/SKIP 检查、双平台定向 package、Host/Graph/API/Kernel 阶段及实际 GE 依赖门禁均 PASS;Host 71 + 32、Graph 15 + 15,共 133 条实际 GTest 记录,API 0 项不计作用例。本轮线上 run5212 已全部通过,54 个任务节点均 COMPLETED,三路 UT 及全部冒烟完成;compile 评论 已回查。实际 merge checkout a95a639f3a421c2989e5b9a4fba6138fb2eaf261 的两个父节点分别是上述 master 和本地受测 PR HEAD,三路 UT checkout 均已逐一核对。新增 14 项 GE 注册入口测试在两条相关 UT 路径均实际执行通过,原始日志无 GTest 失败。

likedislike
Rraoliang_sac成员
9 天前 添加了label:bug-report
Rraoliang_sac成员
9 天前 修改了issue 的描述
Rraoliang_sac成员
9 天前 修改了issue 的描述
Rraoliang_sac成员
9 天前 修改了issue 的描述
Rraoliang_sac成员
9 天前 修改了issue 的描述
陈思
陈思成员
9 天前 评论:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robot成员
9 天前 将 raoliang_sac 设为负责人
xujiachen8成员
3 天前 评论:

您好,感谢您提供完整的复现、定位和验证结果!本 Issue 所述 RaggedBinCount 图推导修改输入 weights 形状的问题,相关修复已通过 !6428 于 10 月 19 日合入 master。

修复保留输入张量的原始形状,仅推导输出形状;例如 values=[6]、weights=[2,3],不会再因将 weights 的 rank 对齐到 values 而截掉维度。相应回归覆盖了输入形状不同但元素数相同、int32/int64 常量 size、动态形状及重复推导等情况。后续主线已将这部分能力迁移至 V2 推导入口,并保留输入形状不变的注册入口测试。

以上结论针对本仓 RaggedBinCount 的源码修复;使用时需采用包含相应改动、且实际选中更新后推导入口的算子包。仍加载旧 legacy V1 注册的安装包不会因源码合入而自动生效,另一注册名 RaggedBincount 的历史限制也不包含在本条修复范围内。

本条按本仓修复已合入关闭。后续如在包含上述改动的环境中仍遇到相同问题,欢迎附上版本及最小复现继续反馈,我们会继续跟进。

likedislike
Xxujiachen8成员
3 天前 关闭了 issue