已关闭
[Bug-Report|缺陷反馈]: 多个算子 arch35 测试精度校验使用混合精度校验规则 #319
justsheldon创建于 7月17日关闭于 7月20日
7月17日 添加了label:bug-report
justsheldon
7月17日 评论:
7月17日 评论:
/assign @justsheldon


7月17日 将 justsheldon 设为负责人
Jjustsheldon
7月17日 修改标题为 “[Bug-Report|缺陷反馈]: 多个算子 arch35 测试精度校验使用混合精度校验规则”,原标题为“[Bug-Report|缺陷反馈]: 多个算子 arch35 测试精度校验使用固定 MERE/MARE 阈值,混合精度场景下误报失败”
7月17日 修改标题为 “[Bug-Report|缺陷反馈]: 多个算子 arch35 测试精度校验使用混合精度校验规则”,原标题为“[Bug-Report|缺陷反馈]: 多个算子 arch35 测试精度校验使用固定 MERE/MARE 阈值,混合精度场景下误报失败”
7月20日 关闭了 issue
7月20日 添加了label:resolved
Describe the current behavior / 问题描述
ops-blas 多个算子的 arch35 测试(gemv_batched、getri_batched、getrs_batched、matinv_batched、strsv、stpsv、ssyr、ssyr2、sgbmv、sgels_batched、sgetrf_batched)在精度校验时统一使用固定的
PrecisionMode::MERE_MARE模式,阈值由 CSV 参数mereThreshold/mareMultiplier静态指定。该方式在 FP16/BF16 等混合精度场景下无法自适应数据范围与精度位宽,导致校验误报失败;部分算子(如 tpsv)在diag == ACLBLAS_UNIT时未对输入做缩放,数值放大后进一步触发精度问题;getri_batched 还存在哑元矩阵构造代码重复。Environment / 环境信息
Steps to reproduce the issue / 重现步骤
MERE_MARE固定阈值与实际精度位宽不匹配diag == ACLBLAS_UNIT时未缩放,矩阵条件数偏大时精度校验失败Describe the expected behavior / 预期结果
精度校验应采用混合精度容差模式
applyMixedTolerance,依据输出数据类型(ACL_FLOAT/ACL_FLOAT16/ACL_BF16)与 golden 数据范围自适应计算容差,避免固定阈值在混合精度场景下的误报;tpsv 对 UNIT diag 做缩放处理;getri_batched 抽取公共MakeDummyConstMatrices辅助函数消除重复代码;getrs_batched 测试文件去除精度前缀s以支持多精度。Related log / screenshot / 日志 / 截图
PR #285 已提供测试通过截图:https://raw.gitcode.com/user-images/assets/8916851/8a98dfbc-6fc1-4b25-9629-b61f35489f59/image.png
Special notes for this issue/备注
关联 PR:https://gitcode.com/cann/ops-blas/pull/285