Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
fused_matmul算子ADD/MUL路径steamk模板当N方向数据32字节非对齐时,会出现NPU Fail
Ascend 910_95(V310)/A5
fused_matmul算子op_ytpe=ADD/MUL跑steamk模板且N方向数据32字节非对齐的shape
算子正常执行且精度pass
FIXPIPE 路径:
非 FIXPIPE 路径:
FIXPIPE 情况下,如果把 x3 也按 curAlignedNInAiv=256 的行间距搬入 UB(DataCopyPad 自动 padding 每行到 32B 正好达成), Y 和 x3 的 UB 布局完全一致:
Y in UB: [row0: 255有效+1垃圾][row1: 255有效+1垃圾]... x3 in UB: [row0: 255有效+1垃圾][row1: 255有效+1垃圾]...
此时可以直接 flat Add 整个 burstLen,padding 位置虽然产生垃圾,但写回 GM 时只写 curNL1InAiv=255 个有效元素,垃圾被截断丢弃。
非 FIXPIPE 情况下,Y 行间距 255,x3 auto-padding 后行间距 256,布局不匹配。
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Describe the current behavior / 问题描述 (Mandatory / 必填)
fused_matmul算子ADD/MUL路径steamk模板当N方向数据32字节非对齐时,会出现NPU Fail
Environment / 环境信息 (Mandatory / 必填)
Ascend 910_95(V310)/A5
Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
fused_matmul算子op_ytpe=ADD/MUL跑steamk模板且N方向数据32字节非对齐的shape
Describe the expected behavior / 预期结果 (Mandatory / 必填)
算子正常执行且精度pass
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
Special notes for this issue/备注 (Optional / 选填)
FIXPIPE 路径:
非 FIXPIPE 路径:
FIXPIPE 情况下,如果把 x3 也按 curAlignedNInAiv=256 的行间距搬入 UB(DataCopyPad 自动 padding 每行到 32B 正好达成), Y 和 x3 的 UB 布局完全一致:
Y in UB: [row0: 255有效+1垃圾][row1: 255有效+1垃圾]...
x3 in UB: [row0: 255有效+1垃圾][row1: 255有效+1垃圾]...
此时可以直接 flat Add 整个 burstLen,padding 位置虽然产生垃圾,但写回 GM 时只写 curNL1InAiv=255 个有效元素,垃圾被截断丢弃。
非 FIXPIPE 情况下,Y 行间距 255,x3 auto-padding 后行间距 256,布局不匹配。