Skip to content

Vulkan backend crashes on Intel Arrow Lake (ARL) iGPU with larger models #19327

Description

@chefboyrdave21

Name and Version

Ollama 0.15.5-rc2 (using bundled llama.cpp/ggml)

Operating systems

Linux (Ubuntu 24.04.3 LTS)

GGML backends

Vulkan

Hardware

  • CPU: Intel Arrow Lake
  • GPU: Intel Arrow Lake-P [Intel Graphics] (device ID 0x7d51)
  • GPU Driver: xe 1.1.0 (Intel Xe KMD)
  • Vulkan: Mesa 25.0.7-0ubuntu0.24.04.2 (Intel open-source Mesa driver, Vulkan 1.4.305)
  • Kernel: 6.14.0-37-generic
  • VM: Proxmox VM with 64GB RAM and Intel iGPU passthrough (18GB VRAM shared)

Models

  • Crashes: qwen3-coder-next:latest (80B MoE, 3B activated), llama3.2:3b and larger
  • Works (sort of): qwen3-coder:30b, llama3.2:1b (with OLLAMA_FLASH_ATTENTION=0)
  • Works perfectly: All models on CPU (OLLAMA_NUM_GPU=0)

Problem description & steps to reproduce

When running models via Vulkan on Intel Arrow Lake iGPU, two issues occur:

Issue 1: Garbage output on 3B+ models

Smaller models (1B) work with OLLAMA_FLASH_ATTENTION=0, but 3B+ models produce complete garbage:

binder Binder htags Mig laus ragen 旋 kne laus iras thức emean Crime nels Fields mium...

Issue 2: Full crash with MoE models

Larger MoE models like qwen3-coder-next:latest cause the model runner to crash entirely:

Error: 500 Internal Server Error: model runner has unexpectedly stopped

Steps to Reproduce

  1. Set up Intel Arrow Lake system with xe driver and Mesa Vulkan
  2. Run Ollama with Vulkan enabled:
OLLAMA_VULKAN=1 ollama serve
  1. Try running a model:
# Works (1B with flash attention disabled):
OLLAMA_FLASH_ATTENTION=0 ollama run llama3.2:1b "Hello"

# Garbage output (3B):
ollama run llama3.2:3b "Hello"

# Crashes (MoE model):
ollama run qwen3-coder-next "Hello"

First Bad Commit

Not determined - Arrow Lake may never have worked with Vulkan.

Relevant log output

GPU Detection (working)

msg="inference compute" id=8680517d-0300-0000-0100-000000000000 library=Vulkan name=Vulkan0 
description="Intel(R) Graphics (ARL)" type=iGPU total="18.1 GiB" available="16.2 GiB"

Crash backtrace

goroutine 1176 gp=0xc000103dc0 m=nil [chan receive]:
runtime.gopark(0x30?, 0x5d6ec34bbd00?, 0x1?, 0x12?, 0xc000086b20?)
        runtime/proc.go:435 +0xce fp=0xc000086ad8 sp=0xc000086ab8 pc=0x5d6ec1e4ddce
runtime.chanrecv(0xc0005fc770, 0x0, 0x1)
        runtime/chan.go:664 +0x445 fp=0xc000086b50 sp=0xc000086ad8 pc=0x5d6ec1de9c72
github.com/ollama/ollama/runner/ollamarunner.(*Server).computeBatch(...)
        github.com/ollama/ollama/runner/ollamarunner/runner.go:651 +0x185

time=2026-02-04T12:39:25.959Z level=ERROR source=server.go:1609 msg="post predict" error="Post \"http://127.0.0.1:45141/completion\": EOF"

dmesg GPU errors

xe 0000:01:00.0: [drm] *ERROR* GT1: GSC proxy component not bound!
workqueue: output_poll_execute hogged CPU for >10000us 19 times, consider switching to WQ_UNBOUND

vulkaninfo

GPU0:
  apiVersion         = 1.4.305
  deviceName         = Intel(R) Graphics (ARL)
  driverID           = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
  driverName         = Intel open-source Mesa driver
  driverInfo         = Mesa 25.0.7-0ubuntu0.24.04.2

Analysis

This appears to be a broader Intel iGPU Vulkan issue affecting multiple generations:

Possible causes:

  1. ggml-vulkan shaders - May have bugs specific to Intel GPU memory model
  2. Mesa ANV driver - Intel's Vulkan driver may have issues with compute workloads
  3. Intel xe kernel driver - The GSC proxy error suggests kernel-level issues

Related Issues

Workarounds

  1. CPU only: OLLAMA_NUM_GPU=0 - Works but loses GPU acceleration
  2. Smaller models + no flash attention: 1B models work with OLLAMA_FLASH_ATTENTION=0
  3. Use qwen3-coder:30b instead of qwen3-coder-next - Standard architecture works better than MoE

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions