已关闭
[Bug-Report|缺陷反馈]: AccumulateNV2 golden 三方绑定 eager 直调 TF stub 算子必报 no registered kernels,三方比对无法执行 #4251
wangweidong创建于  7 天前关闭于  6 天前
wangweidong
7 天前 创建

Describe the current behavior / 问题描述

math/accumulate_nv2/tests/assets/golden.py(master 基线 cb6b7761)ThirdPartyTF 三方绑定存在两处缺陷:

  1. eager 直调 TF stub 算子:golden.py:199 以 self._accumulate = tf.raw_ops.AccumulateNV2 直接 eager 调用 raw op。而 tf.raw_ops.AccumulateNV2 是 TF 从未编译过 kernel 的 stub 占位算子(官方源码列入 OPS_WITHOUT_KERNEL_ALLOWLIST):图模式由 AccumulateNV2RemovePass(accumulate_n_optimizer.cc,PRE_PLACEMENT 优化 pass)重写为 TemporaryVariable+AssignAdd 顺序累加链;eager 模式 Python wrapper 直接回退 add_n。因此 TTK xpu-server 三方执行直接调用 raw op 必报 "no registered kernels"(两台 GPU server 与本地 CPU 均实测复现),与 TF 版本、服务器环境无关。
  2. 主机绕行:golden.py:209 对所有输入先 np.asarray 拉回 host 做 numpy broadcast 再转回 TF 张量,三方执行并未真正在 dispatch 设备(GPU)上运行,--xpu-perf 采集的三方数据不代表真实 GPU 执行。

影响:TTK 三方比对(浮点 cross_check L1 必须三方参与)对 AccumulateNV2 无法执行;三方性能数据失真。

Environment / 环境信息

  • 三方执行环境:TTK xpu-server GPU server(验证机 176.176.0.134)
  • 代码基线:cann/ops-math master(merge-base cb6b7761),math/accumulate_nv2
  • 对照权威源:TensorFlow 官方源码(OPS_WITHOUT_KERNEL_ALLOWLIST、accumulate_n_optimizer.cc)

Steps to reproduce the issue / 重现步骤

  1. 基于 master 在 TTK 配置 xpu-server 三方执行。
  2. 运行任意含三方比对的 AccumulateNV2 用例(cross_check L1)。
  3. 观察三方执行报错 no registered kernels,比对失败。

Describe the expected behavior / 预期结果

  1. 三方绑定以 tf.function 包一层走图模式路径:由 TF 官方 AccumulateNV2RemovePass 重写为 TemporaryVariable+AssignAdd 链执行,原始 dtype 顺序累加、不升精度。
  2. 同 shape 张量直传保持在 dispatch 设备(GPU)上;异 shape(aclnnSum 路线)在 device 上 tf.broadcast_to 对齐,TF 拒绝的高秩组合回退 numpy。
  3. 三方比对可正常执行(修复后验证见关联 PR:精度 8 用例 8/8 PASS,cross_check L1 70 例全 PASS,三方错误计数 0,--xpu-perf device_us=6.99 真实 GPU 执行)。
  • 错误特征:三方执行报 <no registered kernels>(eager raw op 调用)
  • 代码证据(master 基线 cb6b7761):golden.py:199(eager 直调绑定)、golden.py:209(np.asarray 主机绕行)
  • 修复后验证(关联 PR):精度 8/8 PASS(dyn 编译 + bin release 双模式);批跑 kernel 路线 62 PASS(23 失败均为已知族:6×zero-dim 编译 bug #1896 + 17×GEIR dyn 用例路线不匹配,17 例换旧 AddN 绑定对照重跑逐条一致,证明与本改动无关);aclnn 路线 84/84、geir 路线 39/39、三方错误计数 0

Special notes for this issue/备注

关联 PR:https://gitcode.com/cann/ops-math/pull/6705(上游 !6584 已合并,本缺陷为其 golden 三方绑定的遗留问题)

likedislike
Wwangweidong
7 天前 添加了label:bug-report
wangweidong
7 天前 评论:

/assign @gcw_YBIAEfqJ

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