Strix Halo (Ryzen AI Max+) exposes its Radeon 8060S iGPU to ROCm through the
gfx1151 target (RDNA 3.5). Installing ROCm itself is a normal AMD repository
setup; the Strix-Halo-specific part is making sure the gfx1151 package
suffixes are actually installed and that verification shows the right agent.
Prerequisites
- A Strix Halo system with the Radeon 8060S iGPU (gfx1151).
- Ubuntu 24.04 (noble). The tested machine ran Ubuntu 24.04.4 LTS.
- The stock kernel
amdgpudriver — do not install AMD’s DKMS driver for this workflow. The tested machine used the distro kernel driver as-is (6.18.36-061836-generic); no newer kernel was required or claimed as a minimum. - Your user must be in the
videoandrendergroups — check withid. If you are missing one:sudo usermod -aG render $USER(same forvideo), then log out and back in. The tested user was already a member of both. - No BIOS changes were needed for this install. The tested machine boots with
pre-existing kernel command-line parameters (
iommu=pt,amdgpu.gttsize=131072, TTM limits); ROCm installed and ran without touching them. See Strix Halo memory & GTT reference before changing any of those. - Disk: the measured 7.13 → 7.14 transition changed used disk space by about
2 GB net (measured with
df -h /before and after). A first-time install is larger than a same-size upgrade.
Migrating from an older ROCm (tested: 7.13 → 7.14)
If you previously installed ROCm 7.x through AMD’s repo or the amdgpu-install
helper, remove it before adding the new repository — otherwise the old repo
files and pins keep interfering.
# Remove the old package roots, then let apt clean up
sudo apt autoremove
# Verify nothing 7.13 remains (both should print nothing):
apt list --installed 2>/dev/null | grep -E 'amdrocm.*7\.13'
apt-mark showmanual | grep -E '^amdrocm.*7\.13'
# Remove leftover generated cache directory from the old install
sudo rm -rf /opt/rocm/core-7.13
# Remove old AMD/ROCm repo configuration and pins
sudo rm -f /etc/apt/sources.list.d/amdgpu.list
sudo rm -f /etc/apt/sources.list.d/rocm.list
sudo rm -f /etc/apt/sources.list.d/rocm.list.dpkg-dist
sudo rm -f /etc/apt/preferences.d/repo-radeon-pin-600
sudo rm -f /etc/apt/preferences.d/rocm-pin-600
# Remove the helper that installed them
sudo apt purge -y amdgpu-install
# Reset apt state
sudo rm -rf /var/cache/apt/*
sudo apt clean
sudo apt update
The important decision in this section: keep the existing amdgpu kernel
driver and avoid amdgpu-dkms.
Repository configuration
Add AMD’s GPG key and the Ubuntu 24.04 repository (commands in the Quick answer). Then confirm the package set is visible before installing:
apt-cache policy amdrocm7.14-gfx1151
Observed candidate on the tested machine: 7.14.0-3.
Install
One package is the entry point; apt pulls the rest of the set as dependencies:
sudo apt install amdrocm-core-dev7.14-gfx1151
sudo reboot
The installed amdrocm-* set on the tested machine (measured with
dpkg -l, all at 7.14.0-3):
amdrocm-amdsmi7.14 7.14.0-3
amdrocm-base7.14 7.14.0-3
amdrocm-blas-dev7.14 7.14.0-3
amdrocm-blas-host7.14 7.14.0-3
amdrocm-blas7.14-gfx1151 7.14.0-3
amdrocm-ccl-dev7.14 7.14.0-3
amdrocm-ck7.14 7.14.0-3
amdrocm-core-dev7.14-gfx1151 7.14.0-3
amdrocm-core7.14-gfx1151 7.14.0-3
amdrocm-debugger7.14 7.14.0-3
amdrocm-decode-dev7.14 7.14.0-3
amdrocm-decode7.14 7.14.0-3
amdrocm-dnn-dev7.14 7.14.0-3
amdrocm-dnn-host7.14 7.14.0-3
amdrocm-dnn7.14-gfx1151 7.14.0-3
amdrocm-fft-dev7.14 7.14.0-3
amdrocm-fft-host7.14 7.14.0-3
amdrocm-fft7.14-gfx1151 7.14.0-3
amdrocm-hipblas-common-dev7.14 7.14.0-3
amdrocm-hipfile-dev7.14 7.14.0-3
amdrocm-hipfile7.14 7.14.0-3
amdrocm-hipify7.14 7.14.0-3
amdrocm-jpeg-dev7.14 7.14.0-3
amdrocm-jpeg7.14 7.14.0-3
amdrocm-llvm-dev7.14 7.14.0-3
amdrocm-llvm7.14 7.14.0-3
amdrocm-math-common7.14 7.14.0-3
amdrocm-opencl-dev7.14 7.14.0-3
amdrocm-opencl7.14 7.14.0-3
amdrocm-profiler-base7.14 7.14.0-3
amdrocm-rand-dev7.14 7.14.0-3
amdrocm-rand-host7.14 7.14.0-3
amdrocm-rand7.14-gfx1151 7.14.0-3
amdrocm-rccl-dev7.14 7.14.0-3
amdrocm-rccl-host7.14 7.14.0-3
amdrocm-rccl7.14-gfx1151 7.14.0-3
amdrocm-rocshmem-dev7.14 7.14.0-3
amdrocm-rocshmem7.14 7.14.0-3
amdrocm-runtime-dev7.14 7.14.0-3
amdrocm-runtime7.14 7.14.0-3
amdrocm-solver-dev7.14 7.14.0-3
amdrocm-solver-host7.14 7.14.0-3
amdrocm-solver7.14-gfx1151 7.14.0-3
amdrocm-sparse-dev7.14 7.14.0-3
amdrocm-sparse-host7.14 7.14.0-3
amdrocm-sparse7.14-gfx1151 7.14.0-3
amdrocm-sysdeps7.14 7.14.0-3
Notes from the tested machine:
-
Layout. ROCm installs to a versioned root with compatibility links — use the generic paths for everyday commands:
/opt/rocm/core-7.14 actual install /opt/rocm/core-7 -> /etc/alternatives/core-7 /opt/rocm/bin -> /etc/alternatives/rocm-bin /opt/rocm/lib -> /etc/alternatives/rocm-lib -
Unrelated package present. The tested machine also carries Ubuntu’s own
rocm-opencl(the noble OpenCL ICD loader). It is not part of theamdrocm-*set and was left in place; ROCm verification does not depend on it.
Shell environment
Add to ~/.bashrc (or your shell equivalent) so rocminfo, hipconfig,
hipcc etc. resolve without full paths:
# ROCm 7.x
export ROCM_PATH=/opt/rocm
export HIP_PLATFORM=amd
export PATH="$ROCM_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$ROCM_PATH/lib:${LD_LIBRARY_PATH:-}"
Two things to keep out of ~/.bashrc:
- The per-project compiler wiring (
HIPCXX,HIP_PATH) belongs in the build script of the project that needs it. GPU_TARGETSis a CMake argument for the build, not an environment variable — pass it to CMake per build instead of exporting it globally.
Verification
rocminfo — GPU agent present with gfx1151
/opt/rocm/bin/rocminfo | grep -A12 -B5 gfx1151
Observed (trimmed):
Name: gfx1151
Marketing Name: AMD Radeon 8060S Graphics
Feature: KERNEL_DISPATCH
Profile: BASE_PROFILE
Device Type: GPU
ISA: amdgcn-amd-amdhsa--gfx1151
The CPU node (AMD RYZEN AI MAX+ 395) and the NPU node (aie2p /
RyzenAI-npu5) also appear in rocminfo; the agent you care about for ROCm
compute is the gfx1151 GPU entry above.
HIP runtime and compiler
/opt/rocm/bin/hipconfig --version
/opt/rocm/bin/hipcc --version
Observed:
7.14.60850-0000000
HIP version: 7.14.60850-0000000
AMD clang version 23.0.0git
Target: x86_64-unknown-linux-gnu
InstalledDir: /opt/rocm/core-7.14/lib/llvm/bin
These version checks confirm the toolchain is in place; the first real compile-and-run is the llama.cpp build below, which is the stronger proof.
Kernel driver still in use
ROCm on Linux rides on the kernel amdgpu driver — confirm you did not end
up on a DKMS variant:
lspci -nnk | grep -A4 -Ei 'display|vga'
Observed:
Kernel driver in use: amdgpu
Kernel modules: amdgpu
llama.cpp with HIP
Build llama.cpp against this ROCm install (full build script and flags in Run llama.cpp on Strix Halo). Dependencies installed for the tested build:
sudo apt install -y build-essential cmake git ninja-build pkg-config libssl-dev libgomp1
After building, confirm two things with the CLI itself: which devices it sees and which build it is.
./build-rocm/bin/llama-cli --list-devices
./build-rocm/bin/llama-cli --version
Observed output on the tested machine:
$ ./build-rocm/bin/llama-cli --list-devices
Available devices:
ROCm0: AMD Radeon 8060S Graphics (131072 MiB, 83680 MiB free)
$ ./build-rocm/bin/llama-cli --version
version: 0.2.0-dev (build 10603, commit c060ca974)
built with GNU 14.2.0 for Linux x86_64
Two things to read out of that output:
- Device:
ROCm0is the Radeon 8060S. The131072 MiBfigure is the shared-memory (GTT-aperture) view of system RAM, not discrete VRAM — and the free number varies with whatever else is running. What these figures mean on this hardware: RAM, GTT and GPU memory. - Build:
10603/c060ca974matches the retained benchmark JSONs exactly (build_commit,build_number) — this is provably the same binary that produced the ROCm vs Vulkan numbers.
End-to-end check: run a real benchmark
The commands below are what was executed on the tested machine to produce the
ROCm numbers on the ROCm vs Vulkan page — and they
double as the reproduction recipe. MODEL is the path from the tested
machine; point it at any GGUF you have and keep everything else byte-identical:
MODEL="/home/user/models/Qwen3.8/Qwen3.8-27B-Q8_0.gguf"
mkdir -p benchmark-results
./build-rocm/bin/llama-bench \
-m "$MODEL" \
-ngl 999 \
-p 512,2048,8192 \
-n 128 \
-b 2048 \
-ub 512 \
-fa on \
-r 5 \
-o json \
> benchmark-results/rocm-7.14.json
./build-rocm/bin/llama-bench \
-m "$MODEL" \
-ngl 999 \
-pg 2048,256 \
-b 2048 \
-ub 512 \
-fa on \
-r 5 \
-o json \
> benchmark-results/rocm-7.14-pg2048-256.json
Each invocation self-exits and writes one JSON per test set (per-test
timings, 5 repetitions). Both completed without error on the tested machine;
the retained files are on record via the benchmark page. For byte-identical
numbers, build from llama.cpp at commit c060ca974.
Common failures
Not encountered during testing: the documented 7.13 → 7.14 migration, install, and verification steps completed without failure on the tested machine.
Sources and upstream documentation
- AMD ROCm documentation — installation methods, prerequisites, and package layout this guide navigates.
- llama.cpp repository —
GGML_HIP/GPU_TARGETSbuild options referenced in the compiler checks.