Radeon 8060S · gfx1151

Run a serious 27B model
on the machine beside you.

A reproducible Qwen3.8-27B stack for Strix Halo: calibrated IQ4_XS weights, an IQ4_XS DFlash2 drafter, the UMA scheduler ring, and retained-PM4 dispatch. Built from source, installed in your home directory.

  • No system ROCm replacement
  • SHA-256 verified models
  • Exact tested Git pins
Qwen3.8-27B ROCm / HIP Retained PM4 DFlash2 IQ4_XS OpenAI-compatible API
01

One command

From source to serving.

bash · interactive installer
bash <(curl -fsSL https://raw.githubusercontent.com/pwilkin/strix-halo/main/install.sh)
Models default to ~/.models Builds default to ~/.local/share/qwen3.8-strix-halo

Process substitution keeps stdin attached to your terminal, so the installer can ask where to store the models. Prefer to inspect scripts before executing them: open the installer source or download it first.

01

Verify

Checks amdgpu, KFD and render access, gfx1151 topology, build tools, and a complete ROCm SDK.

02

Build

Compiles pinned ROCr, HIP, and llama.cpp revisions into isolated, user-owned prefixes.

03

Fetch

Downloads the selected target, DFlash2 draft, and Bartowski BF16 projector through resumable Xet transfers.

04

Serve

Installs optimized and generic launchers in ~/.local/bin, then adds that directory to your PATH.

02

Before you begin

Prerequisites, checked—not guessed.

GPU

AMD Strix Halo

Ryzen AI Max / Max+ with Radeon 8050S or 8060S exposed through KFD as gfx1151.

OS

64-bit Linux

The amdgpu kernel module, /dev/kfd, and a writable DRM render node must be available to your user.

SDK

ROCm development stack

HIP 6.1+, ROCm Clang, hipBLAS, rocBLAS, AMD COMGR, and rocprofiler-register. The installer builds the modified userspace runtimes, not the compiler stack.

SSD

30 GiB free

Enough room for source, build artifacts, two model GGUFs, and the BF16 vision projector. A separate model disk is supported.

03

The controlled leaderboard

Reproduced first. Reported second.

We reran the alternative stacks on this Radeon 8060S with the same 31,497-token source-file prompt, 256-token output, fixed-width DFlash2 policy, warmup, and palindrome ordering. In that reproduction, our custom ROCm stack is the fastest on both prefill and decode.

Matched long-prompt reproduction

Our stack leads by 13–25%.

Machine-readable evidence
Rank Reproduced stack Prompt Decode Acceptance Two-pass range Our margin
01 Our stackSelected IQ4_XS + IQ4_XS DFlash2
custom ROCm · retained PM4
256.84 t/s 26.256 t/s 60.74% 26.232–26.279 Fastest
02 ReproducedROCmFP4 FAST + FP4 DFlash2
Nathan-derived Vulkan kernel stack
215.64 t/s 23.168 t/s 57.50% 23.143–23.193 +13.33%
03 ReproducedSame selected IQ4_XS models
Nathan-derived Vulkan kernel stack
219.67 t/s 20.942 t/s 60.74% 20.933–20.950 +25.38%

“Nathan-derived” means the measured Vulkan fork at 5e085d12, which ports and credits Nathanw1014’s Strix Halo Vulkan gates. The ROCmFP4 arm changes target and draft together; the same-model Vulkan arm isolates the engine/backend. All six generations were coherent, every arm reproduced within 0.25%, and temperatures remained 37–54 °C.

Broader context

Community headlines and our shallow workload matrix

Stack Backend Target + speculation Reported decode Protocol / context Evidence
Measured hereIQ4_XS + DFlash2, width 6 Custom ROCm
retained PM4
All-calibrated IQ4_XS/Q8
IQ4_XS DFlash2
25.67 prose
39.14 reasoning
58.53 JSON
128 generated tokens; deterministic shallow prompts; two counterbalanced servers per cell Model card
Measured hereIQ4_XS + DFlash2, width 3 Custom ROCm
retained PM4
All-calibrated IQ4_XS/Q8
IQ4_XS DFlash2
25.74 prose
32.48 reasoning
41.03 JSON
Same 128-token palindrome bracket; lower draft width benefits low-acceptance prose Model card
ExternalROCmFP4 FAST + adaptive DFlash2 Custom ROCmFPX / HIP ROCmFP4 FAST
ROCmFP4 DFlash2
45.44 code
48.26 prose · 46.85 reasoning · 46.03 JSON
Adaptive width 3–7; 0.95+ reported acceptance; different target, engine, and prompts ROCmFP4 card
ExternalUD-Q5_K_XL + DFlash2 Vulkan / RADV Q5_K_XL
Q4_K_M DFlash2, width 7
31.4 t/s @ 80 W
30.2 t/s @ 70 W
Four-task 1K-token average; 55.9% acceptance; per-task range 21.1–39.8 t/s LocalLLaMA report
ExternalROCmFP4 STRIX + MTP ROCm 7.2.4 ROCmFP4 STRIX
Q4_0 MTP, width 4
30.30 t/s 8K decode; 256 tokens; greedy; median of 3–5; 92.6% MTP acceptance ROCmFP4 card
ExternalUD-Q4_K_XL + DFlash2 Vulkan / RADV Q4_K_XL
Q4_K_M DFlash2, width 7
28.5 t/s @ 80 W
27.3 t/s @ 70 W
Same four-task 1K-token suite as Q5 result; 44.9% acceptance LocalLLaMA report
HistoricalEarlier DFlash2 Vulkan result Vulkan / RADV UD-Q4_K_XL
DFlash2, width 4
26.39 t/s Zero-context-depth historical result; superseded by newer Q5/Q4 four-task measurements Nathan toolbox
ExternalPieBru evidence-tracked recipes Vulkan / RADV Q5 / Q6_K_XL / Q8
DFlash2
~23 Q5
~17–21 Q6 · ~15–18 Q8
Sustained recipe bands; prompt and context dependent; approximately 330 t/s prefill Evidence repository
ExternalOfficial Ollama route Vulkan / RADV Official qwen3.8:27b route 20.42 t/s Nine warm repeats on a 128 GB GTR9 Pro; 292.49 prompt t/s; different runtime/API Route matrix
HistoricalEarly MTP write-up Vulkan / RADV Q6_K target
MTP width 2
18 t/s
9.6 t/s baseline
Early report; width 2 beat width 5 by 19%; older runtime generation daily.dev summary
Measured hereSelected target, no speculation Custom ROCm
retained PM4
All-calibrated IQ4_XS/Q8 14.10 t/s llama-bench tg128; retained PM4; zero-context synthetic decode Model card
ExternalROCmFP4 STRIX, no speculation ROCm 7.2.4 ROCmFP4 STRIX 13.46 t/s @ 8K
12.58 t/s @ 32K
Greedy 256-token decode; context-filled server measurement ROCmFP4 card

Our protocol

Counterbalanced by construction

Three deterministic workloads, 128 output tokens, one discarded warmup per server, two independently loaded servers per configuration, and palindrome ordering to expose drift.

Correctness

The verifier stayed authoritative

Q8_0 and IQ4_XS DFlash2 produced identical target-output hashes for every workload. Acceptance changed slightly; final deterministic output did not.

Read the numbers

Acceptance is the hidden axis

Our width-6 run ranges from 25.67 to 58.53 t/s solely because prompt-dependent draft acceptance ranges from 29.3% to 95.6%.

04

What changes

A faster path through the same hardware.

ModelIQ4_XS / Q8Calibrated target
DraftDFlash2 IQ4_XSHalf-size sidecar
EngineUMA ring + TOP_Kstrix-halo branch
RuntimeRetained PM4Custom HIP / ROCr

Keep the experiments moving

Useful? Help fund the next weird driver idea.

The models, patches, installer, and benchmark notes are public. Support helps pay for hardware, power, storage, and the occasional very long compile.

Buy me a coffee
Copied to clipboard