Local LLM / Serving

Qwen 3.8 27B on Strix Halo: the complete measured story

Every dial measured, every number public: the frozen optimal config for a 27B on a $1,400 mini-PC.

By Simon Gonzalez de Cruz (follow the build in public on X @KyaniteLabs_). Arc close, 2026-08-21. The whole story, corrected on the record.

We asked a simple question: can a $1,400 mini-PC serve a 27B model the way big rigs do? This note closes the book. Every claim below has a raw log behind it, in the public repo, with its methodology.

The rig

AMD Strix Halo, 64 GB shared memory, open tooling (llama.cpp), one free Apache-2.0 model. No cloud, no rentals.

The ceiling

Exact needle retrieval at every tested depth, two seeds, up to 261,130 of 262,144 tokens — 99.6% of the window, the literal ceiling. Warm follow-ups on a loaded 198k-token document: exact quote in 23.8s, yes/no in 10.0s, one-line summary in 17.5s. Format does not matter: prose or code, exact either way; described-in-words, every part comes back in order. Raw: nativemax-results.log · quote-rerun-results.log.

The bug we owed you

Mid-arc, long-context and vision silently broke on this GPU class. Our first read blamed the model — wrong. We bisected it to one upstream change (c7d8722), reported it, fixed it locally, and validated the upstream fix on our silicon: 9/9 identical answers, paired. The correction is in the repo, on the record. Degeneration was the instrument, not the model. Raw: issue 26209 · pr25863-validation.

The frozen config

Weights Q4. KV cache light (q4_0) — after measuring the trade: the heavy option buys up to ~3 seconds on follow-up questions (sub-second to 2.8s measured at the half window) for ~4 GB; we kept the room. Speculation: the shipped setup, verified fastest of four by paired walls (15.1s per 200-word answer vs 17.8s with it off). Context: the full 262,144. Thinking: off by default, hard problems think — measured across three difficulty bands. Vision: works, 6/6 on real browser screenshots. Raw: config-27b-2026-08-21.

What this proves

A complete serving story — speed, memory, quality, failure modes, and the fix trail — measured on hardware anyone can buy, with every number reproducible from the repo. That is the standard we wanted to set.

The rig stays on this frozen config. Next chapter when we open it.

Conditions: $1,400 GMKtec EVO-X2, Qwen3.8-27B Q4_K_XL, llama.cpp ROCm, 262,144-token window, K+V q4_0, temperature 0. Arc close. A table with linked logs: github.com/KyaniteLabs/qwen38-27b-strix-halo.

Work with Kyanite

Want this working in your environment?

If this post describes a Kyanite tool or result you need, implementation help can cover setup, advising, docs, examples, checks, and a usable handoff.

Fit boundary

Kyanite offers help grounded in its tools, products, and build practice. Broader consulting routes through PuenteWorks.

Keep following the system.

The Delegation Card: we asked a $1,400 mini-PC to take our jobs

Not is-it-smart but can-you-hand-it-work-and-walk-away. 495 trials, certified floors.

Lab Notes: the measured-knees method for reasoning effort

A methods note on reasoning-effort calibration. Thinking rescued 15/40 hards vs 4/40 off. On easy tasks it bought nothing. Publish the knee.

Lab Notes: 67% LiveCodeBench-30 on a $1,400 rig

20/30 = 67% LiveCodeBench-30 on a $1,400 mini-PC. Wilson 95% CI 49-81%. Easy 10/10, medium 8/10, hard 2/10. n=30 public subset. Not the card.

Lab Notes: we reverted a llama.cpp regression

We found a llama.cpp regression and reverted it. n=6 battery on a $1,400 rig: 0/6 slashes before, 5/6 after. Same Q4_K_XL. Not a quant story.

Lab Notes: 93% HumanEval on a $1,400 rig

28/30 = 93% HumanEval on a $1,400 mini-PC. Qwen3.8-27B Q4_K_XL. Temp 0, thinking off. Failures: 50 and 145. Raw log linked.

Lab Notes: the model that can't forget but can't remember

The number first: this model is 75% not a transformer. 48 of 64 layers keep a running state. On a $1,400 rig, load 198k once (1818s), then query in 9-27s.

Lab Notes: the basin was a bug

We published a basin. The serving binary was the hole. After the c7d8722 revert: 6/6 HIT at 198k. n=1 map of the fixed build.

Lab Notes: the KV verdict

The q8-to-q4 KV question from night 1 got its paired answer: same accuracy, zero tripwires, half the cache. Plus the label we had to correct in public when the server's counter beat our estimate.

Lab Notes: verdict night

A $1,400 mini-PC serving a 27B at 262k context asks one question: does capping thinking cost accuracy? The paired answer, the invalid first attempt it survived, and the doctrine that followed.

One mini-PC, one night, and the numbers that argued with themselves: tuning Qwen3.8-27B on Strix Halo

A fully measured night-and-evening of tuning a 27B dense model on a Strix Halo mini-PC: the honest bands, the reversal, the crash doctrine, and the EC detective story.

GPT-5.6 Sol vs. Terra vs. Luna: an evidence-based routing policy for coding agents

The practical GPT-5.6 split is Sol for discovery, Terra for bounded execution, and Luna for repeatable processing - with a different verification contract for each.

Agents need verifiable tools, not better prompt theater

The useful agent pattern is not a prettier prompt. It is a tool surface the agent can call, inspect, verify, and revise.

Repo history is a product signal

A repo is not just storage. It is evidence of decisions, repairs, release behavior, naming drift, test gaps, and what the builder actually knows how to finish.

Implementation help is part of the product surface

A useful open-source tool still needs a path from public repo to working environment. That path is product work, not an afterthought.

Why Kinocut matters

Kinocut gives AI agents callable handles on timelines, effects, Hyperframes, and finished media at kinocut.dev.

Infinite monkeys, LLMs, and the room around the machine

The argument behind the video: output quality is not just probability. It is architecture, filters, and human taste.

What a working AI tool needs before people can use it

A practical checklist for turning a working tool, workflow, or rough app into something other people can understand, install, and use.

MCP server implementation checklist

The checklist Kyanite uses to decide whether an MCP server is a toy, a usable tool, or something worth implementing.

Repo archaeology turns history into proof

Why commit history is one of the strongest proof sources for learning diagnostics, implementation help, and engineering trust.

AI discovery needs more than a sitemap

What Kyanite adds so search engines and AI assistants can understand the tools, products, proof, and support path.