AI & Compute

Set Up Vulkan Compute on AMD Strix Halo / Radeon 8060S

Get Vulkan compute working on Strix Halo with the Mesa RADV driver — Kisak PPA setup, exact packages, vulkaninfo verification, and a llama.cpp Vulkan build.

On Strix Halo, graphics Vulkan works out of the box — compute is where you check things properly, because llama.cpp’s Vulkan backend depends on compute pipelines and on the shared-memory/GTT path rather than discrete VRAM. This page separates what is normal driver behavior from what needs verification, and it documents the exact userspace stack that was tested.

The stack, layer by layer

Install

Steps 1–3 of the Quick answer, with what was observed on the tested machine:

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:kisak/kisak-mesa
sudo apt update

sudo apt install -y mesa-vulkan-drivers
sudo apt install -y libvulkan-dev vulkan-tools glslc spirv-tools spirv-headers

Observed after install: mesa-vulkan-drivers 26.1.7~kisak1~n from https://ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu. Stock Ubuntu 24.04 had an older Mesa package available at the same time — the PPA is what makes this a current RADV build. Because the PPA supersedes stock for all of its Mesa packages, the whole GL/Vulkan stack on the machine is at the same 26.1.7~kisak1~n revision (libgl/libegl/mesa-libgallium et al.).

The supporting dev/tooling packages (libvulkan-dev, libvulkan1, vulkan-tools, glslc, spirv-tools, spirv-headers) came from normal Ubuntu repositories, not the PPA. Observed versions:

mesa-vulkan-drivers   26.1.7~kisak1~n        (kisak-mesa PPA)
libvulkan-dev         1.3.275.0-1build1      (Ubuntu)
libvulkan1            1.3.275.0-1build1      (Ubuntu)
vulkan-tools          1.3.275.0+dfsg1-1      (Ubuntu)
glslc                 2023.8-1build1         (Ubuntu)
spirv-tools           2025.1~rc1-1~ubuntu0.24.04.2
spirv-headers         1.6.1+1.4.309.0-1~ubuntu0.24.04.2

Confirm the source with:

apt-cache policy mesa-vulkan-drivers

Expect Installed/Candidate at the PPA version with the kisak-mesa launchpad URL in the origin list.

Verification

vulkaninfo — device visible under RADV

vulkaninfo --summary

Observed (trimmed):

GPU0:
	apiVersion         = 1.4.354
	driverVersion      = 26.1.7
	deviceName         = Radeon 8060S Graphics (RADV STRIX_HALO)
	driverID           = DRIVER_ID_MESA_RADV
	driverName         = radv
	driverInfo         = Mesa 26.1.7 - kisak-mesa PPA

A second device, llvmpipe (Mesa’s CPU software Vulkan implementation), also appears in vulkaninfo. That is normal — it is not the device you want; llama.cpp benchmarking must run on the Radeon GPU.

Compact re-check without the full dump:

vulkaninfo 2>/dev/null | grep -E 'deviceName|driverName|driverInfo|apiVersion' | head -30

The device’s memoryHeaps (captured 2026-08-24): two heaps — 43.00 GiB (no flags) and 86.00 GiB (one flag, name not yet recorded) — with live budget/usage fields that move with system load. The heap sizes sum to 129 GiB, which reconciles exactly with the kernel’s 128 GiB GTT + 1 GiB visible VRAM aperture: same physical memory, re-sliced by RADV. Full explanation alongside the other measured figures in RAM, GTT and GPU memory on Strix Halo.

Kernel driver unchanged

lspci -nnk | grep -A4 -Ei 'display|vga'

Observed — proves the PPA changed the userspace stack, not the kernel:

Kernel driver in use: amdgpu
Kernel modules: amdgpu

Build llama.cpp with Vulkan

Tested build script (build-vulkan.sh at the root of a cloned llama.cpp):

#!/usr/bin/env bash
set -euo pipefail

# Run from the root of the llama.cpp repository.

rm -rf build-vulkan

cmake -S . -B build-vulkan   -G Ninja   -DGGML_VULKAN=ON   -DCMAKE_BUILD_TYPE=Release

cmake --build build-vulkan -j"$(nproc)"

No extra flags were needed for this hardware. The same-commit requirement for the benchmark is satisfied: the retained Vulkan llama-bench JSON reports build_commit c060ca974 (build_number 10603) — identical to the ROCm build — and confirms the device it ran on.

Runtime device selection

With one real GPU plus llvmpipe, selection is automatic — confirmed from the retained benchmark JSON: devices: auto, with the run attributed to Radeon 8060S Graphics (RADV STRIX_HALO) on the Vulkan backend. No flag or environment variable was needed to force the device on this machine.

Shared/GTT memory behavior

llama.cpp will report the device’s “VRAM” as a large shared-memory figure. That is the GTT aperture, not discrete RAM — allocate with headroom for the OS and other processes, and remember reported capacity is not usable capacity. Full explanation and measured examples: RAM, GTT and GPU memory on Strix Halo.

Common failures

Not encountered during testing: the documented PPA install, verification, and driver-state checks completed without failure on the tested machine. If vulkaninfo shows no AMD device at all, the first things to check are the kernel amdgpu module state (lsmod | grep amdgpu) and that the kernel is a recent distro release rather than a custom build without iGPU support.

Sources and upstream documentation