
gfx1201 (RX 9070/9070 XT, RDNA4) incorrectly matched by AMD_RDNA2_AND_OLDER_ARCH — disables cudnn perf optimization, ~5x slower VAE decode
快速结论:该报错可能发生在 AMD Radeon RX 9070 / RX 9070 XT (gfx1201) 用户在 ComfyUI 中运行需要 VAE 解码的工作流(如 Wan2.2 视频生成、FLUX/SD 图像生成)时,由于 `gfx1201` 被错误地包含在 `AMD_RDNA2_AND_OLDER_ARCH` 列表中,导致本该为 AMD 显卡关闭 cudnn 的优化被跳过,从而造成约 5 倍的性能下降。优先检查 `comfy/model_management.py` 中 `AMD_RDNA2_AND_OLDER_ARCH` 列表是否包含 `”gfx1201″`。
问题场景
该问题在 ComfyUI (v0.27.0) 中,使用 AMD Radeon RX 9070 (gfx1201) 显卡,配合 ROCm 7.2.4 和 PyTorch 2.10.0+rocm7.2.4 运行 Wan2.2 Ti2V-5B 图像到视频工作流(17 帧 @ 832×480,fp16 UNet + Turbo LoRA (4-step),fp16 VAE)时被发现。任何涉及非平凡 VAE 解码负载的工作流(包括但不限于视频模型和图像模型如 FLUX/SD)都可能受到影响。
报错原文
# 问题并非由显示错误触发,而是由性能瓶颈揭示。
# 直接检查 cudnn 状态的方法:
import torch
print(torch.backends.cudnn.enabled) # 在受影响的配置下会输出 True (默认值), 表示优化被跳过
# 对比移除 gfx1201 后的状态:
import comfy.model_management as mm
print(torch.backends.cudnn.enabled) # 在修复后输出 False, 表示优化被正确应用
原因分析
原因在于 ComfyUI 的 comfy/model_management.py 中,AMD_RDNA2_AND_OLDER_ARCH 列表错误地包含了 "gfx1201"。此列表用于判断是否为较旧的 AMD 架构(RDNA2 及更早),以便决定是否关闭 torch.backends.cudnn.enabled = False 来获得更好的性能。
gfx1201 是 RDNA4 架构(RX 9070 / RX 9070 XT)的 GFX 版本,它比 RDNA2 新得多。由于其被包含在了旧架构列表中,ComfyUI 的逻辑错误地认为不需要为这张新卡关闭 cudnn,导致优化被跳过。在被 Issue 报告的 ComfyUI 0.27.0 版本中,该列表包含 "gfx1201";但在 Issue 关闭时(关联 PR 合并后),主分支代码中已移除了 "gfx1201"。因此,如果你使用的是受影响版本,问题即源于此。
环境排查
- 显卡:确认显卡是否为 AMD Radeon RX 9070 或 RX 9070 XT (gfx1201 RDNA4 架构)。
- 软件版本:确认 ComfyUI 版本(特别是早期版本如 0.27.0)及 ROCm 版本(如 7.2.4)和 PyTorch 版本(如 2.10.0+rocm7.2.4)。
- 性能对比:运行一个已知的 VAE 解码密集型工作流(如视频生成),并记录总耗时。
解决步骤
- 打开
comfy/model_management.py文件。 - 搜索
AMD_RDNA2_AND_OLDER_ARCH列表,该列表通常包含["gfx1201", "gfx1030", "gfx1031", "gfx1010", "gfx1011", "gfx1012", "gfx906", "gfx900", "gfx803"]。 - 从该列表中移除
"gfx1201"。修改后的列表应如:["gfx1030", "gfx1031", "gfx1010", "gfx1011", "gfx1012", "gfx906", "gfx900", "gfx803"]。 - 保存文件并重新启动 ComfyUI。
注意:该修复已作为核心修复合并到 ComfyUI 主分支。如果你使用的是较新版本,可能已经无需手动修改。但如果你遇到性能问题,建议先检查此列表。
验证方法
1. 重启 ComfyUI 后,立即运行之前受影响的工作流(如 Wan2.2 视频生成)。
2. 对比修复前后的总耗时。根据 Issue 报告,修复后性能可获得约 4.9 倍的提升(例如从约 1200 秒降至约 240 秒)。
3. 或者,在 Python 环境中直接验证:
import torch; print(torch.backends.cudnn.enabled) 应在 ComfyUI 加载后输出 False,表明优化已正确应用。



