I recently encountered an interesting performance issue while running Ollama locally on my ASUS ZenBook with an Intel Arc 140T integrated GPU.
I was sure that I had enough GPU:
However, every model I tested was extremely slow, including relatively small models such as Qwen3 4B.
After investigating, I discovered that Ollama was running entirely on the CPU instead of using the GPU.
Identifying the problem
Ollama provides a simple command to check where a model is running:
ollama ps
Initially, the output showed:
NAME SIZE PROCESSOR CONTEXT
qwen3:4b 3.9 GB 100% CPU 8192
The GPU was not being used.
Enabling Intel Arc GPU acceleration
The solution was to enable two environment variables:
$env:OLLAMA_VULKAN = "1"
$env:OLLAMA_IGPU_ENABLE = "1"
The first enables Ollama's experimental Vulkan backend, while the second allows integrated GPU detection.
After completely closing Ollama, I restarted the server:
ollama serve
Then I loaded the model again:
ollama run qwen3:4b
Checking the processor allocation:
ollama ps
This time, the result was:
NAME SIZE PROCESSOR CONTEXT
qwen3:4b 3.2 GB 100% GPU 4096
Success! Ollama is now using the Intel Arc GPU.
Making the configuration permanent
To avoid setting the variables every time Ollama starts, configure them permanently in PowerShell:
[Environment]::SetEnvironmentVariable("OLLAMA_VULKAN", "1", "User")
[Environment]::SetEnvironmentVariable("OLLAMA_IGPU_ENABLE", "1", "User")
Restart Ollama after applying these changes.
Final thoughts
This experiment was performed using:
- GPU: Intel Arc 140T
- Driver: 32.0.101.8860
- OS: Windows 11 26H2
- Ollama: 0.40.11
- Model: Qwen3 4B
The interesting lesson is that having a GPU capable of running a model does not guarantee that your inference engine is actually using it.
Tools that estimate whether a model fits into memory are useful, but actual hardware utilization matters just as much.
I believe Ollama could improve the user experience by displaying GPU utilization directly in its interface and warning users when a compatible GPU is available, but inference is running on the CPU.
Until then, ollama ps is your friend!
Notes:
- Vulkan acceleration remains experimental, and results may vary depending on your Intel GPU, drivers, and Ollama version.
- I created this ticket on GitHub; maybe they could support it from the UI in the future.







Top comments (2)
Useful lane — Arc adds one wrinkle to the VRAM math that CUDA guides never mention: the overhead band. The usual 0.6-1.2 GiB context-plus-buffers number is an NVIDIA shape; on SYCL/IPEX builds the driver and compute buffers take a bigger bite, and on 8-16 GB shared-memory chips that band decides the fit as much as the weights do. Did you capture idle-vs-loaded VRAM in the task manager while it ran? That delta is the honest overhead number on Arc, and it would make this guide the rare one that prints it.
That's a good point! I haven't captured the idle versus loaded GPU memory consumption during my current experiments. My main objective was to identify why Ollama was using the CPU despite having a compatible GPU.
One distinction worth mentioning is that my setup uses the experimental Vulkan backend rather than SYCL/IPEX.
I'll consider adding memory measurements in a follow-up test, particularly because the Arc 140T uses shared system memory. It would be interesting to compare the actual overhead against the model's reported size.