
Ollama quietly stopped using my AMD iGPU
I have a Beelink EQR5 mini PC running Proxmox, with Ollama installed inside an Ubuntu LXC container. I’ve allocated 16 GB of RAM to the iGPU specifically so that Ollama can use hardware acceleration. It works — or at least, it used to. I went to run a model and it was crawling along at about ten tokens a second, the fan was doing its best hairdryer impression, and the GPU was doing nothing at all.
The first clue: ollama ps
The quickest way to see what’s happening is ollama ps. It tells you exactly where a model is loaded — GPU, system RAM, or split between the two. In this case it was unambiguous: the model was sitting entirely in system RAM. No GPU involvement whatsoever.
That was enough to know something had gone wrong. I asked the Warp agent to investigate why the model wasn’t being loaded onto the GPU.
What the agent found
The agent ran vulkaninfo to check hardware and driver visibility, and confirmed the GPU was perfectly visible:
GPU0: AMD Radeon Graphics (RADV RENOIR)
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
driverInfo = Mesa 25.0.7-2
Then it checked the Ollama service logs, and the answer was right there:
server config ... OLLAMA_VULKAN:true
dropping integrated GPU; to enable, set OLLAMA_IGPU_ENABLE=1
inference compute id=cpu library=cpu ...
Ollama found the GPU. Then it deliberately dropped it — and even included the fix in the log message.
The actual root cause
This one has a bit of history to it. When Ollama first introduced Vulkan support, OLLAMA_IGPU_ENABLE was effectively ignored on the Vulkan backend — integrated GPUs just worked. That’s how I had my setup running for a while, without that environment variable set at all.
A subsequent release fixed that inconsistency, which meant the flag started being enforced again. So after an update, Ollama began skipping my iGPU by default, exactly as intended. I hadn’t changed anything; Ollama had.
It’s a reasonable default. Plenty of integrated GPUs are slower than the CPU for inference, and silently underperforming out of the box would make Ollama look bad. But mine is genuinely useful — and the change was completely silent from where I sat.
From ROCm to Vulkan
If you’ve read my earlier guide to setting up Ollama with GPU passthrough, you’ll know this machine started out on ROCm. That post covered the whole LXC container setup — cgroup device rules, the video and render groups, and the ROCm version of Ollama — along with the HSA_OVERRIDE_GFX_VERSION='9.0.0' environment variable needed to coax the iGPU into working with a compute stack that didn’t officially support it.
On paper, ROCm should have been the better path — it’s AMD’s purpose-built compute stack. In practice, it was fragile. Driver versions were finicky, things broke across updates, and I was constantly fighting the tooling just to keep things running. The hardware choice post touched on this too: official ROCm support for iGPUs in Ryzen 5000 processors is limited, and getting it running required working around that with environment variable hacks.
Switching to Vulkan/RADV changed things significantly. It’s simpler, more stable, and on this particular hardware it delivers better and more reliable results day-to-day. HSA_OVERRIDE_GFX_VERSION is irrelevant on the Vulkan path — it’s a ROCm/HIP thing only. If you’re on a similar AMD APU setup and ROCm has been giving you grief, Vulkan is worth trying.
The fix
One environment variable. I added it next to the Vulkan flag in the systemd unit (/etc/systemd/system/ollama.service):
Environment=OLLAMA_VULKAN=1
Environment=OLLAMA_IGPU_ENABLE=1
Then the usual reload-and-restart:
sudo systemctl daemon-reload
sudo systemctl restart ollama
After that, the logs confirmed everything was back:
inference compute id=0 library=Vulkan name=Vulkan0
description="AMD Radeon Graphics (RADV RENOIR)" type=iGPU
total="39.5 GiB" available="39.4 GiB"
type=iGPU and library=Vulkan — the model was back on the GPU.
One thing worth noting: the ~39 GiB “available” figure isn’t dedicated VRAM. The iGPU has no dedicated memory; it carves its allocation out of system RAM (GTT). In my case that’s the 16 GB I’ve reserved in the BIOS, but the GTT pool can draw from the rest of system RAM too. It’s a quirk of the APU architecture, not a misconfiguration.
The real takeaway: when something that used to work stops working and you haven’t changed anything, check whether the tool changed its defaults. The answer was in the logs the whole time.
If you’re running Ollama on an AMD APU over Vulkan and it suddenly went CPU-only, OLLAMA_IGPU_ENABLE=1 is almost certainly what you’re after.