已关闭
[FIA] 非量化 MLA tiling 下沉缺少新模板注册,旧模板转置输出偏移错误 #5226
PerrySkywalker创建于  28 天前关闭于  24 天前
PerrySkywalker
PerrySkywalker成员
28 天前 创建

FIA 非量化 MLA 场景:B=1、T=52、Nq=5、Nkv=1、D=512、RoPE D=64,Q/KV actual_seq 均为 [52],K/V 共享,TND_NTD 输出,causal mask(sparse_mode=3)。

CANN_0828 实测:eager 和普通图模式通过,最大绝对误差约 0.00104;tiling 下沉失败,最大绝对误差约 2.21648。相同输入使用 TND 输出下沉通过,转置后与 TND_NTD eager 逐元素完全一致。

检查发现两处问题:

  1. common/src/tiling_sink/CMakeLists.txt 没有编入 arch35/fia_tiling_nonquant_mla.cpp,设备侧缺少 priority=5 的新 MLA 注册。设备日志选择 priority=999、isReconstructTemp=0;eager 选择新模板。Host 编译期的占位 tilingKey 不能代表设备最终选择。
  2. 旧模板 CalcAIVMlaAttentionOutOffset 在 gSize<=32 分支只计算 token 下标,缺少 cubeSOuterOffset % gSize 的 head 下标。例如 G=5、M=64 应从 (head=4, token=12) 写回,却使用 head=0,导致 TND_NTD 等输出转置地址错误。

修复方案:将新 MLA tiling 文件加入设备库编译列表,并补齐旧模板 head 余数计算。master 和 9.2.0 分别提交修复。

关联修复 PR:

likedislike
PerrySkywalkerPerrySkywalker成员
28 天前 关联了pull request:[FIA][master] 修复 MLA 下沉模板注册和旧模板转置偏移
PerrySkywalkerPerrySkywalker成员
28 天前 关联了pull request:[FIA][9.2.0] 修复 MLA 下沉模板注册和旧模板转置偏移
PerrySkywalkerPerrySkywalker成员
28 天前 修改了issue 的描述
PerrySkywalkerPerrySkywalker成员
28 天前 修改了issue 的描述
游震成员
28 天前 评论:
likedislike
CANN-robotCANN-robot成员
28 天前 将 PerrySkywalker 设为负责人
CANN-robotCANN-robot成员
24 天前 关闭了 issue
CANN-robotCANN-robot成员
24 天前 添加了label:resolved