What is ROCm

Upgrade, pin, or reinstall ROCm

Upgrade, pin, or cleanly reinstall ROCm on a Radeon GPU (Linux). Ubuntu 24.04 first. Cited AMD install docs only.

Updated Oct 14, 2026. Independent notes — not AMD documentation.

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 status should not show a leftover amdgpu tree next to the in-tree module you meant to keep. One source of amdgpu. 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 were rocm-* under /opt/rocm-7.2/.[3] Do not keep both.
  • Tarball installs are a directory you remove, plus any PATH / ROCM_PATH you 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 rocm packages, upgrade is that distro set via dnf, not AMD Core SDK 10.1. Cited path: /setup/fedora. Not verified on our rig.
  • Arch — rolling pacman -Syu of the extra ROCm packages the Arch Wiki documents. A custom kernel or DKMS amdgpu is 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.

  1. Install ROCm 10.1.0 — AMD
  2. Install Radeon software for Linux with ROCm — AMD. States Radeon Software for Linux does not support in-place upgrades.
  3. TheRock transition guide (ROCm 10.1.0 docs) — AMD
  4. ROCm runfile installer (10.1.0) — AMD
  5. Install PyTorch for ROCm — AMD
  6. llama.cpp — build.md (GGML_VULKAN / GGML_HIP) — ggml-org
  7. Mesa RADV Vulkan driver — Mesa
  8. apt-mark (Ubuntu 24.04 man-page) — Ubuntu. Distro package hold. Not an AMD-published ROCm pin.
  9. TheRock transition guide (ROCm 10.0.0 docs) — AMD
  10. ROCm 10.1: Breaking the Data-Movement Bottleneck — AMD. 5 October 2026.

Last updated

esc

Type to filter. Enter opens the first match. Full-text search lives on /search.