Skip to content

--gpus with mixed architectures fails: engine not rebuilt when adding a GPU with a different compute capability #128

Closed

Description

@pdsmike

Bug

When starting Strata with --gpus that includes a GPU whose compute capability differs from what the engine was originally built for, the engine is not recompiled. It crashes with a CUDA error on the first kernel launch on the unsupported card.

Reproduction

  1. Install and run Strata with 2 GPUs of the same generation (e.g. 2× RTX 5060 Ti, both sm_120). The engine is compiled with CMAKE_CUDA_ARCHITECTURES=120.
  2. Add a third GPU of a different generation (e.g. RTX 3060, sm_86).
  3. Run: ./setup.sh --gpus 0,1,2 --calibrate
    Result: The engine starts, splits layers across all 3 GPUs, then crashes on the first kernel launch on the sm_86 card:
    strata generate: layer split across 3 GPUs: CUDA0, then CUDA1,2 (split auto)
    ...
    strata generate: layer split: CUDA1 holds its weights, session; 11.42 GiB free
    kv_stream: reset: no kernel image is available for execution on the device
    The same happens without --calibrate: any start() path that resolves to a multi-GPU list whose archs are not a subset of the engine's built archs.

Root cause

setup.py → start() (line ~1192) and the --calibrate shortcut (line ~1338) never verify that the installed engine binary was compiled for all GPU architectures in the --gpus list. The engine_runs_on() helper exists (line 365) but is only called from offer_together() (line 420), not from the --gpus/start() path.
The build-time logic in build_engine() (line 865) correctly unions archs from gpu["archs"], but that function is only reached during the full --setup flow (step 1 → step 3), not when starting an already-installed model with a different GPU set.

Expected behaviour

When start() (or the calibrate path) resolves to a GPU list whose architectures are not all covered by the engine's BUILD.json "archs" field, it should recompile the engine for the full arch set (reusing build_engine()) before launching, or at minimum warn and refuse to start.

Suggested fix

In start(), after the GPU list is resolved (after line ~1217), add:

use = gpu if gpu is not None else cfg.get("gpu")
if isinstance(use, list) and len(use) > 1:
    byid = {g["index"]: g for g in found}
    needed_archs = sorted({int(byid[i]["arch"]) for i in use if i in byid})
    ea = engine_archs()
    if ea is not None and ea[0]:
        missing = [a for a in needed_archs
                   if a not in ea[0] and not (ea[1] and a > max(ea[0]))]
        if missing:
            say(f"  The engine has no code for {', '.join('sm_' + str(a) for a in missing)}: recompiling ...")
            build_engine({"archs": needed_archs}, "none", yes, get_llama_cpp())

This reuses the existing build_engine() which handles the BUILD.json stamp, source-hash check, and all bookkeeping. The same guard should be added to the --calibrate shortcut at line 1348 (before start() is called) or, better, placed inside start() itself so both paths are covered.

Environment

  • OS: Linux
  • GPUs: 2× RTX 5060 Ti (sm120) + 1× RTX 3060 (sm86)
  • Strata engine: 0.1.22
  • Command: ./setup.sh --gpus 0,1,2 --calibrate

model Log

strata generate: layer split across 2 GPUs: CUDA0, then CUDA1 (split auto)
strata generate: PCIe probe: 26.5 GB/s host->device -> pcie_frac 0.55 (default 0.55)
strata generate: this CPU has no AVX-512: the expert kernels run on AVX-2 (multi-token for the i-quant gate/up rows)
strata generate: native pack: /home/mike/Programs/Strata-data/packs/swift-iq3_xxs experts (largest blob 2.33 MB), token embedding type 21 in mapped host memory (260 MiB)
strata generate: 1466 MiB of weights loaded from /home/mike/Programs/Strata-data/packs/swift-iq3_xxs (302 canonical tensors skipped: served natively)
strata generate: 300 native projection matrices, 1781.11 MiB of weights
strata generate: KV streaming: 32768 of 131072 cells per QSA layer in VRAM, the K/V in 0.84 GiB of pinned RAM
strata generate: PLE on, table 320001536 rows of /home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf
strata generate: layer split: CUDA1 PCIe probe 6.7 GB/s -> pcie_frac 0.14
strata generate: layer split: CUDA1 holds its weights, session and head; 11.01 GiB free
strata mtp: draft layer loaded, 820 MiB of VRAM (experts 675, dense 111)
strata generate: expert arena: mlock failed (raise ulimit -l); cudaHostRegister limited to 8 GiB for CUDA1; 10 slices pinned (7 GiB); MAP_HUGETLB unavailable (no hugetlb pool configured?); using 4 KB pages
strata generate: loaded 39.97 GiB at 4.53 GiB/s
strata generate: profile /home/mike/Programs/Strata/data/expert-profile.bin: 24576 ranked pairs, built for 24576 slots
strata generate: layer split auto: CUDA0 36 SMs at 2.60 GHz -> 0.77 ms per layer, 8.72 GiB for experts
strata generate: layer split auto: CUDA1 36 SMs at 2.60 GHz -> 0.77 ms per layer, 7.03 GiB for experts
strata generate: layer split auto: K=26 - predicted 42.4 ms per decode window; the caches hold 9808 of 24576 profiled pairs (~97.3% of the routed mass)
strata generate: expert cache auto: 10.88 GiB free, 700 MiB reserved -> 4017 slots
strata generate: expert cache 5990 slots, 8.71 GiB of VRAM; policy is
strata generate: the GPU computes the experts in the cache; it rounds differently from the CPU,
                 so a reply can differ slightly from a run without the cache (same quality:
                 bench/results/2026-09-27-cache-parity).
                 PROFILE, ranked by routing frequency, no eviction.
strata generate: pre-filled 5990 of 5990 slots from the profile; slot 0 verified
strata generate: layer split: CUDA1 runs layers 26-47, expert cache 3817 slots (7.02 GiB), 3817 of its 11264 profiled pairs; slot 0 verified
strata generate: layer split: CUDA0 runs layers 0-25
strata generate: R4 hit path ON - resident experts are computed on the GPU
strata generate: 13 expert-pool workers + the host thread
strata generate: session is up (engine 0.1.22)
strata generate: token graph hit path: 9807 resident experts, decided on the device
strata serve: the prompt path allocates its own buffers (too few cache slots to borrow)
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata serve: layer split: layers 0-25 (CUDA0), 26-47 (CUDA1), one hand-off per window
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata mtp: draft head over 40525 tokens (68.0 MiB)
strata serve: 341 MiB of VRAM free with everything loaded
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 493 ms (69.0 tok/s), 128 generated in 1926 ms (66.5 tok/s), drafts accepted 90 of 101, 1 checkpoints
strata serve: decode expert cache hit rate: 66.4% (43142 hits / 64993 lookups)
strata serve: KV streaming: 98.85% of 21318 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 3 of 4 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 401 ms (67.3 tok/s), 128 generated in 2400 ms (53.3 tok/s), drafts accepted 69 of 126, 1 checkpoints
strata serve: decode expert cache hit rate: 83.5% (73202 hits / 87662 lookups)
strata serve: KV streaming: 99.09% of 25662 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 362 ms (60.8 tok/s), 128 generated in 2283 ms (56.1 tok/s), drafts accepted 75 of 124, 1 checkpoints
strata serve: decode expert cache hit rate: 77.7% (65286 hits / 83976 lookups)
strata serve: KV streaming: 99.04% of 23874 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 414 ms (82.1 tok/s), 128 generated in 1773 ms (72.2 tok/s), drafts accepted 89 of 105, 1 checkpoints
strata serve: decode expert cache hit rate: 77.6% (52778 hits / 67986 lookups)
strata serve: KV streaming: 98.90% of 22278 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 356 ms (75.9 tok/s), 128 generated in 2355 ms (54.4 tok/s), drafts accepted 64 of 138, 1 checkpoints
strata serve: decode expert cache hit rate: 92.6% (89500 hits / 96704 lookups)
strata serve: KV streaming: 99.16% of 28572 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 311 ms (70.8 tok/s), 128 generated in 2067 ms (61.9 tok/s), drafts accepted 75 of 118, 1 checkpoints
strata serve: decode expert cache hit rate: 88.3% (71894 hits / 81451 lookups)
strata serve: KV streaming: 99.02% of 23316 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 407 ms (83.5 tok/s), 128 generated in 1865 ms (68.6 tok/s), drafts accepted 87 of 115, 1 checkpoints
strata serve: decode expert cache hit rate: 74.9% (56468 hits / 75360 lookups)
strata serve: KV streaming: 98.97% of 23988 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 5 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 351 ms (77.0 tok/s), 128 generated in 2330 ms (54.9 tok/s), drafts accepted 64 of 139, 1 checkpoints
strata serve: decode expert cache hit rate: 92.0% (90089 hits / 97920 lookups)
strata serve: KV streaming: 99.16% of 28680 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 312 ms (70.4 tok/s), 128 generated in 2059 ms (62.2 tok/s), drafts accepted 69 of 113, 1 checkpoints
strata serve: decode expert cache hit rate: 87.9% (72545 hits / 82560 lookups)
strata serve: KV streaming: 99.01% of 22926 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 418 ms (81.3 tok/s), 128 generated in 1824 ms (70.2 tok/s), drafts accepted 87 of 111, 1 checkpoints
strata serve: decode expert cache hit rate: 74.3% (54213 hits / 72957 lookups)
strata serve: KV streaming: 98.95% of 23424 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 5 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 356 ms (75.9 tok/s), 128 generated in 2251 ms (56.9 tok/s), drafts accepted 66 of 130, 1 checkpoints
strata serve: decode expert cache hit rate: 92.0% (85160 hits / 92574 lookups)
strata serve: KV streaming: 99.14% of 28020 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 318 ms (69.2 tok/s), 128 generated in 2004 ms (63.9 tok/s), drafts accepted 72 of 113, 1 checkpoints
strata serve: decode expert cache hit rate: 88.6% (71706 hits / 80968 lookups)
strata serve: KV streaming: 98.96% of 21870 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 423 ms (80.4 tok/s), 128 generated in 1998 ms (64.1 tok/s), drafts accepted 88 of 113, 1 checkpoints
strata serve: decode expert cache hit rate: 73.2% (53654 hits / 73258 lookups)
strata serve: KV streaming: 98.95% of 23484 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 363 ms (74.4 tok/s), 128 generated in 2381 ms (53.8 tok/s), drafts accepted 68 of 141, 1 checkpoints
strata serve: decode expert cache hit rate: 91.5% (88752 hits / 97028 lookups)
strata serve: KV streaming: 99.19% of 29484 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 335 ms (65.8 tok/s), 128 generated in 2132 ms (60.0 tok/s), drafts accepted 73 of 123, 1 checkpoints
strata serve: decode expert cache hit rate: 89.4% (76786 hits / 85874 lookups)
strata serve: KV streaming: 99.08% of 24732 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 423 ms (80.4 tok/s), 128 generated in 1945 ms (65.8 tok/s), drafts accepted 89 of 110, 1 checkpoints
strata serve: decode expert cache hit rate: 74.4% (52134 hits / 70056 lookups)
strata serve: KV streaming: 98.93% of 22914 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 367 ms (73.6 tok/s), 128 generated in 2392 ms (53.5 tok/s), drafts accepted 61 of 135, 1 checkpoints
strata serve: decode expert cache hit rate: 92.3% (88861 hits / 96248 lookups)
strata serve: KV streaming: 99.18% of 28446 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 321 ms (68.5 tok/s), 128 generated in 2114 ms (60.5 tok/s), drafts accepted 73 of 122, 1 checkpoints
strata serve: decode expert cache hit rate: 90.3% (76769 hits / 85009 lookups)
strata serve: KV streaming: 99.06% of 24264 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 427 ms (79.6 tok/s), 128 generated in 1871 ms (68.4 tok/s), drafts accepted 90 of 107, 1 checkpoints
strata serve: decode expert cache hit rate: 75.8% (51045 hits / 67363 lookups)
strata serve: KV streaming: 98.90% of 22392 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 366 ms (73.9 tok/s), 128 generated in 2349 ms (54.5 tok/s), drafts accepted 63 of 135, 1 checkpoints
strata serve: decode expert cache hit rate: 92.9% (88171 hits / 94959 lookups)
strata serve: KV streaming: 99.17% of 28098 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 319 ms (68.9 tok/s), 128 generated in 2123 ms (60.3 tok/s), drafts accepted 73 of 118, 1 checkpoints
strata serve: decode expert cache hit rate: 91.0% (75253 hits / 82691 lookups)
strata serve: KV streaming: 99.03% of 23598 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 412 ms (82.6 tok/s), 128 generated in 1853 ms (69.1 tok/s), drafts accepted 89 of 117, 1 checkpoints
strata serve: decode expert cache hit rate: 73.1% (54769 hits / 74878 lookups)
strata serve: KV streaming: 98.96% of 23694 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 359 ms (75.1 tok/s), 128 generated in 2414 ms (53.0 tok/s), drafts accepted 67 of 155, 1 checkpoints
strata serve: decode expert cache hit rate: 91.9% (95194 hits / 103619 lookups)
strata serve: KV streaming: 99.25% of 31278 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 310 ms (70.9 tok/s), 128 generated in 2150 ms (59.5 tok/s), drafts accepted 75 of 138, 1 checkpoints
strata serve: decode expert cache hit rate: 89.4% (82704 hits / 92495 lookups)
strata serve: KV streaming: 99.13% of 26208 block reads hit VRAM, 0.9 MiB read from RAM
strata verify: captured the 5-token window (upload no error, sync no error)
strata verify: captured the 5-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 418 ms (81.3 tok/s), 128 generated in 1775 ms (72.1 tok/s), drafts accepted 90 of 106, 1 checkpoints
strata serve: decode expert cache hit rate: 72.0% (49725 hits / 69107 lookups)
strata serve: KV streaming: 98.89% of 22260 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 4 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 354 ms (76.2 tok/s), 128 generated in 2201 ms (58.2 tok/s), drafts accepted 70 of 128, 1 checkpoints
strata serve: decode expert cache hit rate: 91.0% (82007 hits / 90153 lookups)
strata serve: KV streaming: 99.12% of 27420 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 318 ms (69.3 tok/s), 128 generated in 2025 ms (63.2 tok/s), drafts accepted 74 of 120, 1 checkpoints
strata serve: decode expert cache hit rate: 89.7% (75668 hits / 84359 lookups)
strata serve: KV streaming: 99.04% of 23856 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 423 ms (80.3 tok/s), 128 generated in 1731 ms (74.0 tok/s), drafts accepted 86 of 93, 1 checkpoints
strata serve: decode expert cache hit rate: 74.1% (48079 hits / 64870 lookups)
strata serve: KV streaming: 98.84% of 21186 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 359 ms (75.2 tok/s), 128 generated in 2116 ms (60.5 tok/s), drafts accepted 61 of 91, 1 checkpoints
strata serve: decode expert cache hit rate: 91.3% (70500 hits / 77226 lookups)
strata serve: KV streaming: 98.94% of 22560 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 307 ms (71.6 tok/s), 128 generated in 1925 ms (66.5 tok/s), drafts accepted 70 of 91, 1 checkpoints
strata serve: decode expert cache hit rate: 89.4% (64257 hits / 71899 lookups)
strata serve: KV streaming: 98.87% of 20256 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 426 ms (79.9 tok/s), 128 generated in 1792 ms (71.4 tok/s), drafts accepted 90 of 107, 1 checkpoints
strata serve: decode expert cache hit rate: 76.4% (52264 hits / 68372 lookups)
strata serve: KV streaming: 98.88% of 22032 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 357 ms (75.6 tok/s), 128 generated in 2321 ms (55.1 tok/s), drafts accepted 63 of 132, 1 checkpoints
strata serve: decode expert cache hit rate: 92.1% (86405 hits / 93783 lookups)
strata serve: KV streaming: 99.14% of 27348 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 312 ms (70.4 tok/s), 128 generated in 2144 ms (59.7 tok/s), drafts accepted 73 of 126, 1 checkpoints
strata serve: decode expert cache hit rate: 90.4% (78511 hits / 86893 lookups)
strata serve: KV streaming: 99.08% of 24888 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 410 ms (82.8 tok/s), 128 generated in 1766 ms (72.5 tok/s), drafts accepted 86 of 98, 1 checkpoints
strata serve: decode expert cache hit rate: 74.1% (49821 hits / 67254 lookups)
strata serve: KV streaming: 98.88% of 21954 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 355 ms (76.1 tok/s), 128 generated in 2162 ms (59.2 tok/s), drafts accepted 58 of 96, 1 checkpoints
strata serve: decode expert cache hit rate: 91.4% (73226 hits / 80105 lookups)
strata serve: KV streaming: 99.01% of 23562 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 305 ms (72.1 tok/s), 128 generated in 2029 ms (63.1 tok/s), drafts accepted 70 of 106, 1 checkpoints
strata serve: decode expert cache hit rate: 90.2% (71819 hits / 79585 lookups)
strata serve: KV streaming: 99.00% of 22800 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 416 ms (81.8 tok/s), 128 generated in 1837 ms (69.7 tok/s), drafts accepted 89 of 106, 1 checkpoints
strata serve: decode expert cache hit rate: 75.6% (51672 hits / 68332 lookups)
strata serve: KV streaming: 98.90% of 22380 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 366 ms (73.8 tok/s), 128 generated in 2254 ms (56.8 tok/s), drafts accepted 70 of 124, 1 checkpoints
strata serve: decode expert cache hit rate: 90.8% (79089 hits / 87070 lookups)
strata serve: KV streaming: 99.10% of 25866 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 428 ms (51.4 tok/s), 128 generated in 2070 ms (61.8 tok/s), drafts accepted 73 of 120, 1 checkpoints
strata serve: decode expert cache hit rate: 90.4% (75569 hits / 83594 lookups)
strata serve: KV streaming: 99.04% of 23808 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 415 ms (82.0 tok/s), 128 generated in 1755 ms (72.9 tok/s), drafts accepted 87 of 99, 1 checkpoints
strata serve: decode expert cache hit rate: 75.2% (50603 hits / 67286 lookups)
strata serve: KV streaming: 98.88% of 21918 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 5 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 370 ms (73.1 tok/s), 128 generated in 2073 ms (61.8 tok/s), drafts accepted 62 of 96, 1 checkpoints
strata serve: decode expert cache hit rate: 91.2% (70888 hits / 77711 lookups)
strata serve: KV streaming: 98.93% of 22440 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 305 ms (72.2 tok/s), 128 generated in 1971 ms (64.9 tok/s), drafts accepted 69 of 97, 1 checkpoints
strata serve: decode expert cache hit rate: 90.0% (67306 hits / 74786 lookups)
strata serve: KV streaming: 98.91% of 20928 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 420 ms (81.0 tok/s), 128 generated in 1833 ms (69.8 tok/s), drafts accepted 89 of 108, 1 checkpoints
strata serve: decode expert cache hit rate: 76.3% (52834 hits / 69265 lookups)
strata serve: KV streaming: 98.91% of 22596 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 358 ms (75.4 tok/s), 128 generated in 2381 ms (53.8 tok/s), drafts accepted 63 of 138, 1 checkpoints
strata serve: decode expert cache hit rate: 92.3% (89689 hits / 97169 lookups)
strata serve: KV streaming: 99.18% of 28644 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 314 ms (70.1 tok/s), 128 generated in 2112 ms (60.6 tok/s), drafts accepted 72 of 118, 1 checkpoints
strata serve: decode expert cache hit rate: 90.1% (75246 hits / 83542 lookups)
strata serve: KV streaming: 99.04% of 23706 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 410 ms (82.9 tok/s), 128 generated in 1720 ms (74.4 tok/s), drafts accepted 86 of 93, 1 checkpoints
strata serve: decode expert cache hit rate: 74.2% (48120 hits / 64866 lookups)
strata serve: KV streaming: 98.84% of 21222 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 3 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 355 ms (76.1 tok/s), 128 generated in 2063 ms (62.1 tok/s), drafts accepted 66 of 102, 1 checkpoints
strata serve: decode expert cache hit rate: 89.7% (70552 hits / 78635 lookups)
strata serve: KV streaming: 98.99% of 23058 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 313 ms (70.3 tok/s), 128 generated in 2014 ms (63.5 tok/s), drafts accepted 72 of 102, 1 checkpoints
strata serve: decode expert cache hit rate: 89.4% (68590 hits / 76698 lookups)
strata serve: KV streaming: 98.97% of 22104 block reads hit VRAM, 0.9 MiB read from RAM
strata generate: layer split across 2 GPUs: CUDA0, then CUDA1 (split auto)
strata generate: this CPU has no AVX-512: the expert kernels run on AVX-2 (multi-token for the i-quant gate/up rows)
strata generate: native pack: /home/mike/Programs/Strata-data/packs/swift-iq3_xxs experts (largest blob 2.33 MB), token embedding type 21 in mapped host memory (260 MiB)
strata generate: 1466 MiB of weights loaded from /home/mike/Programs/Strata-data/packs/swift-iq3_xxs (302 canonical tensors skipped: served natively)
strata generate: 300 native projection matrices, 1781.11 MiB of weights
strata generate: KV streaming: 32768 of 131072 cells per QSA layer in VRAM, the K/V in 0.84 GiB of pinned RAM
strata generate: PLE on, table 320001536 rows of /home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf
strata generate: layer split: CUDA1 holds its weights, session and head; 11.01 GiB free
strata mtp: draft layer loaded, 820 MiB of VRAM (experts 675, dense 111)
strata generate: expert arena: mlock failed (raise ulimit -l); cudaHostRegister limited to 8 GiB for CUDA1; 10 slices pinned (7 GiB); MAP_HUGETLB unavailable (no hugetlb pool configured?); using 4 KB pages
strata generate: loaded 39.97 GiB at 4.43 GiB/s
strata generate: profile /home/mike/Programs/Strata/data/expert-profile.bin: 24576 ranked pairs, built for 24576 slots
strata generate: layer split auto: CUDA0 36 SMs at 2.60 GHz -> 0.77 ms per layer, 8.72 GiB for experts
strata generate: layer split auto: CUDA1 36 SMs at 2.60 GHz -> 0.77 ms per layer, 7.03 GiB for experts
strata generate: layer split auto: K=26 - predicted 42.4 ms per decode window; the caches hold 9809 of 24576 profiled pairs (~97.3% of the routed mass)
strata generate: expert cache auto: 10.89 GiB free, 700 MiB reserved -> 4017 slots
strata generate: expert cache 5990 slots, 8.71 GiB of VRAM; policy is
strata generate: the GPU computes the experts in the cache; it rounds differently from the CPU,
                 so a reply can differ slightly from a run without the cache (same quality:
                 bench/results/2026-09-27-cache-parity).
                 PROFILE, ranked by routing frequency, no eviction.
strata generate: pre-filled 5990 of 5990 slots from the profile; slot 0 verified
strata generate: layer split: CUDA1 runs layers 26-47, expert cache 3817 slots (7.02 GiB), 3817 of its 11264 profiled pairs; slot 0 verified
strata generate: layer split: CUDA0 runs layers 0-25
strata generate: R4 hit path ON - resident experts are computed on the GPU
strata generate: 13 expert-pool workers + the host thread
strata generate: session is up (engine 0.1.22)
strata generate: token graph hit path: 9807 resident experts, decided on the device
strata serve: the prompt path allocates its own buffers (too few cache slots to borrow)
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata serve: layer split: layers 0-25 (CUDA0), 26-47 (CUDA1), one hand-off per window
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata mtp: draft head over 40525 tokens (68.0 MiB)
strata serve: 353 MiB of VRAM free with everything loaded
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 498 ms (68.2 tok/s), 128 generated in 1859 ms (68.9 tok/s), drafts accepted 86 of 94, 1 checkpoints
strata serve: decode expert cache hit rate: 66.2% (43190 hits / 65193 lookups)
strata serve: KV streaming: 98.85% of 21378 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 5 of 7 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 416 ms (64.9 tok/s), 128 generated in 2239 ms (57.2 tok/s), drafts accepted 58 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 83.6% (66065 hits / 78996 lookups)
strata serve: KV streaming: 99.00% of 23394 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 330 ms (66.7 tok/s), 128 generated in 2137 ms (59.9 tok/s), drafts accepted 71 of 101, 1 checkpoints
strata serve: decode expert cache hit rate: 77.0% (58874 hits / 76453 lookups)
strata serve: KV streaming: 98.96% of 21996 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 460 ms (73.9 tok/s), 128 generated in 1746 ms (73.3 tok/s), drafts accepted 86 of 94, 1 checkpoints
strata serve: decode expert cache hit rate: 76.6% (50078 hits / 65384 lookups)
strata serve: KV streaming: 98.85% of 21324 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 1 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 361 ms (74.9 tok/s), 128 generated in 2138 ms (59.9 tok/s), drafts accepted 61 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 91.5% (71571 hits / 78181 lookups)
strata serve: KV streaming: 98.95% of 22932 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 324 ms (67.8 tok/s), 128 generated in 2014 ms (63.6 tok/s), drafts accepted 71 of 101, 1 checkpoints
strata serve: decode expert cache hit rate: 88.0% (67475 hits / 76675 lookups)
strata serve: KV streaming: 98.96% of 21882 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 426 ms (79.9 tok/s), 128 generated in 1749 ms (73.2 tok/s), drafts accepted 87 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 76.1% (49746 hits / 65370 lookups)
strata serve: KV streaming: 98.85% of 21354 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 27 tokens = 0 reused + 27 read in 371 ms (72.8 tok/s), 128 generated in 2139 ms (59.8 tok/s), drafts accepted 57 of 89, 1 checkpoints
strata serve: decode expert cache hit rate: 91.2% (70461 hits / 77222 lookups)
strata serve: KV streaming: 98.98% of 22896 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 308 ms (71.5 tok/s), 128 generated in 1947 ms (65.7 tok/s), drafts accepted 72 of 90, 1 checkpoints
strata serve: decode expert cache hit rate: 89.2% (62871 hits / 70460 lookups)
strata serve: KV streaming: 98.84% of 19578 block reads hit VRAM, 0.9 MiB read from RAM
strata generate: layer split across 2 GPUs: CUDA0, then CUDA1 (split auto)
strata generate: this CPU has no AVX-512: the expert kernels run on AVX-2 (multi-token for the i-quant gate/up rows)
strata generate: native pack: /home/mike/Programs/Strata-data/packs/swift-iq3_xxs experts (largest blob 2.33 MB), token embedding type 21 in mapped host memory (260 MiB)
strata generate: 1466 MiB of weights loaded from /home/mike/Programs/Strata-data/packs/swift-iq3_xxs (302 canonical tensors skipped: served natively)
strata generate: 300 native projection matrices, 1781.11 MiB of weights
strata generate: KV streaming: 32768 of 131072 cells per QSA layer in VRAM, the K/V in 0.84 GiB of pinned RAM
strata generate: PLE on, table 320001536 rows of /home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf
strata generate: layer split: CUDA1 holds its weights, session and head; 11.01 GiB free
strata mtp: draft layer loaded, 820 MiB of VRAM (experts 675, dense 111)
strata generate: expert arena: mlock failed (raise ulimit -l); cudaHostRegister limited to 8 GiB for CUDA1; 10 slices pinned (7 GiB); MAP_HUGETLB unavailable (no hugetlb pool configured?); using 4 KB pages
strata generate: loaded 39.97 GiB at 4.52 GiB/s
strata generate: profile /home/mike/Programs/Strata/data/expert-profile.bin: 24576 ranked pairs, built for 24576 slots
strata generate: layer split auto: CUDA0 36 SMs at 2.60 GHz -> 0.77 ms per layer, 8.72 GiB for experts
strata generate: layer split auto: CUDA1 36 SMs at 2.60 GHz -> 0.77 ms per layer, 7.03 GiB for experts
strata generate: layer split auto: K=26 - predicted 42.4 ms per decode window; the caches hold 9809 of 24576 profiled pairs (~97.3% of the routed mass)
strata generate: expert cache auto: 10.89 GiB free, 700 MiB reserved -> 4017 slots
strata generate: expert cache 5990 slots, 8.71 GiB of VRAM; policy is
strata generate: the GPU computes the experts in the cache; it rounds differently from the CPU,
                 so a reply can differ slightly from a run without the cache (same quality:
                 bench/results/2026-09-27-cache-parity).
                 PROFILE, ranked by routing frequency, no eviction.
strata generate: pre-filled 5990 of 5990 slots from the profile; slot 0 verified
strata generate: layer split: CUDA1 runs layers 26-47, expert cache 3817 slots (7.02 GiB), 3817 of its 11264 profiled pairs; slot 0 verified
strata generate: layer split: CUDA0 runs layers 0-25
strata generate: R4 hit path ON - resident experts are computed on the GPU
strata generate: 9 expert-pool workers + the host thread
strata generate: session is up (engine 0.1.22)
strata generate: token graph hit path: 9807 resident experts, decided on the device
strata serve: the prompt path allocates its own buffers (too few cache slots to borrow)
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata serve: layer split: layers 0-25 (CUDA0), 26-47 (CUDA1), one hand-off per window
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata mtp: draft head over 40525 tokens (68.0 MiB)
strata serve: 352 MiB of VRAM free with everything loaded
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 490 ms (69.4 tok/s), 128 generated in 2006 ms (63.8 tok/s), drafts accepted 85 of 96, 1 checkpoints
strata serve: decode expert cache hit rate: 66.1% (44018 hits / 66639 lookups)
strata serve: KV streaming: 98.87% of 21846 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 4 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 418 ms (64.6 tok/s), 128 generated in 2153 ms (59.5 tok/s), drafts accepted 68 of 94, 1 checkpoints
strata serve: decode expert cache hit rate: 79.5% (59671 hits / 75099 lookups)
strata serve: KV streaming: 98.92% of 22296 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 349 ms (63.0 tok/s), 128 generated in 2175 ms (58.8 tok/s), drafts accepted 70 of 101, 1 checkpoints
strata serve: decode expert cache hit rate: 77.6% (59654 hits / 76901 lookups)
strata serve: KV streaming: 98.97% of 22230 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 418 ms (81.4 tok/s), 128 generated in 1774 ms (72.1 tok/s), drafts accepted 86 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 77.5% (51045 hits / 65875 lookups)
strata serve: KV streaming: 98.85% of 21480 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 6 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 361 ms (74.8 tok/s), 128 generated in 1998 ms (64.1 tok/s), drafts accepted 65 of 90, 1 checkpoints
strata serve: decode expert cache hit rate: 90.4% (66359 hits / 73385 lookups)
strata serve: KV streaming: 98.92% of 21612 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 316 ms (69.7 tok/s), 128 generated in 2039 ms (62.8 tok/s), drafts accepted 70 of 103, 1 checkpoints
strata serve: decode expert cache hit rate: 87.5% (68344 hits / 78098 lookups)
strata serve: KV streaming: 98.98% of 22374 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 419 ms (81.0 tok/s), 128 generated in 1790 ms (71.5 tok/s), drafts accepted 86 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 76.2% (50162 hits / 65853 lookups)
strata serve: KV streaming: 98.85% of 21408 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 2 of 2 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 359 ms (75.2 tok/s), 128 generated in 2186 ms (58.5 tok/s), drafts accepted 59 of 95, 1 checkpoints
strata serve: decode expert cache hit rate: 91.0% (72036 hits / 79133 lookups)
strata serve: KV streaming: 99.00% of 23490 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 311 ms (70.7 tok/s), 128 generated in 1917 ms (66.8 tok/s), drafts accepted 72 of 94, 1 checkpoints
strata serve: decode expert cache hit rate: 88.8% (64251 hits / 72380 lookups)
strata serve: KV streaming: 98.88% of 20340 block reads hit VRAM, 0.9 MiB read from RAM
strata generate: layer split across 2 GPUs: CUDA0, then CUDA1 (split auto)
strata generate: this CPU has no AVX-512: the expert kernels run on AVX-2 (multi-token for the i-quant gate/up rows)
strata generate: native pack: /home/mike/Programs/Strata-data/packs/swift-iq3_xxs experts (largest blob 2.33 MB), token embedding type 21 in mapped host memory (260 MiB)
strata generate: 1466 MiB of weights loaded from /home/mike/Programs/Strata-data/packs/swift-iq3_xxs (302 canonical tensors skipped: served natively)
strata generate: 300 native projection matrices, 1781.11 MiB of weights
strata generate: KV streaming: 32768 of 131072 cells per QSA layer in VRAM, the K/V in 0.84 GiB of pinned RAM
strata generate: PLE on, table 320001536 rows of /home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf
strata generate: layer split: CUDA1 holds its weights, session and head; 11.01 GiB free
strata mtp: draft layer loaded, 820 MiB of VRAM (experts 675, dense 111)
strata generate: expert arena: mlock failed (raise ulimit -l); cudaHostRegister limited to 8 GiB for CUDA1; 10 slices pinned (7 GiB); MAP_HUGETLB unavailable (no hugetlb pool configured?); using 4 KB pages
strata generate: loaded 39.97 GiB at 4.30 GiB/s
strata generate: profile /home/mike/Programs/Strata/data/expert-profile.bin: 24576 ranked pairs, built for 24576 slots
strata generate: layer split auto: CUDA0 36 SMs at 2.60 GHz -> 0.77 ms per layer, 8.73 GiB for experts
strata generate: layer split auto: CUDA1 36 SMs at 2.60 GHz -> 0.77 ms per layer, 7.03 GiB for experts
strata generate: layer split auto: K=26 - predicted 42.3 ms per decode window; the caches hold 9813 of 24576 profiled pairs (~97.3% of the routed mass)
strata generate: expert cache auto: 10.89 GiB free, 700 MiB reserved -> 4020 slots
strata generate: expert cache 5994 slots, 8.72 GiB of VRAM; policy is
strata generate: the GPU computes the experts in the cache; it rounds differently from the CPU,
                 so a reply can differ slightly from a run without the cache (same quality:
                 bench/results/2026-09-27-cache-parity).
                 PROFILE, ranked by routing frequency, no eviction.
strata generate: pre-filled 5994 of 5994 slots from the profile; slot 0 verified
strata generate: layer split: CUDA1 runs layers 26-47, expert cache 3817 slots (7.02 GiB), 3817 of its 11264 profiled pairs; slot 0 verified
strata generate: layer split: CUDA0 runs layers 0-25
strata generate: R4 hit path ON - resident experts are computed on the GPU
strata generate: 6 expert-pool workers + the host thread
strata generate: session is up (engine 0.1.22)
strata generate: token graph hit path: 9811 resident experts, decided on the device
strata serve: the prompt path allocates its own buffers (too few cache slots to borrow)
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata serve: layer split: layers 0-25 (CUDA0), 26-47 (CUDA1), one hand-off per window
strata verify: window up to 6 tokens, 69.6 MiB of device buffers
strata mtp: draft head over 40525 tokens (68.0 MiB)
strata serve: 352 MiB of VRAM free with everything loaded
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 6-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 3-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 1-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 4-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata verify: captured the 2-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 533 ms (63.8 tok/s), 128 generated in 2167 ms (59.1 tok/s), drafts accepted 87 of 90, 1 checkpoints
strata serve: decode expert cache hit rate: 65.5% (41147 hits / 62825 lookups)
strata serve: KV streaming: 98.80% of 20544 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 4 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 463 ms (58.3 tok/s), 128 generated in 2454 ms (52.1 tok/s), drafts accepted 54 of 84, 1 checkpoints
strata serve: decode expert cache hit rate: 83.7% (63345 hits / 75669 lookups)
strata serve: KV streaming: 98.95% of 22194 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 384 ms (57.2 tok/s), 128 generated in 2404 ms (53.3 tok/s), drafts accepted 70 of 104, 1 checkpoints
strata serve: decode expert cache hit rate: 76.9% (60279 hits / 78371 lookups)
strata serve: KV streaming: 98.99% of 22584 block reads hit VRAM, 0.9 MiB read from RAM
strata verify: captured the 5-token window (upload no error, sync no error)
strata verify: captured the 5-token window (upload no error, sync no error)
strata serve: prompt 34 tokens = 0 reused + 34 read in 448 ms (76.0 tok/s), 128 generated in 2056 ms (62.3 tok/s), drafts accepted 88 of 99, 1 checkpoints
strata serve: decode expert cache hit rate: 75.3% (51012 hits / 67740 lookups)
strata serve: KV streaming: 98.90% of 22266 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 2 windows, 4 of 6 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 383 ms (70.5 tok/s), 128 generated in 2077 ms (61.6 tok/s), drafts accepted 63 of 87, 1 checkpoints
strata serve: decode expert cache hit rate: 91.5% (67124 hits / 73390 lookups)
strata serve: KV streaming: 98.92% of 21738 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 336 ms (65.5 tok/s), 128 generated in 2078 ms (61.6 tok/s), drafts accepted 70 of 98, 1 checkpoints
strata serve: decode expert cache hit rate: 88.2% (66796 hits / 75735 lookups)
strata serve: KV streaming: 98.94% of 21576 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 34 tokens = 0 reused + 34 read in 445 ms (76.3 tok/s), 128 generated in 2017 ms (63.5 tok/s), drafts accepted 86 of 98, 1 checkpoints
strata serve: decode expert cache hit rate: 75.6% (50815 hits / 67256 lookups)
strata serve: KV streaming: 98.87% of 21816 block reads hit VRAM, 1.0 MiB read from RAM
strata serve: suffix drafts: 1 windows, 3 of 5 drafts accepted
strata serve: prompt 27 tokens = 0 reused + 27 read in 385 ms (70.2 tok/s), 128 generated in 2147 ms (59.6 tok/s), drafts accepted 63 of 94, 1 checkpoints
strata serve: decode expert cache hit rate: 89.8% (68479 hits / 76251 lookups)
strata serve: KV streaming: 98.97% of 22758 block reads hit VRAM, 0.9 MiB read from RAM
strata serve: prompt 22 tokens = 0 reused + 22 read in 331 ms (66.4 tok/s), 128 generated in 2004 ms (63.9 tok/s), drafts accepted 74 of 96, 1 checkpoints
strata serve: decode expert cache hit rate: 88.4% (64845 hits / 73331 lookups)
strata serve: KV streaming: 98.91% of 20832 block reads hit VRAM, 0.9 MiB read from RAM
strata generate: layer split across 3 GPUs: CUDA0, then CUDA1,2 (split auto)
strata generate: this CPU has no AVX-512: the expert kernels run on AVX-2 (multi-token for the i-quant gate/up rows)
strata generate: native pack: /home/mike/Programs/Strata-data/packs/swift-iq3_xxs experts (largest blob 2.33 MB), token embedding type 21 in mapped host memory (260 MiB)
strata generate: 1466 MiB of weights loaded from /home/mike/Programs/Strata-data/packs/swift-iq3_xxs (302 canonical tensors skipped: served natively)
strata generate: 300 native projection matrices, 1781.11 MiB of weights
strata generate: KV streaming: 32768 of 131072 cells per QSA layer in VRAM, the K/V in 0.84 GiB of pinned RAM
strata generate: PLE on, table 320001536 rows of /home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf
strata generate: layer split: CUDA1 holds its weights, session; 11.42 GiB free
kv_stream: reset: no kernel image is available for execution on the device

Console log

Strata - Qwen3.8-Flash-Next on a normal PC (NVIDIA GPU + system RAM + CPU)

  Tuning Strata for this PC: the output speed is measured with a few engine settings (the PCIe share, the
  draft depth, the CPU threads). It takes about 5-10 minutes; the PC is busy meanwhile.
  Loading the model for the measurements ...
[strata] starting the engine: reading the model's weights ...
[strata] loading the experts into RAM (about 40 GB) and locking part of them for the GPU.
         YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES NOW - this is normal.
         Please wait and don't close this window; the browser opens when it is ready.
[strata] experts loaded: 39.97 GiB at 4.53 GiB/s (14 s so far)
[strata] filling the GPU's expert cache (5990 experts, 8.71 GiB of VRAM) ...
[strata] almost ready ...
    PCIe share 0.00: 62.2 tok/s
    PCIe share 0.20: 63.9 tok/s
    PCIe share 0.35: 60.0 tok/s
    PCIe share 0.55: 60.5 tok/s
    PCIe share 0.75: 60.3 tok/s
    draft floor 0.30: 59.5 tok/s
    draft floor 0.50: 63.2 tok/s
    draft floor 0.70: 66.5 tok/s
  Measuring with 13 CPU workers (restarts the engine) ...
[strata] starting the engine: reading the model's weights ...
[strata] loading the experts into RAM (about 40 GB) and locking part of them for the GPU.
         YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES NOW - this is normal.
         Please wait and don't close this window; the browser opens when it is ready.
[strata] experts loaded: 39.97 GiB at 4.43 GiB/s (13 s so far)
[strata] filling the GPU's expert cache (5990 experts, 8.71 GiB of VRAM) ...
[strata] almost ready ...
    13 workers: 64.6 tok/s
  Measuring with 9 CPU workers (restarts the engine) ...
[strata] starting the engine: reading the model's weights ...
[strata] loading the experts into RAM (about 40 GB) and locking part of them for the GPU.
         YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES NOW - this is normal.
         Please wait and don't close this window; the browser opens when it is ready.
[strata] experts loaded: 39.97 GiB at 4.52 GiB/s (13 s so far)
[strata] filling the GPU's expert cache (5990 experts, 8.71 GiB of VRAM) ...
[strata] almost ready ...
    9 workers: 65.4 tok/s
  Measuring with 6 CPU workers (restarts the engine) ...
[strata] starting the engine: reading the model's weights ...
[strata] loading the experts into RAM (about 40 GB) and locking part of them for the GPU.
         YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES NOW - this is normal.
         Please wait and don't close this window; the browser opens when it is ready.
[strata] experts loaded: 39.97 GiB at 4.30 GiB/s (14 s so far)
[strata] filling the GPU's expert cache (5994 experts, 8.72 GiB of VRAM) ...
[strata] almost ready ...
    6 workers: 62.6 tok/s
  [ok] tuned for this PC: --pcie-frac 0.20, --spec-min-p 0.70 (64.6 tok/s)
  [ok] GPUs: GPU 0 (NVIDIA GeForce RTX 5060 Ti, 16 GB) + GPU 1 (NVIDIA GeForce RTX 5060 Ti, 16 GB) + GPU 2 (NVIDIA GeForce RTX 3060, 12 GB) together (layers split auto)

  ----------------------------------------------------------------------------------------------------
  Starting swift-1.5-iq3_xxs: it loads about 40 GB into RAM and locks part of it for the GPU.
  While it does, YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES (longer the first time after a
  restart). That is normal: please wait and don't close this window - the browser opens when it is ready.
  Later, closing this window stops the model.
  ----------------------------------------------------------------------------------------------------
loading the model (the first start takes a minute or two) ...
[strata] layer split across GPUs [0, 1, 2] (auto)
[strata] starting the engine: reading the model's weights ...
[strata] loading the experts into RAM (about 40 GB) and locking part of them for the GPU.
         YOUR PC CAN BE SLOW OR STOP RESPONDING FOR 1-3 MINUTES NOW - this is normal.
         Please wait and don't close this window; the browser opens when it is ready.
Traceback (most recent call last):
  File "/home/mike/Programs/Strata/serve/server.py", line 1616, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/mike/Programs/Strata/serve/server.py", line 1548, in main
    engine = StrataEngine(cfg["exe"], engine_args(cfg), cwd=cfg.get("cwd"), log=cfg.get("log"), env=env)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mike/Programs/Strata/serve/server.py", line 182, in __init__
    raise RuntimeError("the engine exited before it was ready" + (f" (see {log})" if log else ""))
RuntimeError: the engine exited before it was ready (see /home/mike/Programs/Strata/strata-swift-iq3_xxs.log)

Assisted with Qwen3.8 27b

Activity

  1. Niko1221 commented on Sep 29, 2026

    @Niko1221
    Owner

    Thanks @pdsmike, confirmed on 0.1.26: setup never checks that the installed engine has code for every card in --gpus, and even --setup skips the rebuild when the source hasn't changed. We'll make both paths recompile for all the chosen cards. Meanwhile, deleting engine/BUILD.json and running --setup --gpus 0,1,2 forces a compile for all three.

  2. added a commit that references this issue on Sep 29, 2026
  3. Niko1221 commented on Sep 29, 2026

    @Niko1221
    Owner

    Fixed in 0.1.27: setup now checks that the engine has code for every card the model runs on, both with --setup --gpus ... and when starting. If a card is missing, it compiles the engine for all the chosen cards and keeps the generations the engine was built for. A ready-made engine that lacks a card is replaced by a compiled one. Thanks @pdsmike! Please reopen if a mixed set still fails to start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions