Shoppers search “how do I upgrade ROCm” and “ROCm broke after an update.” This AMDai chapter is the step-by-step for a Radeon box on Linux — Ubuntu 24.04+ as the main path. It does not replace the first-install walkthrough or the versions cadence page. llama.cpp Vulkan (Mesa RADV) is the house default and usually survives a ROCm userspace swap. HIP / ROCm is the alternate you rebuild after the stack moves. Copy wget, repo, amdgpu-install, and package names from the official page for the version you chose — do not invent a .deb filename.
Check what you have now
Write down the method you used last time (AMD 10.1 apt / TheRock, amdgpu-install,
ROCm CLI, runfile, or tarball) before you add another repo. One method.
rocminfo is how you ask ROCr which agents it can see.
amd-smi is the successor to rocm-smi on the 10.1 line. [10]
TheRock 10.x installs under /opt/rocm/core-10.1; a leftover legacy tree is often
/opt/rocm-7.2/.[3]
# Kernel, OS, and the card
uname -r
. /etc/os-release && echo "$PRETTY_NAME"
lspci -nn | grep -Ei 'vga|display|3d'
lsmod | grep amdgpu
# One amdgpu source — leftover DKMS + distro module + old runfile is the mix /rocm/stack warns about
dkms status
# Which tree landed: TheRock 10.x uses /opt/rocm/core-10.1; legacy often /opt/rocm-7.2/
ls -ld /opt/rocm /opt/rocm-* /opt/rocm/core-* 2>/dev/null
# Inventory — do not copy a purge list from memory
dpkg -l | grep -Ei 'rocm|amdrocm|hip|hsa-runtime|amdgpu-install'
# Userspace tools. 10.1: amd-smi succeeds rocm-smi.
which rocminfo rocm-smi amd-smi
rocminfo
amd-smi || rocm-smi
In rocminfo, find the GPU agent — marketing name plus the gfx the compiler cares
about. Confirm that id on gfx IDs before you rebuild HIP. Then
verify. Do not install a second userspace on top of a
failed first one.
In-place upgrade (official method)
There are two official stories. They are not interchangeable.
ROCm 10.1 apt — “install and update”
AMD’s 10.1 install page registers a signed repo so you can
install and update ROCm packages with apt.[1]
Copy the Ubuntu 24.04 (noble), 26.04, or 22.04 snippet from that page for the point release
you actually run. Then:
# Copy the Ubuntu 24.04 (or 26.04 / 22.04) repo snippet from the 10.1 install page,
# then:
sudo apt update
apt-cache search amdrocm-core-sdk
# Install ONE gfx family that matches rocminfo. Example shape only — confirm the suffix:
# sudo apt install amdrocm-core-sdk10.1-gfx1201
Installing every family package at once is how you fight TheRock. Confirm the prefix with
ls /opt/rocm. If you still have ROCm 7.2.4 or older, AMD says
uninstall it before proceeding. [1]
Radeon Software / amdgpu-install — no in-place upgrade
The Radeon software for Linux page is explicit: the recommended method to upgrade is to
uninstall, then install. Radeon Software for Linux does not support in-place
upgrades. [2]
sudo amdgpu-install --list-usecase lists usecases; graphics + ROCm is the
default they recommend. Copy the amdgpu-install .deb from the official page for
the version you chose. Official docs currently show different versioned filenames on the
Radeon 7.2.1 path and the ROCm 10.1 31.60 path — do not mix those from memory.
sudo amdgpu-uninstall
# Then install from the official Radeon / amdgpu-install page for the version you chose.
# Copy the amdgpu-install .deb URL from that page. 7.2.1 and 31.60 both appear in
# official docs for different products — do not mix filenames from memory.
Pin or hold a known-good version
AMD does not publish a ROCm “pin this version” command. On Ubuntu, apt-mark hold
is the distro tool that stops apt from upgrading a package. [8]
That is unofficial for this job — Ubuntu noble man-page, not an AMD ROCm
pin. Inventory first. Hold the packages you actually installed.
# Unofficial for ROCm — Ubuntu apt-mark, not an AMD-published pin.
apt-mark showhold
# Hold the packages you inventoried (amdrocm-* or the amdgpu-install set), not a name from memory:
# sudo apt-mark hold PACKAGE
# sudo apt-mark unhold PACKAGE
Fedora versionlock and Arch IgnorePkg are the same idea on those
distros — also not AMD-published ROCm pins. Do not treat a hold as a substitute for
rocminfo still listing this gfx.
Clean uninstall and reinstall
Use this when an upgrade left you with mixed repos, a leftover DKMS tree, or a runfile next to an apt tree. Uninstall with the same method you installed. Then follow Install ROCm with one method.
amdgpu-install
Official uninstall for that path is sudo amdgpu-uninstall, then purge the
installer package and clean apt. [2] [1]
sudo apt purge amdgpu-install
sudo apt autoremove
sudo rm -rf /var/cache/apt/*
sudo apt clean
sudo apt update
Runfile
Copy the current .run name from the 10.1 runfile page. The 10.1.0 docs show
uninstall-rocm gfx=all (or a single gfx) and uninstall-amdgpu.[4]
# Copy the current .run name from the 10.1 runfile page — do not invent a filename.
# Shape from the 10.1.0 docs:
bash rocm-installer-10.1.0-5.run uninstall-rocm gfx=all
bash rocm-installer-10.1.0-5.run uninstall-amdgpu
Leftover DKMS, mixed repos, TheRock vs legacy
-
dkms statusshould not show a leftoveramdgputree next to the in-tree module you meant to keep. One source ofamdgpu. The stack. -
Ubuntu archive
rocm/libamdhip64-dev/libhsa-runtime*must not sit next to AMD’s 10.x repo. Archive shadow. -
TheRock packages are
amdrocm-*under/opt/rocm/core-10.1. Legacy packages wererocm-*under/opt/rocm-7.2/.[3] Do not keep both. -
Tarball installs are a directory you remove, plus any
PATH/ROCM_PATHyou added. Copy that cleanup from the 10.1 install page if you extracted somewhere other than the documented default. [1]
Reboot after the uninstall if the kernel module changed. Then install once.
What to rebuild afterwards
llama.cpp Vulkan first. GGML_VULKAN=ON talks to a Vulkan ICD.
On Linux that is typically Mesa RADV, packaged by the distro, not
/opt/rocm.[6] [7]
A ROCm userspace swap does not replace RADV, so the house Vulkan binary usually survives
untouched. Shopper compare:
Vulkan vs ROCm. Guide:
Vulkan vs HIP.
HIP is the alternate. Rebuild after rocminfo still lists this
gfx. Pin AMDGPU_TARGETS to that id. GGML_HIP=ON is the
llama.cpp flag. [6]
# After rocminfo still lists this gfx. Pin AMDGPU_TARGETS to that id.
# llama.cpp build.md: GGML_HIP=ON
cmake -B build-hip -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1201
cmake --build build-hip -j
PyTorch ROCm wheels for ComfyUI or fine-tuning must match the userspace you just installed. Copy the index URL from AMD’s Install PyTorch for ROCm page — do not reuse a wheel from the previous major. [5] Walkthroughs: ComfyUI, fine-tuning.
Fedora and Arch
Short notes only. Neither distro is an official ROCm 10.1 OS row. Do not drop
repo.radeon.com debs onto them and call it official 10.1.
-
Fedora — if you installed Fedora’s own
rocmpackages, upgrade is that distro set viadnf, not AMD Core SDK 10.1. Cited path: /setup/fedora. Not verified on our rig. -
Arch — rolling
pacman -Syuof the extra ROCm packages the Arch Wiki documents. A custom kernel or DKMSamdgpuis not verified on our rig. Cited path: /setup/arch.
Dual-boot Ubuntu 24.04.5 if you want the measured local desktop path to match the box. Ubuntu setup.
Post-upgrade smoke test
House default on AMDai: Qwen3.6-35B-A3B Unsloth UD-Q5_K_XL, one R9700, 262144 context, f16 KV, llama.cpp Vulkan. Measured decode lives on /gpus/r9700 and /benchmarks — do not copy tok/s from memory. Q3 stays a labeled estimate on those pages. Q1/Q2 stay off.
# House daily-driver shape on one R9700. Measured decode lives on /gpus/r9700
# and /benchmarks — do not copy tok/s from memory.
# Vulkan binary (build-vk) usually survives a ROCm userspace swap.
./build-vk/bin/llama-cli \
-m /path/to/Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf \
-c 262144 \
-ngl 99 \
-ctk f16 \
-ctv f16
Confirm --list-devices still sees the discrete Radeon. If only the Vulkan build
was in use, you are done. If you need HIP, rebuild it, then compare on your box with
amdai-bench — HIP decode on the local desktop stays pending.
Recovery checklist
Match the symptom to the cited row. This page does not retell those write-ups.
- Archive HIP/HSA shadows AMD’s install — Ubuntu archive rocm / libamdhip64-dev / libhsa-runtime* mixed with AMD’s repo. Purge the archive set, then one method.
- HIP no binary for GPU — Userspace or HIP build does not list this gfx. Confirm rocminfo, rebuild HIP with the printed target, or stay on Vulkan.
- HSA_OVERRIDE is unofficial — Do not spray HSA_OVERRIDE_GFX_VERSION after an upgrade. Unset it on official gfx1201. Vulkan does not need it.
- MODE1 reset / MES hang — A hang after a kernel or userspace swap can be MES / MODE1, not a missing package. Capture dmesg. Try Vulkan. Do not add a third driver.
Also: verify, reinstall with one method, troubleshoot, all open problems. Do not add a third driver to “fix” a mix.
Go deeper HSA_OVERRIDE is still unofficial after an upgrade
HSA_OVERRIDE_GFX_VERSION is not an AMD-documented recovery step. On official
gfx1201 + current ROCm you should not need it. Unset it. Prefer Vulkan if HIP is angry.
Cited row.
Sources
Every version and support claim on this page points here. If a sentence has no mark, treat it as lab opinion or a not recorded — not as AMD policy.
- Install ROCm 10.1.0
- Install Radeon software for Linux with ROCm
- TheRock transition guide (ROCm 10.1.0 docs)
- ROCm runfile installer (10.1.0)
- Install PyTorch for ROCm
- llama.cpp — build.md (GGML_VULKAN / GGML_HIP)
- Mesa RADV Vulkan driver
- apt-mark (Ubuntu 24.04 man-page)
- TheRock transition guide (ROCm 10.0.0 docs)
- ROCm 10.1: Breaking the Data-Movement Bottleneck