快速结论:这不是一个“踩到就报错”的故障,而是 gfx1201 (RDNA4) 上 Diffusers 缺少可用的量化/加速注意力后端:SAGE 与 SAGE_HUB 都是 CUDA 构建,ROCm 的 Hub FlashAttention kernel 也只带 gfx942/gfx950/gfx1250 的调优配置,所以 gfx1201 实际退回原生 SDPA。优先排查的是当前后端选择结果,以及是否存在可用的 gfx1201 SageAttention Hub kernel。
适用环境:AMD Radeon RDNA4(gfx1201:Radeon AI PRO R9700 / R9600D、RX 9070 系列);ROCm 环境;BF16 输入;Diffusers(涉及 MiniMax-H3 及其 token refiner)。Issue 未给出具体的 Python、PyTorch、ROCm 版本号,这些需按实际安装自行确认。
最快修复方案:暂无确认的一步修复方案。Issue 中讨论的路线是先把 gfx1201 SageAttention kernel 打包成 Kernels Hub 包(`aiter-sage-attention`,布局参照 `aiter-flash-attn-ck`,暴露 `sageattn(q, k, v, tensor_layout, is_causal, sm_scale, return_lse)` 入口),再在其上添加 Diffusers 注意力后端;该后端 PR 在 Issue 关闭时仍计划以 draft 形式提交。
注意事项:该后端按设计为可选启用、不会被默认选中;它只接受满足 kernel 约定的输入(无 mask、非 causal、head dim 为 128、Q/K/V 形状相同),不满足的调用会回退 SDPA(例如 MiniMax-H3 VAE 注意力的 head dim 为 64);Ulysses 上下文并行仅支持推理且不需要 LSE。Issue 中的性能与 PSNR 数字来自作者自测硬件,不能当作通用结论。
问题场景
用户在 AMD RDNA4(gfx1201)显卡上运行 Diffusers,希望为 MiniMax-H3(含 token refiner)启用量化注意力后端以提速。实际结果是:`SAGE`、`SAGE_HUB` 为 CUDA 构建不可用,ROCm Hub FlashAttention kernel(`kernels-community/aiter-flash-attn`)只提供 gfx942 / gfx950 / gfx1250 的调优配置,于是 gfx1201 只能走原生 SDPA。Issue 作者实测在 MiniMax-H3 T2VA(2 x R9700、TP2、1344×768、4 s、8 steps)上,SDPA 每步去噪 20.9 s、请求延迟 186 s;gfx1201 SageAttention 为 11.3 s / 109 s,视频 PSNR 33.9 dB。
报错原文
gfx1201 (RDNA4) SageAttention attention backend: aiter package or Hub kernel?
- `SAGE` and `SAGE_HUB` are CUDA builds.
- The ROCm Hub FlashAttention kernel (`kernels-community/aiter-flash-attn`) ships tuning configs for gfx942 / gfx950 / gfx1250 only.
So these GPUs use native SDPA.
原因分析
最可能的原因与后端覆盖范围有关,而非用户配置错误:Diffusers 现有的 `SAGE` / `SAGE_HUB` 后端是面向 CUDA 的构建;ROCm 侧可用的 Hub FlashAttention kernel 只带 gfx942 / gfx950 / gfx1250 配置,未覆盖 gfx1201。因此 gfx1201 的注意力调用没有匹配的加速后端,按设计回落到 SDPA,表现为“能用但没有预期加速”。Issue 同时指出 aiter 已有 `aiter.gfx1201_sage_attention(q, k, v, softmax_scale)`(ROCm/aiter#6390,审核中),但其输入契约较窄:BF16 `[B, S, H, 128]`、Q/K/V 同形状、无 mask、非 causal;MiniMax-H3 的注意力与 token refiner 恰好满足该契约。
环境排查
- 确认显卡架构标识为 gfx1201(RDNA4),排除被误判为其它 ROCm 架构。
- 确认当前实际使用的注意力后端;若解析结果落到 SDPA,说明没有匹配的加速后端,属于本 Issue 描述的预期现象。
- 确认是否安装/启用了 `SAGE` 或 `SAGE_HUB`;在 ROCm + gfx1201 上它们不是可用方案。
- 若关注 Hub kernel 路线,确认所用 kernel 是否声明支持 gfx1201 以及是否提供对应入口(如 `sageattn`)。
- 确认输入是否满足 kernel 契约:BF16、head dim 为 128、Q/K/V 同形状、无 mask、非 causal;head dim 为 64 等不满足的调用(如 VAE 注意力)会被转到 SDPA。
- Issue 未提供具体 Python、PyTorch、ROCm、aiter 版本,需按自身环境核对,不要套用未经确认的版本号。
解决步骤
- 先确认现状:在 gfx1201 上跑 MiniMax-H3 时检查注意力后端解析结果,确认是否回落到 SDPA,作为基线对比。
- 暂不要指望 `SAGE` / `SAGE_HUB` 在 gfx1201 上生效;它们是 CUDA 构建,不作为本场景的修复手段。
- 可优先尝试关注 Kernels 打包进展:按 Issue 讨论的计划,`aiter-sage-attention` 参考 `aiter-flash-attn-ck` 布局,从 aiter 源码 vendor HIP 代码(INT8 Q/K、FP8 V 量化及注意力 kernel),为 gfx1201 构建,并提供 `sageattn(q, k, v, tensor_layout, is_causal, sm_scale, return_lse)` 入口。相关讨论在 huggingface/kernels-community#1222,packaging PR 链路见该 Issue 的后续更新。
- Hub kernel 可用后,再启用对应的 Diffusers 注意力后端(Issue 中先在本地以 `aiter_sage_hub` 形式验证);后端应按 `_sage_attention_hub` 的方式接入,并采用 opt-in,不做默认选择。
- 若使用上下文并行,按设计仅支持推理、不需要 LSE,可用 MiniMax-H3 现有的 `_cp_plan` 在 2 张及以上 GPU 上运行。
- 对 head dim 不为 128、带 mask、causal 或 Q/K/V 形状不一致的调用,接受后端回退 SDPA,不要强行指定该后端。
验证方法
在同一硬件上用 MiniMax-H3 做 SDPA 与启用后端的端到端对比:确认调度确实选中了新后端,测量每个 transformer 调用耗时与请求延迟,并用视频 PSNR 与 SDPA 输出对比(Issue 中作者在单张 R9700 上观察到每次 transformer 调用 12.0 s 对 16.5 s、对原生后端 26.1 dB)。同时确认 VAE 等 head dim 为 64 的注意力调用被正确转到 SDPA,且无 mask/causal 输入被错误送入 kernel。若耗时与输出均无变化,说明后端未被启用或已被回退,需回到环境排查。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


