Closed
[Bug-Report|缺陷反馈]: 迁移 RaggedBinCount V2 推导并规范两算子 golden #3695
raoliang_sacAdd on  21 days agoClosed at  18 days ago
raoliang_sacCollaborators
21 days ago Create

一、问题描述(必填)

RaggedBinCount 删除原生 V1 shape 实现及注册,由已有 runtime V2 推导接管;保留 size 值依赖 .InputsDataDependency({2})、输入 shape 及合法性检查。旧 V1 测试替换为 14 条实际 V2 注册入口测试,覆盖不同 shape/相同元素数、空与标量 weights、int32/int64 常量 size、动态维/rank、非法输入和重复推导覆盖输出。

这三份文件选取自 推导迁移 PR #6548 的 e74083196deca466aa0492b904410f9c73ebcf60。只接入 RaggedBinCount,没有接入 MulNoNan、L2Normalize 或 July 任务,原任务分支/PR 保持原状。RaggedBinCount kernel/tiling 未改动。

本 PR 保留已有质量加固:按 golden 规范移除 RaggedBinCount 按用例名切换算法的分支,统一 Torch bincount 并保留 TTK 下发精度;SquareSumAll 输出修为 rank-0、1200 条 CSV 同步修正,不再强制 FP64。两算子示例核对输出数量、dtype、shape、字节数和全部数值。SquareSumAll 无生产代码修改。

二、环境信息(可选)

任务目录独立 Master/Revise CANN 20260923 周包;Ascend950PR_9579;GPU A100-PCIE-40GB。受测 master、HEAD、TTK SHA 见下。

三、重现步骤(可选)

  1. RaggedBinCount 使用 values/weights 不同 shape 但元素数相等的输入,分别检查 V2 注册和实际图路由;旧周包仍可能调用 canndev V1。
  2. 重放 19 条冻结三方输入,重点检查 finite FP64 golden、nonfinite GPU 与正确舍入 FP32 NPU 的组合。
  3. 对照指定 golden 规范检查用例名分支、强制 FP64 和 SquareSumAll rank-0 输出合同。
  4. 扫描负向输入分别核实生产崩溃、受控拒绝、框架异常和 GE 前置 Cast。

四、预期结果(可选)

目标产品由原生 V2 接管,保持输入 shape 和 size 值依赖;参考计算遵守下发精度,正确舍入结果得到正确比较,示例核对全部输出。

验证结果与备注

此前 README 清理时获取的 master:3e45432dc9ed21cd5b00f4fa12c06d9dc7800939;最终 HEAD:066a732fc31b6d00f4402956aa0d27152cb1533c。

本轮仅删除 RaggedBinCount、SquareSumAll README 中新增的通用安装、环境加载、build.sh 运行命令及产物路径说明,共 16 行。保留必要接口/能力修正、原有示例和 IR 链接。相对上一轮受测提交 78ec51268e0ce5254f140906b93072f6c7a21de7,两个算子的生产代码、golden、测例及示例均逐字节未变;完成 diff 检查、文档链接/编码/围栏和渲染检查,没有为删说明重复运行 NPU。

以下为此前注册迁移和数值核实的历史验证,非本轮重跑:

任务独立 Master/Revise CANN,Ascend950PR_9579;真实 GPU A100-PCIE-40GB、Torch 2.14.1+cu130。构建最多 8 jobs;全部 TTK 显式 --pc=1。该轮 TTK 为 3db54be4b479d487ffd44300046ffa664789edea,包含本地比较修复。对应 TTK PR #483 已由用户关闭;下面的 19/19 不能表述为未修改 TTK 主线的通过结果。原比较器结果为 17 PASS、2 FAIL。

  • 该轮两算子包构建、安装完成。Ragged Host/Graph UT 为 85+1=86/86,包含新增 14 条 V2 注册 UT;导入生产文件和新测试与来源逐字节一致,没有合并冲突。
  • 原 19 条冻结失败实际 GPU 三方 19/19 PASS,全部 BINARY_MATCH、TTK OOB 检查 PASS,输入不变。此前两条正确 FP32 舍入结果被误判的比较逻辑已在 TTK PR #483中提交过修复(该 PR 现已关闭),258 项比较测试通过;没有修改本算子 golden、输出或容差。
  • 静态/动态 GEIR 分开记录:当前安装周包直接执行 6 例为 4 PASS、2 EXEC_FAILURE。trace 确认仍进入旧 libopsproto.so V1,两个 values/weights shape 组合报错。
  • 仅隔离 RaggedBinCount 旧 V1 的诊断运行,6 例静态/动态 12 条路径全部通过,trace 确认选中当前 custom_math 的原生 V2。canndev 最新源码已有产品隔离,但没有重建正式 canndev 产品包,因此不能把诊断结果当作正式整包集成验收,也没有恢复 V1 规避问题。
  • 部署通用自检仍提示 math 分组层缺少 inc/;这两个 kernel 依赖自身头与 CANN 头,已部署 common/,实际目标图编译运行通过。该告警日志保留,不写成全部自检通过。
  • 新提交钩子通过。历史验证保留:SquareSumAll 56/56 两方 Kernel;Ragged 4 条、Square 3 条合法静态/动态 GEIR;两个文档示例编译上板并核对全部输出。本轮未重复全量执行。
  • SquareSumAll 原 29 条 L2 的历史结果仍为 7 FAIL、22 SKIP,未重现 builtin V1 SIGABRT;框架异常和不支持输入不计作精度 PASS。5 条非法 GEIR受控报错、2 条 BF16 经 GE Cast 的固定数值诊断结果见此前验证。

此前注册迁移阶段未执行完整本地 CI、性能回归或全矩阵三方;本次双平台本地 CI 和线上触发见最新追加记录。旧 CANN 注册的正式整包集成验证仍待完成。

只选取 RaggedBinCount,原迁移 PR #6548 保持原状;正式 canndev 整包集成尚未验收。

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

2026-10-21 最新提交本地 CI

受测 HEAD:d9ce12b29345e879e47098a556b8cff31a6fe746;主仓 master 快照:d98f2c0ba27be58813200f1a3c9008a092b74ae8。先保留备份并核验 squash 前后同一原始基点的完整二进制 diff 与 tree 一致,再 rebase;当前 PR 相对该主线只有一个提交。

使用指定 /workspace/CI-skills/ci_local_check.sh,本任务独立 CANN_Revise,SOCS=ascend950,ascend910b、JOBS=8,两个仓库顺序执行。统一入口实际输出 pre-commit: PASS 和 定向检查全部通过,退出码 0。完整 PR 静态检查、隔离 OAT、Markdown 链接、示例 SKIP 退出契约和 golden Python 语法检查通过。

阶段 结果 覆盖说明
normal pkg/ascend950 PASS 构建/门禁通过;日志未报告 GTest 用例数
normal package GE ABI/ascend950 PASS 构建/门禁通过;日志未报告 GTest 用例数
normal ophost/ascend950 PASS 实际运行 127 条 GTest
normal Host UT GE ABI/ascend950 PASS 构建/门禁通过;日志未报告 GTest 用例数
normal opapi/ascend950 PASS 实际运行 0 条 GTest
normal opgraph/ascend950 PASS 实际运行 1 条 GTest
normal opkernel/ascend950 PASS 构建/门禁通过;日志未报告 GTest 用例数
normal pkg/ascend910b PASS 构建/门禁通过;日志未报告 GTest 用例数
normal package GE ABI/ascend910b PASS 构建/门禁通过;日志未报告 GTest 用例数
normal ophost/ascend910b PASS 实际运行 56 条 GTest
normal Host UT GE ABI/ascend910b PASS 构建/门禁通过;日志未报告 GTest 用例数
normal opapi/ascend910b PASS 实际运行 0 条 GTest
normal opgraph/ascend910b PASS 实际运行 1 条 GTest
normal opkernel/ascend910b PASS 构建/门禁通过;日志未报告 GTest 用例数

0 条用例或只有构建目标通过的阶段不计为单测覆盖;本地 CI 没有新增 NPU/GPU 数值回归,不替代下方历史精度 FAIL、正式整包集成与性能验收。线上 CI 流水线已由机器人确认启动,结果待返回。

likedislike
Rraoliang_sacCollaborators
21 days ago Added label: bug-report
Rraoliang_sacCollaborators
21 days ago Change title to "[Bug-Report|缺陷反馈]: 规范 RaggedBinCount 与 SquareSumAll golden 并验证示例", originally titled "[Bug-Report|缺陷反馈]: 规范 RaggedBinCount 与 SquareSumAll golden 及标量输出测例".
Rraoliang_sacCollaborators
21 days ago Modify description of issue
陈思
陈思Collaborators
20 days ago Comments:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robotCollaborators
20 days ago Assign raoliang_sac as responsible person
Rraoliang_sacCollaborators
20 days ago Modify description of issue
Rraoliang_sacCollaborators
20 days ago Change title to "[Bug-Report|缺陷反馈]: 迁移 RaggedBinCount V2 推导并规范两算子 golden", originally titled "[Bug-Report|缺陷反馈]: 规范 RaggedBinCount 与 SquareSumAll golden 并验证示例".
Rraoliang_sacCollaborators
20 days ago Modify description of issue
Rraoliang_sacCollaborators
20 days ago Modify description of issue
Rraoliang_sacCollaborators
20 days ago Modify description of issue
Rraoliang_sacCollaborators
20 days ago Modify description of issue
Rraoliang_sacCollaborators
20 days ago Modify description of issue
CANN-robotCANN-robotCollaborators
18 days ago Close issue
CANN-robotCANN-robotCollaborators
18 days ago Added label: resolved