| Files | Last commit | Last update |
|---|---|---|
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 days ago | |
fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 16 days ago | |
fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 16 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 12 days ago | ||
| 16 days ago | ||
| 16 days ago |