已关闭
[Bug-Report]: PreSmoke 冒烟测试 spmv 转置模式 float 精度抖动导致偶发失败 #92
zhanghua创建于  7月13日关闭于  7月25日
zhanghua
zhanghua成员
7月13日 创建

问题描述

PreSmoke 冒烟测试(A900/910B 环境)中 spmv_test 偶发失败,205 个用例中 2 个转置模式 float 用例因相对误差超标判定失败,但绝对误差极小。

复现信息

  • 环境:Ascend 910B4,CANN 9.1.0,arch22(dav-2201)
  • 触发条件:spmv 转置模式 + float 类型 + 高稀疏度矩阵
  • 非确定性:随机用例每次生成的矩阵不同,偶发触发

失败用例详情

Total cases  : 205
Passed       : 203
Failed       : 2
Pass rate    : 99.0244%

Failed case details:
- [trans-float-mix] type=float Transpose M=256 N=2048 sparsity=0.95 alpha=1.5 beta=0.2
  MARE=0.00199465  MERE=1.30245e-06
  worst[1930] golden=-0.0057373 npu=-0.00572586

- [trans-float-rand-14] type=float Transpose M=1209 N=1609 sparsity=0.99342 alpha=-0.774607 beta=-0.372116
  MARE=0.00243723  MERE=1.78632e-06
  worst[474] golden=0.00078249 npu=0.000784397

分析

  1. 两个失败用例均为 转置模式 + float + 高稀疏度,golden 值接近零(-0.0057、0.00078)
  2. 绝对误差极小(1e-5 级别),但相对误差(MARE)被放大到 0.002 级别,超过测试阈值
  3. trans-float-rand-14 为随机用例,每次生成的矩阵不同,属于非确定性偶发
  4. 怀疑与 spmv kernel 并行归约的浮点求和顺序有关,当结果接近零时相对误差被放大

期望

  • 评估是否需要对接近零的 golden 值采用绝对误差容限替代相对误差
  • 或评估 spmv 转置模式 kernel 的归约精度是否可优化(如 Kahan 补偿求和)
likedislike
zhanghuazhanghua成员
7月13日 修改了issue 的描述
wangzitao
wangzitao成员
7月13日 评论:

您好,感谢反馈,问题确认和修复中。

likedislike
wangzitaowangzitao成员
7月23日 将 rueenov11 设为负责人
CANN-robotCANN-robot成员
7月25日 关闭了 issue
CANN-robotCANN-robot成员
7月25日 添加了label:resolved