Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

denning

Treating an LLM's context (KV-cache) and MoE experts as an OS-managed resource on fabric-less, OS-arbitrated GPUs.

The demotion cliff — a fitting model's decode collapses 5x as a co-tenant oversubscribes the card

The headline result (H1, reproduced ×2). On Windows + Intel Arc, once a co-tenant app pushes the GPU past its VRAM budget (~13 GB here), VidMm involuntarily evicts a model that fits — decode collapses while ~5 GB of it spills to PCIe-bounced shared memory. You can't pin against it (here's why); the fix is admission control on the live budget. The full, pre-registered story: results/E1-SUMMARY.md.

Named for Peter J. Denning — the working-set model (CACM 1968) and the page-fault-frequency load-control tradition that followed (1970s). This project reincarnates that idea for KV/expert residency on a GPU: admit work to the resident set only while it fits the bandwidth roofline; suspend before you thrash.

Thesis (one sentence)

On a fabric-less, RAM-inverted, OS-arbitrated GPU box (Windows/VidMm, PCIe-only Intel Arc, RAM < VRAM), correct LLM-state management is bandwidth-roofline admission control + co-residency with an adversarial OS memory manager, with reuse-provenance lifetime classes as the single control signal — demonstrated on the one workload the box is genuinely good at: many concurrent agent KV sessions on a single card under desktop co-tenancy.

Contribution (one sentence): On memory-inverted, fabric-less GPUs the materialization decision inverts from the datacenter answer under compute contention, and closed-form admission control on this cost model — over a pinned deterministic arena, not heuristic paging — is sufficient to operate at the feasibility bound. (North star above = motivation; this = the claim.)

Goal: map the feasibility envelope (the bounds), with the simplest system that reveals it. Compression depth and bit-checks are deferred levers — see docs/cost-model.md §7.

Status: G0 cleared (2026-06-19) → control-plane shim built → thermal-window battery run (2026-06-21)

The cost-model core (R1–R3) and the admission roofline (H2′) are already measured on-rig (results/E1-SUMMARY.md) — run ahead of formal G0 but under the one rule: the predictions were git-committed (1118d0c) before the data (2d19b09+). G0 — the advisor-lens methodology pass, applied by the maintainer (the "advisor" is a viewpoint, not a third party) — is now cleared, and the still-untested forward predictions (H1′, H4, H5′, H6) are git-tagged prereg-launch-suppositions before their experiments run. Next: build the I-1 VidMm-eviction watchdog, then run H1.

Update (2026-06-21). Since G0: the I-1 watchdog shipped, H1's involuntary co-tenant eviction was confirmed, and denning was built as a thin control plane over an unmodified llama.cpp (the engine-adapter shim — results/S-shim-*). A full thermal-window benchmark battery then ran end-to-end — pre-registered (tag prereg-battery-20260621), raw-backed, autonomous — covering the decode cliff, the restore-vs-re-prefill keystone (up to 219×), the flash-attn prefill/decode tradeoff, a WDDM spill probe, and the dual-card admission A/B: results/battery-thermal-window-20260621.md. Figures below.

Results at a glance

Decode roofline — the long-context cliff Admission knee — goodput collapses past N*=8 MoE vs dense — 5.7x faster decode

Memory-bound admission knee — a co-tenant forces the spill H4 on-rig — lifetime-class eviction beats LRU on real inference

Top row — decode falls 11.5× by 64K context (the Vulkan attention cliff); goodput peaks at N*=8 concurrent sessions (over-admission collapses goodput and throughput); the MoE decodes 5.7× faster than a dense 32B. Bottom row — the memory-bound admission knee (a co-tenant forces the spill → goodput collapses 4→0) and the H4 make-or-break (typed lifetime-class eviction beats LRU by +32% goodput on real inference, 10/10 seeds; a cache miss is a ~2.8 s re-prefill). All regenerate from measured constants via figures/make_figures.py.

Thermal-window battery (2026-06-21)

Restore vs cold re-prefill — up to 219x Decode cliff — 119 to 5 t/s by 64k

Flash-attn prefill/decode tradeoff WDDM spill probe — f16 KV fits to 128k, no demotion

Restore is 114–219× cheaper than cold re-prefill at depth (64k rebuilds in 9.3 min vs restores in 3.85 s); the decode cliff falls 119→5 t/s by 64k with ~3× of the steepness traced to the Vulkan flash-attn kernel (not the silicon); flash-attn is a prefill accelerator that triples decode latency at depth; and the WDDM spill probe shows f16 KV fits to 128k in dedicated VRAM with no silent demotion to system RAM. Pre-registered writeup: results/battery-thermal-window-20260621.md; regenerate via experiments/make_battery_charts.py.

The one rule

Predictions are committed (git-tagged) before any data is collected. See prereg/. A refuted prediction is a success of the method. Results (results/) are committed after the matching prereg is tagged, and open with a predicted-vs-actual table. The git history is the integrity proof — it is physically impossible to retrofit a prediction to a result.

Repository map

Path What
docs/ technical plan (original + v2 green/red re-review) + the research-program (process) plan
prereg/ the honesty engine — overarching hypotheses (H1–H6) + per-experiment Prediction Cards
results/ results, committed only after the matching prereg is tagged
workbook/ dated public lab notebook
experiments/ measurement harnesses (P0 first)
ops/ operational foundation — pre-flight checklist + pure-observer safing watchdog (I-1)
related-work/ citation tracker with verification status
paper/ the HotOS position-paper draft — the co-residency thesis + the measured evidence
REPRODUCE.md the per-result reproducibility standard

Hardware target

Dual Intel Arc Pro B70 (Battlemage, 32 GB each = 64 GB VRAM, ~608 GB/s, FLOP-modest ~22.9 TFLOPS), 32 GB system RAM (RAM < VRAM), PCIe-only (no NVLink/Xe-Link; no Windows GPU P2P), Windows 10. Engine: llama.cpp + SYCL/Vulkan, --split-mode layer (the only working Windows-Arc multi-GPU path).

License

Apache-2.0 — see LICENSE. Permissive, with an explicit patent grant (chosen at G0, 2026-06-19).

About

Preregistered local-inference experiments on consumer GPUs: admission control, cache restoration, corrected results, and reproducible evidence.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages