The costly crossing
GPU
CPU
GPU
Router on GPU → expert matmuls on CPU → copy the result back.
I wanted the Q6 model—not the smaller quant my GPU was forcing me into. ExpertFlow finds the hidden CPU expert bottleneck and spends VRAM where it removes the most work.
Whole-layer placement was too coarse. ExpertFlow identifies the routed operands separately and keeps the selected complete expert banks close to CUDA.
Router on GPU → expert matmuls on CPU → copy the result back.
Selected complete packed banks remain CUDA-resident for execution.
Choose the proof path that matches the machine and the time available.
Hash-check the committed artifacts and reconstruct the measured release result.
uv sync --frozen uv run expertflow demo --replay
Verify identities, launch fresh matched processes, and preserve raw evidence.
.\scripts\live-tps-demo.ps1 -Mode Demo
Apply the ordered llama.cpp patch series and reproduce the complete protocol.
See JUDGES.md and docs/BENCHMARKING.mdOPEN GITHUB ↗
The selected layers are not a universal hand-picked recipe. They are the emitted Q6 placement for this model, memory budget, and GPU.
full 128-expert CUDA banks
NO CACHE OPPORTUNITY
Measured Q6 routing plus measured cache costs projected lower throughput.
Full static residency
No eviction, reactive loading, prediction, repacking, or per-token expert transfer.
GPT-5.6 guided ideation and experiment framing. Codex with GPT-5.6-sol managed the implementation, testing, measurement, failure isolation, packaging, and release loop.
PPL point: -2.92%; 95% upper bound: +2.25%. The strict +1% confidence requirement was not met.
Four slots, 20/20 requests; stock was 24.5231 TPS. Concurrent outputs were not fully deterministic.
417 tokens were processed in the bounded run. Peak was 15,635.582 MiB with 675.418 MiB reserve.