The R9700 is new enough that old ROCm simply does not know it. The card can be bolted into a beautiful Ubuntu install and still show up as a paperweight if userspace predates the gfx1201 row.
This is not a unique AMD sin. It is worse at home because we mix advice from three years of Reddit.
Three clocks, not one
- Kernel
amdgpu. Distro HWE vs AMD DKMS vs “whatever the installer compiled at 1 a.m.” - ROCm userspace. The
/opt/rocm(or distro) tree withrocminfo. - Framework wheels / containers. PyTorch
+rocmX.Yanddevice-gfx1201, vLLM image tags, Ollama’s bundled libs.
A green rocm-smi does not imply a green import torch. A green torch matmul does not imply Ollama attached its runner to HIP.
The pins as of mid-September 2026 (snapshots)
These are dated, not gospel. The weekly card and ROCm version notes win if they disagree.
- AMD official: Core SDK 10.0.0 (26 Aug) and the 7.14.1 patch (2 Sep). Packages are
amdrocm-*, prefix/opt/rocm/core-10.0, one gfx family (-gfx110xvs-gfx1201). R9700 is first-classgfx1201. - Not official-current: Canonical archive
apt install rocm(7.1 seen on 26.04). Do not use it if you want 10.0 or vLLM 0.29 extras. - AMD-supported combo in 10.0 notes: PyTorch 2.13, vLLM 0.27, SGLang 0.5.15.
- What people were running that week: upstream vLLM 0.29.0 ROCm extras (
wheels.vllm.ai/rocm/0.29.0/rocm723orvllm/vllm-openai-rocm:v0.29.0). Plainpip install vllmis CUDA. 0.30rc is bleeding.
None of those sentences replace the matrix on the day you install.
A house rule that prevents most pain
Pick a ROCm version first. Then pick the OS point release it names. Then pick frameworks that advertise that pair. Then stop updating any one of those “just because.”
When you do upgrade, upgrade on purpose: read the release notes for Radeon / gfx1201, take a snapshot or a second rootfs if the box also has to boot a desktop you need on Monday, and re-run the verify tutorial before you restore a 20 GB model cache.
Overrides are not a support matrix
HSA_OVERRIDE_GFX_VERSION is a compatibility hammer from the era when consumer cards were ahead of official lists. On a card AMD already lists, it is usually the wrong tool. If rocminfo cannot see gfx1201, you have the wrong userspace — not a missing environment variable.
Practical changelog you can keep
When something works, write down four lines in a text file next to your models:
date: 2026-09-20
os: Ubuntu 24.04.x (kernel …)
rocm: (rocminfo version / /opt/rocm/.info)
torch_or_llamacpp: (exact commit or wheel)
Future you will not remember which combination produced the first good rocm-smi spike. That file is the blog post that matters.