| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(AccumulateNV2): golden三方绑定改回真竞品算子AccumulateNV2(tf.function图模式) Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6705 merge fix/accumulate-nv2-golden-thirdparty into master fix(AccumulateNV2): golden三方绑定改回真竞品算子AccumulateNV2(tf.function图模式) Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 背景 !6584 合并后,golden 的 ThirdPartyTF 三方绑定经历了两次修正,本 PR 交付最终版本:三方在 GPU server 上以 **TF 官方执行语义**运行**真竞品算子 AccumulateNV2**。 ## 根因(源码复核) tf.raw_ops.AccumulateNV2 是 TF **从未编译过 kernel 的 stub 占位算子**(官方源码列入 OPS_WITHOUT_KERNEL_ALLOWLIST): - 图模式:由 AccumulateNV2RemovePass(core/common_runtime/accumulate_n_optimizer.cc,PRE_PLACEMENT 优化 pass)重写为 TemporaryVariable+AssignAdd 顺序累加链(while 循环内退化为 AddN) - eager 模式:Python wrapper 直接回退 add_n(TF 1.15 math_ops.py 注释:TemporaryVariable not currently supported in eager mode) 因此 TTK xpu-server 的 eager 三方执行**直接调用 raw op 必报 no registered kernels**(两台 GPU server 与本地 CPU 均实测复现),与 TF 版本、服务器环境无关。 ## 修改内容 tests/assets/golden.py ThirdPartyTF: 1. 绑定 tf.raw_ops.AccumulateNV2,用 tf.function 包一层走**图模式**路径——由 TF 官方重写为 TemporaryVariable+AssignAdd 链执行,原始 dtype 顺序累加、不升精度 2. 去掉原实现的 np.asarray 主机绕行:同 shape 张量直传保持在 dispatch 设备(GPU)上;异 shape(aclnnSum 路线)在 device 上 tf.broadcast_to 对齐,TF 拒绝的高秩组合回退 numpy ## 验证(GPU server 176.176.0.134,cross_check L1) | 项目 | 结果 | |------|------| | 精度 8 用例(含 fp16_extreme) | 8/8 PASS(dyn 编译 + bin release 双模式) | | --xpu-perf 三方执行位置 | device_us=6.99、peak_memory_mb=0.00256(真实 GPU 执行) | | 批跑 kernel 路线 85 例 | 62 PASS(23 失败均为已知族:6×zero-dim 编译 bug #1896 + 17×GEIR dyn 用例路线不匹配) | | 批跑 aclnn 路线 84 例 | 84/84 全 PASS(含 8 例异 shape broadcast) | | 批跑 geir 路线(静态 shape 31 + 空 tensor 8) | 39/39 全 PASS | | 三方错误计数(全批次) | 0(no registered kernels / GOLDEN_FAILURE / third_party 错误) | | 浮点 cross_check L1(必须三方参与) | 70 例全 PASS | 附:17 例 GEIR dyn 用例换旧 AddN 绑定对照重跑,17/17 逐条结果一致,证明其失败(TTK 比对框架对动态 shape 元数据输出的 cross_check 缺口)与本改动无关。 关联:cann/ops-math !6584(已合并,本 PR 为其 golden 三方绑定的后续修正) ## 关联的Issue - [Bug-Report|缺陷反馈] AccumulateNV2 golden 三方绑定 eager 直调 TF stub 算子必报 no registered kernels,三方比对无法执行 #4251 https://gitcode.com/cann/ops-math/issues/4251 See merge request: cann/ops-math!6705 | 12 天前 |