[Bug]: pytorch rocm 6.0 with 7600xt = HSA_STATUS_ERROR_INVALID_ISA

该报错通常出现在 AMD RX 7600 XT / 7600、8600G、780M 等未被 ROCm 6.0 正式支持的 GPU 上,使用 PyTorch 2.1.2 / 2.3.0 / 2.4.0 + ROCm 6.0 启动 Stable Diffusion WebUI 时触发。优先排查 PyTo

快速结论:该报错通常出现在 AMD RX 7600 XT / 7600、8600G、780M 等未被 ROCm 6.0 正式支持的 GPU 上,使用 PyTorch 2.1.2 / 2.3.0 / 2.4.0 + ROCm 6.0 启动 Stable Diffusion WebUI 时触发。优先排查 PyTorch/ROCm 版本组合,并回退到 ROCm 5.7 环境。

适用环境:Stable Diffusion WebUI 1.8.0;AMD Radeon RX 7600 XT(gfx1102)、RX 7600、8600G、780M;PyTorch 2.1.2 / 2.3.0 / 2.4.0 + ROCm 6.0 报错;PyTorch 2.2.0 / 2.2.1 + ROCm 5.7 正常;操作系统含 Fedora 39 / Fedora 40;Python 3.10。

最快修复方案:Issue 中明确验证过可绕过的主要方向是使用 ROCm 5.7 对应的 PyTorch 版本,并设置 HSA_OVERRIDE_GFX_VERSION;或在 WebUI 启动参数中加 --no-half 强制 float32,但会带来显存占用翻倍和可能的 HIP out-of-memory。

注意事项:ROCm 6.0 对未列入支持列表的 GPU 的 float16 支持可能有问题,这属于上游 ROCm/PyTorch 层面的回归,而非 WebUI 自身 bug;--no-half 虽然能消除该 ISA 报错,但 Stable Diffusion 在 float16 下才能高效运行,改用 float32 可能导致 16GB 显卡只能跑 SD1.x 级别模型,且速度更慢。

问题场景

用户在配备 AMD Radeon RX 7600 XT(rocminfo 中显示为 gfx1102)的机器上,使用 Python venv 安装 ROCm 6.0 与对应 PyTorch,然后运行 HSA_OVERRIDE_GFX_VERSION=11.0.0 webui.sh 启动 Stable Diffusion WebUI 1.8.0。同类问题也出现在 RX 7600、8600G、780M 等 GPU 上,环境包括 Fedora 40 + PyTorch 2.3.0 + ROCm 6.0。相同硬件在 PyTorch 2.2.0/2.2.1 + ROCm 5.7 下可以正常启动。

报错原文

rocdevice.cpp            :2728: 0225198107 us: [pid:4807  tid:0x7d4fc8fff640] Callback: Queue 0x7d4de2e00000 aborting with error : HSA_STATUS_ERROR_INVALID_ISA: The instruction set architecture is invalid. code: 0x100f

原因分析

最可能的原因是 ROCm 6.0 对 RX 7600 XT / 7600 这类未列入官方支持列表的 GPU 存在 float16(half precision)支持缺陷。Issue 中有用户明确指出:“half precision (float16) is broken in ROCm on RX7600”,若能强制使用 float32,则该特定 ISA 报错会消失。这被多位参与者视为 ROCm 6.0 相对 5.7 的回归(regression),并非 WebUI 本身的问题。目前没有来自 AMD 或 PyTorch 的官方修复确认。

环境排查

  • 确认 GPU 型号:RX 7600 XT / 7600 / 8600G / 780M 等是否属于 ROCm 6.0 未正式支持的型号。
  • 确认 rocminfo 中报告的 GPU ISA,例如 7600 XT 为 gfx1102。
  • 确认 PyTorch 与 ROCm 版本组合:PyTorch 2.1.2 / 2.3.0 / 2.4.0 + ROCm 6.0 均报错;PyTorch 2.2.0 + ROCm 5.7 正常。
  • 确认 HSA_OVERRIDE_GFX_VERSION 是否设置。Issue 中 7600 XT 用户使用 11.0.0;Navi 2 系列可能需要 10.3.0。
  • 确认 Python 版本,例如 Issue 讨论中使用的 python3.10。
  • 确认 WebUI 启动参数,是否已尝试 --no-half。
  • 如使用容器,注意容器内外的 lspci 输出可能不同,会影响 webui.sh 中的 GPU 检测逻辑。

解决步骤

  1. 优先尝试回退到 ROCm 5.7 对应的 PyTorch。Issue 中有用户验证,安装方式为:pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/rocm5.7,注意使用 rocm5.7 而非 nightly/rocm5.7。
  2. 在 webui-user.sh 中写入以下配置(无需改动 webui.sh):
    export COMMANDLINE_ARGS="--listen"
    python_cmd="python3.10"
    export TORCH_COMMAND="pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm5.7"
    export HSA_OVERRIDE_GFX_VERSION=11.0.0
  3. 如果必须停留在 ROCm 6.0,可优先尝试在启动参数中加入 --no-half 强制 float32:export COMMANDLINE_ARGS="--no-half",并可写入 webui-user.sh。Issue 中有用户反馈模型可以成功加载,但随后出现 HIP out-of-memory。
  4. 如需继续使用 ROCm 6.0,请降低模型规模或分辨率以缓解 float32 带来的显存压力。

验证方法

重新启动 webui.sh,确认不再出现 HSA_STATUS_ERROR_INVALID_ISA,模型能够正常加载。若使用 ROCm 5.7 回退方案,参考同类配置在 Fedora 39 + PyTorch 2.2.1 + ROCm 5.7 下正常工作的反馈进行验证。若使用 --no-half,需要同时确认是否出现 HIP out-of-memory 或生成速度明显下降。

参考来源

AUTOMATIC1111/stable-diffusion-webui #15434

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25698

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注