Deployment guide
Ollama on Strix Halo (Ryzen AI Max+ 395): install, GPU detection, first model
The default-path Ollama setup on a Strix Halo box, with the one log line that confuses everyone decoded: why the Vulkan path drops your iGPU, why ROCm picks it up anyway, and how to verify the model actually landed on the GPU instead of silently running on CPU.
- Platform:
- Strix Halo (Ryzen AI Max+ 395)
- Time to complete:
- 20 min
- Updated:
- 9/1/2026
Ollama is the shortest path from a bare box to a model answering on this hardware, and the setup genuinely is the default path — one script, one pull, one run. What the generic tutorials skip is the part specific to this machine: what GPU detection actually prints on a Ryzen AI Max+ 395, which of those lines is a trap, and how to confirm the model landed on the GPU. We wrote this while performing the install on one of our own boxes; the log lines below are real.
If you want full control over flags, context and pinned versions instead of a managed default, that is the llama.cpp guide — Ollama runs llama.cpp underneath, and which layer to operate at is its own question.
Step 0 — the memory ceiling, same as always
Before anything else: on Linux, how much memory the GPU can reach is decided by a TTM kernel parameter, not the BIOS. If you skipped it, big models will refuse to fit no matter what runtime you use — the memory allocation page covers it. Done right, Ollama will report the full ceiling at startup; ours shows just under the machine’s total RAM.
Step 1 — install
The official path works on this hardware:
curl -fsSL https://ollama.com/install.sh | sh
Expect a multi-gigabyte download — the bundle carries CPU, CUDA, ROCm and Vulkan backends. It registers a systemd service and starts it. Verify:
ollama --version
systemctl is-active ollama
Step 2 — read the GPU detection like a local, not like a bug report
This is where this machine differs from the tutorials. Check what the service saw:
journalctl -u ollama -n 80 | grep -iE "gpu|rocm|gfx|compute"
On our box, a fresh install prints two lines that look contradictory:
msg="dropping integrated GPU; to enable, set OLLAMA_IGPU_ENABLE=1"
id=0 library=Vulkan name=Vulkan0 description="AMD Radeon Graphics (RADV GFX1151)"
msg="inference compute" id=0 library=ROCm compute=gfx1151
description="Radeon 8060S Graphics" type=iGPU total="117.4 GiB" available="117.4 GiB"
Decoded: Ollama’s Vulkan path drops integrated GPUs by default — that
first line is the one that sends people to the issue tracker convinced their
GPU is unsupported. But the bundled ROCm backend recognizes gfx1151
directly and takes the device, with the full memory ceiling visible. On a
current Ollama, this hardware works out of the box through ROCm; you only
need OLLAMA_IGPU_ENABLE=1 if you specifically want the Vulkan path. If
your log shows the drop line and no ROCm line, your Ollama predates the
bundled gfx1151 support — update it before touching anything else.
Step 3 — pull and run
ollama pull llama3.2:3b
ollama run llama3.2:3b "Reply with one short sentence: what is inference?"
Start small to validate the pipeline; size up after. What actually fits in this machine’s memory class is measured separately.
Step 4 — prove it landed on the GPU
The check almost nobody runs, and the one that matters most on an iGPU machine where a silent CPU fallback produces plausible-but-slow behavior:
ollama ps
The PROCESSOR column must say 100% GPU. Ours does. Anything like
XX%/XX% CPU/GPU means part of the model spilled — too big for the ceiling
you configured in step 0, or the GPU was not picked up at all. A model
“working” on CPU is the classic
green-but-broken state: answers
arrive, everything looks fine, and you quietly get a fraction of what the
box can do.
Also worth knowing: Ollama sizes its default context from detected memory
(ours picked a six-figure token window on its own) and unloads idle models
after a few minutes — the UNTIL column in ollama ps is that countdown,
not an error.
Where this path ends
Ollama’s defaults are chosen for convenience, and they move between releases. The day you want to measure anything, or your numbers disagree with someone else’s, switch to asking the server what it actually runs and pinning what you deploy: that discipline is the whole difference between a setup and a configuration. For serving a team, mind the concurrency ladder; Ollama ships with a single parallel slot by default.