已开启
[泛化测试 G03] [Bug-Report|缺陷反馈]: FusedMulAdd/FusedMulAddAdd/MulNoNan 未注册 InferDataType,GE 图通路输出 dtype 缺少推导来源 #33
xujiachen8创建于 9月16日
xujiachen8
9月16日 评论:
9月16日 评论:
您好,感谢反馈。我们按指定基线核对了 FusedMulAdd、FusedMulAddAdd 和 MulNoNan 的 dtype 推导注册。
问题与修复
在指定基线中,三个算子的 op_host 只注册了 InferShape,没有注册 InferDataType,因此注册表无法取得 dtype 推导回调。当前 master 已补齐三项注册:
- FusedMulAdd:输出 y 的 dtype 跟随输入 x1;
- FusedMulAddAdd:输出 y 的 dtype 跟随输入 x1;
- MulNoNan:输出 y 的 dtype 跟随输入 x1。
合入状态与验证
关联实现 !5244 已合入 master,并覆盖上述三个 op_host 实现文件及对应 UT。PR中的UT用例从注册表取得回调,验证 fp16、fp32、int32(以及 MulNoNan 的 bf16)推导结果与 x1 一致。
Issue 中列出的 !5263 当前未合入;master 中实际生效的是 !5244。现有测试记录覆盖 op_host 注册与 UT 层,后续由我们在需要发布的图通路中完成 GE 图集成回归。


[泛化测试 G03] 测试副本,仅用于 gitcode-issue-handler 泛化测试。
来源:https://gitcode.com/cann/ops-math/issues/2987
原状态:open
原标题:[Bug-Report|缺陷反馈]: FusedMulAdd/FusedMulAddAdd/MulNoNan 未注册 InferDataType,GE 图通路输出 dtype 缺少推导来源
Describe the current behavior / 问题描述
FusedMulAdd、FusedMulAddAdd、MulNoNan 这 3 个算子,在各自的
op_host/*_infershape.cpp中只做了IMPL_OP_INFERSHAPE(<OpType>).InferShape(...)注册,没有注册InferDataType;在op_graph/下也没有IMPL_OP(<OpType>).InferDataType(...)的注册。因此在 GE 图通路上,这 3 个算子的输出 dtype 缺少显式推导来源。Environment / 环境信息
6439d9c90(feat: Add aclnn st cases and golden functions)build.sh -u --ophost)Steps to reproduce the issue / 重现步骤
检出 cann/ops-math master(基线
6439d9c90)对上述任一算子检查注册面,例如:
grep -n "InferDataType" math/fused_mul_add/op_host/fused_mul_add_infershape.cpp grep -rn "InferDataType" math/fused_mul_add/op_graph/两条命令均无输出,即该算子既没有在 op_host 也没有在 op_graph 注册 InferDataType。
math/fused_mul_add_add、math/mul_no_nan同理。infer_datatype字段为 nullptr。Describe the expected behavior / 预期结果
这 3 个算子应注册
InferDataType,输出 dtype 跟随输入 x1(与 op_proto 一致),即从注册表取到的infer_datatype非空,且对 fp16 / fp32 / bf16 / int32 等输入 dtype 均能推导出与 x1 相同的输出 dtype。Related log / screenshot / 日志 / 截图
修复前,上述 grep 命令无任何输出(即无 InferDataType 注册)。
修复后,
bash build.sh -u --ophost --ops=fused_mul_add,fused_mul_add_add,mul_no_nan的执行结果:新增用例中的
ASSERT_NE(opImpl->infer_datatype, nullptr)即为该注册生效的直接证据。Special notes for this issue / 备注