| test: 丰富三个算子(fused_mul_add/fused_mul_add_add/mul_no_nan)的 broadcast 用例并完善 arch35 example
Co-authored-by: tangpingchuan<tangpingchuan@huawei.com>
# message auto-generated for no-merge-commit merge:
!3043 merge fix/mul-no-nan-inf-compare into master
test: 丰富三个算子(fused_mul_add/fused_mul_add_add/mul_no_nan)的 broadcast 用例并完善 arch35 example
Created-by: pingchuantang
Commit-by: tangpingchuan
Merged-by: cann-robot
Description: ## 描述
本 PR 完善 fused_mul_add、fused_mul_add_add、mul_no_nan 三个 element-wise 广播算子的 broadcast 测试覆盖与可维护性,主要改动如下:
1. infershape UT 丰富 broadcast 形状用例(三算子各自 tests/ut/op_host 下的 infershape UT):
- fused_mul_add 新增 4 组、fused_mul_add_add 新增 5 组、mul_no_nan 新增 4 组;
- 覆盖标量×2D、行×列互广播 {1,5}×{5,1}→{5,5}、3D 互广播 {2,1,4}×{1,3,4}→{2,3,4}、跨 rank、按轴广播 →[4,3,5]、尾列向量 {4,1}×{4,6}→{4,6} 等场景,含 fp32/fp16/int32 数据类型。
2. arch35 图模式 example 增补 broadcast 场景并修正 proto 头相对路径(三算子各自 examples/arch35 下的 test_geir 用例):
- 将 proto 头的相对路径由 ../op_graph/<算子>_proto.h 修正为 ../../op_graph/<算子>_proto.h(多了一级 examples/arch35 目录);
- 各 example 增加多组 broadcast 测试数据;
- mul_no_nan example 修复 inf==inf / -inf==-inf 的结果比对逻辑(got == expected 直接判过,避免 inf-inf=NaN 误判)。
3. infershape 增加调试日志(三算子各自 op_host 下的 infershape 实现):引入 log/log.h,入口处增加 OP_LOGD;mul_no_nan 由直接绑定 Ops::Base::InferShape4Broadcast 改为包装函数 InferShape4MulNoNan 以承载日志。
4. README 维护(三算子各自 README.md):移除过时的『仅在 Ascend 950 架构上实现』限制说明;fused_mul_add / fused_mul_add_add 补充图模式『调用说明』表格。
说明:改动集中在三算子的 UT、arch35 example、infershape 入口与 README,未改动算子核心计算逻辑。
## 关联的Issue
- #1741 https://gitcode.com/cann/ops-math/issues/1741
## 测试
- 三算子 infershape UT 新增 broadcast 形状用例(标量/行列互广播/3D/跨rank/按轴/列向量,fp32/fp16/int32),随 op_host UT 一并执行;
- arch35 图模式 example 增补 broadcast 场景,验证修正头路径后可正确构图调用。
## 文档更新
- 更新 math/fused_mul_add/README.md、math/fused_mul_add_add/README.md、math/mul_no_nan/README.md:移除过时架构限制说明,前两者补充图模式调用说明表格。
## 类型标签
- [ ] Bug修复
- [ ] 新特性
- [ ] 性能优化
- [x] 文档更新
- [x] 其他,请描述:丰富三算子 broadcast 形状 UT 用例、完善 arch35 example 与 infershape 日志
See merge request: cann/ops-math!3043 | 3 天前 |