
Error running Qwen3.5 models using ollama-vulkan
快速结论:该报错发生在 AMD 核显(如 Ryzen AI 360 的 880M iGPU 或 Radeon 8060S)使用 ollama-vulkan 后端运行 Qwen3.5 系列模型时,模型加载后立即崩溃,返回 500 Internal Server Error。优先排查的是 Vulkan 驱动兼容性以及 OLLAMA_DEBUG 日志中的具体 crashdump。
问题场景
用户在 CachyOS 上使用 ollama-vulkan 包(Ollama 0.17.5)运行 qwen3.5:0.8b 模型,ollama run --verbose 后输入任意 prompt 即触发崩溃。使用 CPU 版本(ollama)或 ROCm 版本(ollama-rocm)时正常。
报错原文
Error: 500 Internal Server Error: model runner has unexpectedly stopped, this may be due to resource limitations or an internal error, check ollama server logs for details
服务器日志中可见模型成功发现 Vulkan 设备并分配显存,但在实际推理时崩溃:
time=... level=INFO source=runner.go:1284 msg=load request="{Operation:fit ... GPULayers:41[ID:00000000-c200-0000-0000-000000000000 Layers:41(0..40)] ...}"
...
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = Radeon 8060S Graphics (RADV STRIX_HALO) (radv) | uma: 1 | fp16: 1 | bf16: 0 | warp size: 64 | shared memory: 65536 | int dot: 1 | matrix cores: KHR_coopmat
原因分析
根据 Issue 讨论,两位用户分别使用 AMD 880M iGPU 和 8060S Graphics,都使用 RADV Vulkan 驱动,并且模型均在 Vulkan 后端下加载。可能原因:
- Qwen3.5 MoE 架构与 Vulkan 后端的兼容性问题:日志中显示
model architecture does not currently support parallel requests(架构为 qwen35moe),表明该 MoE 模型在 Vulkan 下可能存在算子支持缺陷。 - RADV Vulkan 驱动对 ggml 某些操作的实现不完整:两位用户的显卡都是 AMD RDNA 3.5 系列核显(RADV 驱动),而 CPU/ROCm 后端正常工作,指向 Vulkan 驱动层面的可能性。
- Flash Attention 在 Vulkan 下的问题:日志中明确启用了 flash attention,这在此类核显上可能触发未预期的崩溃。
由于 Issue 中未给出最终关闭前的明确 root cause 和永久修复方案,以下为社区提供的可优先尝试排查方向。
环境排查
- 确认 Ollama 版本:0.17.5(出现问题的版本)
- 确认 Vulkan 驱动版本:RADV(Mesa 的 Vulkan 驱动),可通过
vulkaninfo确认 driver version - 确认 GPU 型号:AMD Ryzen AI 360 的 Radeon 880M / 8060S
- 确认是否使用
OLLAMA_DEBUG=INFO收集崩溃时的完整 crashdump(不仅仅是 server log) - 尝试其他模型(如
qwen2.5:0.5b或llama3.2:1b)在 Vulkan 下是否同样崩溃,以此判断是否为 Qwen3.5 独有问题
解决步骤
- 收集完整 crashdump:设置
OLLAMA_DEBUG=info并重启 ollama serve,复现崩溃后将获得的完整 crashdump 上传至 issue,以便开发者定位。 - 尝试禁用 Flash Attention:在启动 Ollama 时设置
OLLAMA_FLASH_ATTENTION=false,然后重新运行模型。这属于推测性尝试,但日志显示 flash attention 在 Vulkan 下启用,可能是不稳定因素。 - 切换为 CPU 后端或 ROCm 后端:如果确认为 Vulkan 专有问题,使用
ollama(CPU)或ollama-rocm(如果 AMD GPU 支持 ROCm)可以立即规避问题。 - 更新系统 Vulkan 驱动(Mesa/RADV):确认使用了最新的 Mesa 版本,旧版 RADV 可能对 ggml 的 Vulkan 后端支持不完善。更新后重启测试。
- 设置 OLLAMA_CONTEXT_LENGTH:虽然 Issue 中用户反馈设置
OLLAMA_CONTEXT_LENGTH=4096后问题依旧,但作为标准排查步骤,仍可尝试降低上下文长度以排除显存或内存分配失败的可能性。
验证方法
执行 ollama run --verbose qwen3.5:0.8b,输入一个简单的 prompt 如 “hi”,如果不再显示 500 错误并且正常输出文本,则问题解决。若仍然崩溃,请对照上述步骤检查环境配置或在 ollama 官方仓库提交新的 issue 并附带完整 crashdump。



