已关闭
[Bug-Report|缺陷反馈]: RaggedBinCount 未响应 GE 确定性开关 #3626
raoliang_sac创建于  18 天前关闭于  16 天前
raoliang_sac成员
18 天前 创建

一、问题描述 (必填)

Ascend 950 的 RaggedBinCount host tiling 未消费 GE 确定性选项。在非二值加权场景,显式开启 ge.deterministic=1 后仍可能走浮点 atomic 累加,同一输入多次执行会得到不同输出位模式。

默认模式的浮点归约允许不同累加顺序;本问题要求修复的是显式确定性请求未得到满足。原始反馈: https://gitcode.com/wangyueting/changwei_sunyibo/issues/5 。原反馈没有提供现场 SHA/seed/冻结输入,以下使用本地保存的相同输入验证,不能等同于现场逐字节复现。

二、环境信息 (可选)

  • 昇腾硬件型号:Ascend950PR_9579(56 AIV)。
  • CANN:独立 Master/Revise 安装,9.3.0 weekly.20260923。
  • 源码基线:2195fa02933f43719aebb9c6e6390e8f6ae81cd7。
  • TTK:fb6f02fcfa67bcd25c942875bad9f3023700f4ba,GEIR,显式 --pc=1 --dl=1。
  • 对照 GPU:NVIDIA A100,使用仓内 PyTorch 组合参考实现;并非 TensorFlow 原生 RaggedBincount CUDA kernel。

三、重现步骤 (可选)

  1. 使用非二值、FP32 权重的 RaggedBinCount;代表形状为一个输出 bin、40,306,591 个全零 value,或 28 行 × 8 bins、735,914 个 value。
  2. 保存 splits/values/size/weights,后续测试读取同一组二进制并核验 SHA256。
  3. 在 GEIR 显式开启确定性,使用相同输入重复执行至少 3 次,比较输出 MD5;源码基线仍出现不同 MD5。
  4. 应用关联 PR 后,两条冻结用例各 10 次输出 MD5 一致;完整验证结果与已知原判据例外在 PR 描述中列明。

四、预期结果 (可选)

同一平台、相同软件版本和输入,显式开启确定性时重复输出一致。不开启时保留已有快速路径;不承诺与 GPU 或其他软件版本逐位相同。

💡 备注(选填)

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

当前修复与验证(2026-10-17,两项修复统一提交)

当前由 PR https://gitcode.com/cann/ops-math/pull/6428 一起修复确定性开关与 GE weights 形状截断(关联 https://gitcode.com/cann/ops-math/issues/3641)。原草稿 #6454 不再单独合入。

提交 56110ba62d60e3cc505028bf22c9716bc6e1aa45,官方 master 8ade3796f8fb22de7679569337fcbe6618b2ce32,一个提交。先 squash 并验证完整 diff/tree 不变,再 rebase;完整算子目录与已通过三方的 2745680d 相同,计算源码与原 d6656c08 数值回归版本相同。公共文件和算子 README 不改。

本轮指定统一入口 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 失败。

数值回归保持既有三方结论:确定性原集默认/确定性各100条,200/200;GE形状默认54/54、确定性16/16及冒烟2/2,16条各3次MD5一致。两条冻结输入各10次一致,历史功能回归3189条记录/1194用例名,静态GEIR51/51。性能每模式200条均>=0.1,最低默认0.180045、确定性0.102306。旧SDK initcheck PRIVATE读告警不记PASS。GPU为仓内Torch组合参考,原现场SHA/seed/冻结输入缺失,详细口径及已知限制见PR。

likedislike
陈思
陈思成员
18 天前 评论:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robot成员
18 天前 将 raoliang_sac 设为负责人
Rraoliang_sac成员
18 天前 修改了issue 的描述
Rraoliang_sac成员
18 天前 修改了issue 的描述
Rraoliang_sac成员
18 天前 修改了issue 的描述
Rraoliang_sac成员
18 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
Rraoliang_sac成员
17 天前 修改了issue 的描述
CANN-robotCANN-robot成员
16 天前 关闭了 issue
CANN-robotCANN-robot成员
16 天前 添加了label:resolved