已关闭
DynamicMxQuantWithDualAxisV2 接受非有限及非法组合的 dstTypeMax #6988
KaranocaVe创建于  9 天前关闭于  3 天前
KaranocaVe
KaranocaVe
9 天前 创建

DynamicMxQuantWithDualAxisV2 接受非有限及非法组合的 dstTypeMax

固定源码 cann/ops-nn 提供的 V2 文档规定:dstTypeMax 只支持 0.0 或 [6.0, 12.0],且仅在 dstType=FLOAT4_E2M1、scaleAlg=2 时设置。
Host tiling 的 GetAttr 仅检查 <0、0<x<6 和 >12,没有检查有限性,也没有把非零 dstTypeMax 与 dstType/scaleAlg 组合绑定。因此 dstTypeMax=NaN 会被接受;在合法的 dstType=FLOAT4_E2M1, scaleAlg=2 调用中,kernel 将 1/NaN 乘到输入块最大值,生成 NaN 的 E8M0 scale,破坏量化输出契约。类似地,dstTypeMax=6 与 FP8 或 scaleAlg=0/1 的非法组合也会通过 Host 校验。
修复应拒绝非有限值,并在非零时要求 FLOAT4_E2M1 + scaleAlg=2。

验证

  • 补丁在固定源码提交和当前 master 均通过适用性检查;目标仓库的单文件 clang-format pre-commit 检查通过。
  • 未运行 NPU 构建或设备测试,设备运行结果尚未验证。

关联 PR: https://gitcode.com/cann/ops-nn/merge_requests/12425

likedislike
KaranocaVeKaranocaVe
9 天前 关联了pull request:修复 DynamicMxQuantWithDualAxisV2 的 dstTypeMax 校验
KaranocaVeKaranocaVe
9 天前 修改了issue 的描述
yuning_chenyuning_chen成员
9 天前 将 KaranocaVe 设为负责人
CANN-robotCANN-robot成员
3 天前 关闭了 issue
CANN-robotCANN-robot成员
3 天前 添加了label:resolved