已关闭
[Test] add_example kernel UT 零断言且输入未初始化,恒真通过 #27
不喜欢雨天ༀ创建于  20 天前关闭于  6 天前
不喜欢雨天ༀ
不喜欢雨天ༀ
20 天前 创建

问题定位

examples/add_example/tests/ut/op_kernel/test_add_example.cpptest_case_0

  1. 零断言:全文件 EXPECT_*/ASSERT_* 数量为 0(grep -c "EXPECT\|ASSERT" = 0)——ICPU_RUN_KF 之后直接释放内存结束,kernel 计算错误(甚至写出垃圾)也不会失败
  2. 输入未初始化AscendC::GmAlloc 分配 x/y 后未填入任何数据,也无数据文件加载——即使想校验也没有已知期望值

证据

ICPU_RUN_KF(AddExampleKernel, blockDim, x, y, z, workspace, ...);
AscendC::GmFree(x);   // 无任何读回校验
...
}   // TEST_F 结束,从未断言

对照同仓其余测试层:

  • test_add_example_tiling.cpp:ExecuteTestCase 校验 tiling 输出("256 8")✓
  • examples/fast_kernel_launch_example/tests/add/test_add.pytorch.equal/allclose 真实校验 ✓

kernel UT 是三层中唯一无校验的,且 add_example 是本仓 opgen 示例工程的门面用例。

修复方向

在 ICPU_RUN_KF 前将 x/y 填入已知值(tikicpulib 下 GmAlloc 返回 host 可访问内存),运行后逐元素校验 z[i] == x[i] + y[i](float32 加法位精确,可位级比较)。

影响面

仅测试有效性,不影响 kernel 行为;add_example kernel 若出现回归,当前 UT 无法拦截。

likedislike
不喜欢雨天ༀ不喜欢雨天ༀ
20 天前 关联了pull request:test: add_example kernel UT 补输入初始化与输出校验(修复 #27)
Yyue-ma成员
14 天前 将 2403_87936996 设为负责人
CANN-robotCANN-robot成员
6 天前 关闭了 issue
CANN-robotCANN-robot成员
6 天前 添加了label:resolved