已关闭
Inv 算子 golden 容差使用 mix_tolerance 与仓内 cross_check 主流不一致 #4381
JasonZhang88创建于  3 天前关闭于  1 天前
JasonZhang88成员
3 天前 创建

Background(背景信息)

Inv 算子交付的 golden 脚本(math/inv/tests/assets/golden.py)的 tolerance 使用 mix_tolerance(两方判据:NPU 输出 + CPU golden),而仓内声明了容差的算子中 26/32 使用 cross_check L1(三方判据:NPU 输出 + CPU golden + XPU 第三方参考),例如 abs、add_v2、bias、cast、confusion_matrix 等。

现状

# math/inv/tests/assets/golden.py 当前
tolerance = {
    "float16": {"standard": "mix_tolerance", "rtol": 1e-3, "atol": 1e-3},
    "bfloat16": {"standard": "mix_tolerance", "rtol": 4e-3, "atol": 4e-3},
    "float32": {"standard": "mix_tolerance", "rtol": 1e-4, "atol": 1e-4},
    "int32": {"standard": "binary_equal"},
}

建议修改

tolerance = {
    "float16": {"standard": "cross_check", "level": "L1"},
    "bfloat16": {"standard": "cross_check", "level": "L1"},
    "float32": {"standard": "cross_check", "level": "L1"},
    "int32": {"standard": "binary_equal"},
}

cross_check 需要 TTK XPU Server 支持(通过 ttk.conf.yaml 配置 endpoint)。本机已验证 9098 端口 XPU Server(CPU 设备)可正常提供三方参考。

验证结果

使用 cross_check L1 在 Ascend950PR + XPU Server(CPU)环境下验证:L0 全量 43 例 100% PASS,覆盖全部 dtype(float32/float16/bfloat16/int32),含次正规数、rank-0 标量、2^31 容量边界、空 Tensor 等边界场景。

修复 PR:!6955

Origin(信息来源)

海思

likedislike
陈思
陈思成员
3 天前 评论:

/assign @JasonZhang88

likedislike
CANN-robotCANN-robot成员
3 天前 将 JasonZhang88 设为负责人
CANN-robotCANN-robot成员
1 天前 关闭了 issue
CANN-robotCANN-robot成员
1 天前 添加了label:resolved