Same rig, fresh builds, verified tiers: Basalt reaches 161-174 real tok/s vs Strata's 121.2 (207.5 vs 192.7 bench, 348 structured fixtures) β because one PR makes the 4060 Ti compute, plus a PCIe Γ2 discovery and fixture-based tuning.

There are two ways to compare local inference engines: read benchmarks, or write them. This comparison comes from an RTX 5080 + RTX 4060 Ti (2x16GB) + 32GB DDR5 rig, with one declared peculiarity: its author has open pull requests on both sides β three on Strata (#4522, #4534, #4549), one on Basalt (#343). Every setup difference is declared.
Basalt's "peer" kernels had never been compiled for sm_89 β the Ada architecture of the 4060 Ti. In practice the card was just a VRAM tier read over PCIe: storage, not compute. The MoE work rested entirely on the 5080.
The fork allows sm_89/sm_120 peers, builds the peer/MMQ kernels and the full prompt path for Ada, with clusters/TMA compiled out below sm_90. Result: the 4060 Ti now natively computes MoE expert windows β Q8_1/Q2_0 in dp4a, standard CUDA. A "storage" card becomes a 14.5 GiB compute tier. This single change explains the flip: 50.5 β 164 tok/s in the first session, before any tuning.
Long-conversation crashes had a surprising cause: the engine reported "other programs took 4.8 GiB" β but no program was running. It was the engine itself: KV beyond cell 30,000, pinned in RAM, ate the watchdog's margin on every long conversation β and the watchdog does not count its own allocations. The differential proof: switching kv-resident to 42000 (KV in VRAM, GPU reserves at 256) without closing a single program took cap-6000 requests from "Russian roulette" to 4/4. The full diagnosis was reported upstream (issue #353).
The basalt-probe + basalt-bench protocol (conv/struct/prose fixtures, ABAB) revealed then validated three levers:
And a useful counter-result: KV NVFP4 (#314, 0.55 GiB) loses against int8 at 65K context (297 vs 348 structured) β it remains the weapon for 131K+ contexts.
Where the reference Strata config deploys a larger 2-bit quant (~44 GiB, partial offload), Basalt final fits in 31 GiB, entirely resident. Less model RAM, less PCIe, more local compute.
On our 34-exercise code suite (polyglot, temp 0, pytest as judge), same base model: Basalt IQ1_S 15/34 β 75.7% of tests passed, the family's best score on this suite β vs 8/34 for Q2_0 on Strata. Declared: the auto thinking budget is larger on Basalt (~34,500 vs 4096); the equal-budget duel is yet to be run.
Strata has been running in production for weeks. Basalt final has a dedicated stress test: 81 minutes, 67/68 requests at a 46K cap. These two facts do not compare β and the article says so.
Basalt final (peer-ada fork, PR #343): basalt_serve.json β model Qwen3.8-FN-UD-IQ1_S on GPU 0,1, kv int8, max-context 65536, vision dynamic; engine: resident-experts true, pool-workers 7, spec 8, expert-cache auto, prefill auto, resident-budget-gib 8.15, peer-adapt-swaps 0, vram-reserve-mib 256, peer-reserve-mib 128. Verify at boot: "experts live in ... file (SSD) 0.0 GiB" and "RAM X GiB free, guard 2.00 GiB".
Strata hybrid 0.1.59 (3 PRs): STRATA_RESIDENT_HEADROOM_GIB=4, python serve/server.py --engine strata --config engine_swift_prod.json --port 18503. Bench code: python polyglot_runner.py --name <run> --url http://127.0.0.1:8644/v1 --model "Qwen3.8-Flash-Next UD-IQ1_S" (pytest as judge).