The current Pull Request has been closed by raoliang_sac.
变更摘要
本 PR 围绕算子推导注册的迁移展开:在 op_graph 层为 MulNoNan 新增 dtype 推导入口,并将 RaggedBinCount 自带的 V1 推导实现移除,使图推导统一走已有的 V2 注册路径。MulNoNan 在 op_host 中原有的 InferDataType4MulNoNan 及其注册被删除,改为 op_graph 中的 InferDataType4MulNoNan,新增空 context 校验和两个输入 dtype 一致性校验,通过 IMPL_OP(MulNoNan).InferDataType(...) 注册;RaggedBinCount 的 RaggedBinCountLegacyInferShape、ReadLegacyBinCount 及 COMMON_INFER_FUNC_REG 一并删除,改由注册的 V2 推导回调承担输出写入与输入校验。测试同步迁移:删除旧 V1 测试文件,新增基于 OpImplSpaceRegistryV2 的注册回调测试,并调整 MulNoNan 的 dtype 测试归属。
主要改动
- 新增
MulNoNan图推导 dtype 入口: 新增math/mul_no_nan/op_graph/mul_no_nan_graph_infer.cpp,实现InferDataType4MulNoNan,对空context返回GRAPH_FAILED,校验两个输入 dtype 一致后以SetOutputDataType(0, dtype)写出,并通过IMPL_OP(MulNoNan).InferDataType(InferDataType4MulNoNan)注册。 - 移除
MulNoNanop_host 中的 dtype 推导: 在math/mul_no_nan/op_host/mul_no_nan_infershape.cpp删除InferDataType4MulNoNan及MUL_NO_NAN_INPUT_X1_INDEX、MUL_NO_NAN_OUTPUT_Y_INDEX常量,注册语句简化为IMPL_OP_INFERSHAPE(MulNoNan).InferShape(InferShape4MulNoNan)。 - 删除
RaggedBinCount自带 V1 推导: 在math/ragged_bin_count/op_graph/ragged_bin_count_graph_infer.cpp移除ReadLegacyBinCount、IMPLEMT_COMMON_INFERFUNC(RaggedBinCountLegacyInferShape)及COMMON_INFER_FUNC_REG(RaggedBinCount, RaggedBinCountLegacyInferShape),不再在ge命名空间内注册旧推导。 - 测试迁移与新增: 删除
test_ragged_bin_count_legacy_infer_pass.cpp,新增test_ragged_bin_count_registry_infershape.cpp,通过impl->infer_shape验证IsInputDataDependency(2U)、输入 shape 保持不变、常量 size 读取及非法输入拒绝等;MulNoNan的 4 条 dtype 测试从test_mul_no_nan_infershape.cpp移至新增的test_mul_no_nan_graph_infer_pass.cpp,并新增RejectsMismatchedInputsWithoutLegacyVerifier混合 dtype 拒绝用例。
🧩 本次 Review 已使用自定义 Skill:




Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.
PR Approval Progress
⚠️ This PR does not yet meet the following requirements:lgtm (requires ≥ 2 person(s) per module)、approve (requires ≥ 1 person(s) per module)
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-cann/ops-math | ❌ (0/2)(You can also ask: clinglai0517, xuejinghui, 徐鲁威, yue-ma, 张磊) | ❌ (0/1)(You can also ask: 顾宝成, 王林木, 冯彤, xuejinghui, andong_hw) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)


描述
RaggedBinCount 自带 V1 推导会先修改输入 shape,再推导输出,使已有 runtime 2.0 的输入不可变契约不能生效;MulNoNan 的 dtype 推导位于 op_host,图推导注册接管时需要在 op_graph 提供对应入口。
.InputsDataDependency({2})、输入校验及输出写入逻辑。不修改计算 kernel、tiling、golden 或支持格式。需要配套 canndev 的 MulNoNan 旧注册隔离:https://gitcode.com/cann/canndev/pull/82602。同批 ops-nn 修复:https://gitcode.com/cann/ops-nn/pull/12383。
关联的Issue
https://gitcode.com/cann/ops-math/issues/3697
测试
79b137ed89ff59cf2fc3405a6e41d91995254471;任务目录独立 CANN_Master / CANN_Revise,Toolkit 9.3.0。bash build.sh --pkg --ops=ragged_bin_count,mul_no_nan --soc=ascend950 --vendor_name=registry_migration -j8。9e74ae65ec9dd7e2ed9fbb5432f4e6b1d8ee72be、GEIR、--pc=1、单设备、冻结输入/仓库 golden,Promote/stat_rel_err。A5 修改版 MulNoNan 16 条、RaggedBinCount 6 条,静态与动态共 44 次执行通过。验证边界:A5 为真实原生算子包加旧 V1 注册省略诊断;A3 为当前源码编译的 ARM 图推导库搭配存量 kernel。canndev 正式整包受本地内部构建依赖缺失阻塞,仍需正式产品包集成验证。本轮未跑全量本地 CI、GPU 三方精度或性能对比。
文档更新
无 README 或示例改动。
类型标签
AI/Agent生成声明