Qwen3.5:9b rocBLAS error from hip error code: ‘hipErrorInvalidDeviceFunction’:98 ggml_cuda_compute_forward: SOLVE_TRI failed ROCm error: inv

该报错通常出现在 Windows 上通过 Ollama 加载 Qwen3.5 系模型并走 ROCm/HIP 后端时,GPU 内核在执行 SOLVE_TRI 算子时崩溃并报 invalid device function。优先排查 Ollama 打包的 ROCm 版本与显卡架构是否匹配,并缩小到 Qw

快速结论:该报错通常出现在 Windows 上通过 Ollama 加载 Qwen3.5 系模型并走 ROCm/HIP 后端时,GPU 内核在执行 SOLVE_TRI 算子时崩溃并报 invalid device function。优先排查 Ollama 打包的 ROCm 版本与显卡架构是否匹配,并缩小到 Qwen3.5 专属路径。

适用环境:Issue 已确认环境为 Windows 11;Ollama 0.40.13;Ollama 自带 ROCm 7.1(rocm_v7_1/ggml-hip.dll);AMD Radeon RX 9060 XT 与 AMD Radeon RX 7800 XT(gfx1101);另外存在 Ryzen 9 9900X iGPU(gfx1036,Ollama 报告 no rocblas support 后忽略);模型为 qwen3.5:9b;相关环境变量包括 OLLAMA_FLASH_ATTENTION、OLLAMA_NUM_PARALLEL、num_ctx、HIP_VISIBLE_DEVICES。

最快修复方案:暂无确认的一步修复方案。Issue 已被关闭,但讨论链中没有给出经过验证的单一修复命令。可优先尝试:将 OLLAMA_FLASH_ATTENTION=0 并缩小 num_ctx、保持 OLLAMA_NUM_PARALLEL=1,以压缩 prompt eval 阶段的显存与计算压力;同时在同机同 ROCm 构建下用 qwen2.5:14b 做对照,确认问题是否仅限 Qwen3.5 混合路径。

注意事项:上述参数调整在评论中仍出现过长 prompt 触发 ROCm error: unspecified launch failure 的情况,不能视为根治。Windows 下崩溃可能伴随桌面硬锁定(Kernel-Power 41),且没有可恢复的 TDR,测试长上下文时需注意系统风险。初始报告中的 RX 9060 XT 与评论中的 gfx1101 属于不同显卡架构场景,不要把结论直接套用到所有 AMD 显卡。

问题场景

用户在 Windows 11 上通过 Ollama 加载 qwen3.5:9b 模型时失败。服务端返回 500 错误,日志显示 GPU 侧 ROCm/HIP 内核执行报错;用户表示该问题只在 Qwen 系模型上出现。评论进一步补充:在 Ollama 标记为支持的 gfx1101(RX 7800 XT)上,纯文本请求在 prompt eval 阶段也可能触发 GPU 故障,短 prompt 有时能返回,较长且内容不同的 prompt 更容易触发;日志中报错位置接近 token 1024 附近的 memory_seq_rm,以及循环检查点被丢弃时。同一机器、同一 ROCm 构建下 qwen2.5:14b 不出现该问题,故障特定于 Qwen3.5 的混合路径。

报错原文

500 Internal Server Error: model failed to load, this may be due to resource limitations or an internal error, check ollama server logs for details

Qwen3.5:9b rocBLAS error from hip error code: 'hipErrorInvalidDeviceFunction':98
ggml_cuda_compute_forward: SOLVE_TRI failed
ROCm error: invalid device function

ROCm error: unspecified launch failure
  current device: -1
  ggml_backend_cuda_synchronize / hipStreamSynchronize

原因分析

最可能的原因是 Ollama 自带的 ROCm/HIP 构建中,Qwen3.5 混合模型路径所需的某个算子(日志指向 SOLVE_TRI)在当前显卡架构上没有可用的已编译内核,于是 HIP 返回 hipErrorInvalidDeviceFunction。评论中的对照信息支持这一判断:同机同 ROCm 下 qwen2.5:14b 正常,而 Qwen3.5 在 prompt eval 阶段触发 unspecified launch failure,说明问题更偏向模型路径/内核覆盖,而非单纯的显存不足。初始报告中 RX 9060 XT 与评论中 gfx1101 是否属于同一根因,Issue 未明确确认,只能视为可能相关。

环境排查

  • 确认操作系统为 Windows 11,并记录 Ollama 版本(评论中为 0.40.13)。
  • 确认 Ollama 实际调用的 ROCm 目录与 ggml-hip.dll 来源,例如是否为自带的 rocm_v7_1;日志中同时出现 ROCm 6.4 与 7.1 路径时,需确认最终加载的是哪一个。
  • 确认显卡型号与架构(如 RX 9060 XT、RX 7800 XT/gfx1101),并检查是否存在被 Ollama 忽略的 iGPU(如 gfx1036 报 no rocblas support)。
  • 检查 OLLAMA_FLASH_ATTENTION、OLLAMA_NUM_PARALLEL、num_ctx、OLLAMA_KV_CACHE_TYPE、HIP_VISIBLE_DEVICES 等环境变量是否与出错时一致。
  • 准备一个同机同后端的非 Qwen3.5 对照模型(评论中使用 qwen2.5:14b),用于区分后端问题与 Qwen3.5 专属问题。

解决步骤

  1. 开启 Ollama 调试日志(如 OLLAMA_DEBUG=1),复现一次加载 qwen3.5:9b 的失败,确认日志中是否出现 SOLVE_TRI 与 hipErrorInvalidDeviceFunction。
  2. 核对日志里 runner 子进程实际使用的 HIP_PATH、OLLAMA_LIBRARY_PATH 与 ggml-hip.dll 所在 ROCm 版本,排除多版本 ROCm 混用导致的加载错位。
  3. 可优先尝试关闭 Flash Attention(OLLAMA_FLASH_ATTENTION=0)、将 OLLAMA_NUM_PARALLEL=1 并降低 num_ctx,重启 Ollama 服务后先用短 prompt 测试,再逐步加长 prompt 观察是否在相近 token 位置复现。
  4. 用 qwen2.5:14b 或其它非 Qwen3.5 模型在同一后端下做对照测试:若对照模型稳定、仅 Qwen3.5 失败,可基本定位为 Qwen3.5 路径与当前 ROCm 构建的兼容问题。
  5. 若调整参数后长 prompt 仍触发 unspecified launch failure,说明当前打包的 ROCm 后端可能缺少对应内核,需等待 Ollama 后续版本或 ROCm 组件更新;Issue 已关闭,但未提供确认可用的修复步骤。
  6. 测试长上下文时避免在关键工作时段进行,Windows 下该故障可能升级为桌面硬锁定,需要强制重启。

验证方法

重启 Ollama 后重新加载 qwen3.5:9b,先用短 prompt 确认能正常返回,再逐步增加 prompt 长度并观察服务端日志:若不再出现 SOLVE_TRI failed、hipErrorInvalidDeviceFunction:98 或 hipStreamSynchronize 相关 unspecified launch failure,且系统未出现硬锁定,可认为该配置下问题被规避。由于 Issue 未给出确认可行的修复方案,验证结果仅代表当前参数组合是否稳定,不代表根因已解决。

参考来源

ollama/ollama #15343

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 32204

发表回复

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