Staging a byte versus reading it in place
BOOST balances concurrent reads from host memory and HBM instead of staging every host byte in HBM.
AI-assisted learning visualization Β· schematic article explanation
A prefetched host byte crosses the host link, is written into HBM and is then read by the GPU. The HBM write consumes some of the same interface needed for demand reads.
A September 2026 paper from Georgia Tech, NVIDIA Research, and Stanford β BOOST (arXiv:2609.13592, Saxena, Ju, Taneja, Tsai, Jaleel, Kozyrakis, Qureshi)1 β shows why, for the evaluated bandwidth-bound decode workloads, prefetching host-resident weights and KV into HBM consumes bandwidth that direct concurrent reads from host memory can avoid. The runtime serves both tiers concurrently, in proportion to their bandwidth, and measures +31% average throughput in vLLM on Grace Hopper while prefetching measurably hurts latency β TPOT degrades 6% at iso-batch123.
The hype-adjacent framing you will see elsewhere is "31% free throughput from RAM you already own." The hype-resistant version is narrower and more interesting: on this specific class of tightly-coupled CPU-GPU systems, the host tier is a ~10% bandwidth peer and a ~10% capacity annex, and the entire design space of tiering systems built on "move data to the fast tier before use" pays a write tax it can never recover. This guide recomputes the ledger in Python (you can run the same arithmetic), separates the throughput story from the latency story, and draws the silicon boundary the claim cannot honestly cross β which matters because it is the same boundary our UNISON analysis hit from the other side: UNISON wanted dedicated scheduler silicon; BOOST gets real measured wins from 800 lines of Python in a serving engine, on real hardware. The tension between those two claims is the story.
1. The claim, and what was measured on what
Provenance first: Georgia Tech + NVIDIA Research + Stanford, integrated into vLLM v0.17.0 with roughly 800 lines of Python/PyTorch, no kernel edits β it works through mmap/mbind page placement and a modified KV-pool manager; FlashAttention-3 and closed-source cuBLAS kernels run untouched2. Evaluation hardware is a Grace Hopper GH200: 96 GB HBM, 480 GB CPU memory, spec peak HBM bandwidth 3.63 TiB/s and measured in-practice 3,330 GiB/s, measured C2G (chip-to-GPU, over cache-coherent NVLink-C2C) read bandwidth 350 GiB/s β that measured pair gives the bandwidth ratio Ξ± β 10% that the whole paper turns on2. We verified every number below in the arXiv HTML full text; the trade-press pickup (Semiconductor Engineering) quotes the abstract accurately3.
Three headline numbers, each of which decomposes differently, so it is worth keeping them apart:
- +31% average throughput, up to 40% at max-batch scaling vs. HBM-only serving (measured)2.
- 4.3% lower TPOT at iso-batch β same batch, fewer milliseconds per token, purely from added bandwidth2.
- 6% higher TPOT for prefetching under the same iso-batch conditions β the incumbent paradigm loses latency on the workload it is supposed to help1.
Note the asymmetry immediately: 31% is mostly a capacity effect, 4.3% is the bandwidth effect, and β6% is the cost of the prefetch paradigm itself. The rest of this article is the arithmetic that makes those three numbers inevitable rather than impressive.
2. The bandwidth ledger: why prefetch consumes HBM write bandwidth during decode
The paper's core observation is an accounting identity, and accounting identities are the best antidote to hype there is. A prefetching tier writes every host-resident byte into HBM before the SMs read it. That write competes for the HBM interface with the demand reads of the decode step. The host link's bandwidth is spent pulling data across C2C, and then a second time as write traffic on the HBM pins:
- Read 1 GB from host over C2C: consumes C2C bandwidth the system otherwise never uses during decode.
- Write that 1 GB into an HBM staging buffer: consumes HBM write bandwidth.
- Read it back as a demand load: consumes HBM read bandwidth.
So per delivered byte, a prefetcher pays HBM write + HBM read + C2C, and the C2C spend is the only new resource β everything else is subtracted from the tier you were trying to offload. Worse, the writes are recurrent: the offloaded working set is far larger than any staging buffer, so staged bytes are evicted after use and re-fetched at the next decode iteration2. The paper measures the damage at 211 GB/s of demand-read bandwidth lost on Llama-3.3 70B in vLLM2 β about 5.9% after converting the paperβs decimal GB/s to GiB/s against the 3,330 GiB/s peak:
# Grace Hopper, paper-measured (arXiv:2609.13592v1, Sec. 5.1)
HBM = 3330 # GiB/s measured peak HBM bandwidth
C2G = 350 # GiB/s measured chip-to-GPU read bandwidth
alpha = C2G / HBM # 0.105 -> the paper rounds to 10%
prefetch_loss = 211 / 1.073741824 # paper reports 211 GB/s; convert to GiB/s
print(alpha, prefetch_loss / HBM) # 0.105, ~0.0590Now the illustrative per-step transfer ledger. Take Llama-3.3 70B in FP8 β call it 70 GB of weights swept by every decode step (KV adds more on top). A typical tiering policy offloads one of every K layers to host and prefetches asynchronously. Run the write arithmetic per decode step:
W = 70.0 # GB of FP8 weights read per decode step (KV on top)
for K in (10, 8, 5):
staged = W / K # GB written into HBM staging per step
print(f"K={K}: {staged:.1f} GB written/step = "
f"{100*staged/W:.1f}% extra HBM write traffic vs weight reads")
# K=10: 7.0 GB written/step = 10.0% extra HBM write traffic
# K=8: 8.8 GB written/step = 12.5% ...
# K=5: 14.0 GB written/step = 20.0% ...A staging buffer need not hold the entire 7 GB offload slice at once; it can stream it in smaller pieces. The recurring cost follows from the offloaded weights remaining resident in host memory and being needed again at the next decode step, not from a particular buffer size. That gives recurring HBM write traffic in the same ballpark as the Ξ± it was supposed to add. That is why, in the paperβs iso-batch bandwidth model, an ideal, perfectly overlapped prefetcher still cannot exceed the HBM-only demand-bandwidth bound: with fraction Ξ± of data staged, effective demand bandwidth is bounded at HBM Γ (1 β Ξ±), because every staged byte must land in HBM. Concurrent dual-tier reading attains HBM Γ (1 + Ξ±). The ratio of the two bounds is (1 + Ξ±)/(1 β Ξ±)2:
for a in (0.03, 0.105, 0.44):
print(f"alpha={a:.3f}: CAP/prefetch bound = {(1+a)/(1-a):.2f}x")
# alpha=0.030: 1.06x (GB200-class: 2 GPUs share one CPU)
# alpha=0.105: 1.23x (measured GH200; paper states 22% at alpha=10%)
# alpha=0.440: 2.57x (projected Vera-class, 900 GB/s C2G)This is the cleanest way to state the paradigm result: prefetching converts the second tier from a bandwidth source into a bandwidth tax. It is not a tuning failure, an overlapped-DMA failure, or a cleverness failure β it is what the ledger says must happen when every host byte must first become an HBM byte.
3. Why concurrent proportional access wins: add the tiers, don't average them
BOOST's alternative is what the paper calls CAP access β concurrent and proportional determine: within every wave of threadblocks, both tiers are read simultaneously, with exactly Ξ±/(1+Ξ±) of accesses to host and 1/(1+Ξ±) to HBM. The proportionality condition is old (bandwidth-proportional page placement dates to 2015); the concurrency within a wave condition is the new one, and it exists because modern GPUs use 2 MB pages. A wave touches tens of 2 MB pages, not the thousands of 4 KB pages that made 2015-era random proportional placement self-balancing within a wave. Random placement that is proportional on average swings wildly per wave: some waves oversend the host tier and stall on it while HBM idles; some waves touch host barely at all. The paper's controlled sweep is blunt: speedup peaks at 7.4% at a host share of 8.3% (near the proportional 9.1%), and a host share meaningfully above proportional is a 6.7% slowdown2. Proportion with no concurrency = no gain; concurrency with skewed proportion = loss. Both properties are load-bearing.
Two mechanisms deliver it without kernel edits. For static weights, Modulo-based Page Placement (MPP): allocate the first K pages to HBM, the (K+1)-th to host, repeat β the access ratio is deterministic in every wave with zero variance, and CTAs stay un-split across tiers (a CTA with mixed-tier footprints stalls its SM on host loads). For dynamic KV, the Data Shape Remapper (DSR) maps whole KV heads to tiers β one head of an H-head model to host gives head-granular control, with a tensor-layout reorder so heads stay contiguous and page-aligned. The runtime reserves about 9.6 GB (2% of the 480 GB host side) in 1 GB pages and performs no migration at all β data is read where it lives, cacheline-granular, over cache-coherent load-store semantics2.
The bandwidth bound is then simply additive. Both tiers saturate per wave:
print(f"dual-tier bound = HBM + C2G = {3330+350} GiB/s vs {3330} HBM-only "
f"-> {(3680/3330-1)*100:.1f}% max")
# 3680 GiB/s -> 10.5% max bandwidth gain at iso-batch (paper's ~1.1x framing, alpha 9-11% per SKU)That is the honest ceiling: ~11%, not 31%. So where does 31% come from? Keep the two effects separate β that separation is the article.
4. The 4.3 / β6 / +31 split: latency buys 11%, capacity buys the rest
The iso-batch TPOT experiment fixes the batch (10 requests for Llama-3.3 70B, 88 for Qwen3-Next 80B) so only bandwidth can change the result. There BOOST delivers 4.3% average TPOT improvement β the paper's geometric mean, which is the right aggregator when the per-model numbers are 4.5% (MoE) and 4.2% (dense)2. Prefetching under identical conditions delivers β6% β meaning BOOST ends 11% ahead of the incumbent, and the MoE case is worse still for prefetch: dynamic expert activation times desynchronize the prefetch pacing, misses its timing window, and costs the MoE 9.3% TPOT2. The measured bandwidth check: BOOST's total (HBM+C2G) utilization improves 3% over HBM-only and 12% over prefetching2.
Now throughput. In high-throughput mode the serving system auto-scales batch size to fill available memory β and this is the capacity lever the abstract's framing sentence makes explicit: if 20% of HBM space is KV, then 10% extra capacity from the host tier grows the KV space by 50%, allowing up to 1.5Γ the concurrent requests1. Sanity-check that decomposition numerically:
total = 1.31 # measured average throughput gain
concurrency_share = 1.04 # paper: concurrent access adds ~4%, no capacity-only mechanism does
print(f"implied capacity factor = {total/concurrency_share:.2f}x") # 1.26xSo the honest read of "+31%": roughly a 1.26Γ capacity-driven batch-size effect (more resident KV and weights β more concurrent requests), compounded by a 1.04Γ per-request bandwidth effect. And the batch-size headroom also absorbs host slowness: at high batch, per-request decode is more latency-tolerant (some requests wait anyway), so paying a slower average access cost matters less than paying it at exactly-fixed batch. That is mechanically why prefetching still gains +17% throughput (capacity is capacity, even through a lossy paradigm) but loses TPOT β and why BOOST's edge over prefetching is 15% in throughput but 11% in TPOT12. Whoever quotes "31% faster LLMs" has collapsed an iso-latency measurement into a batch-scaling measurement; they are different axes.
Two anti-hype details from the sensitivity sections deserve equal billing with the headline:
- Batch size is a real boundary condition. The dense model's kernel-level speedup decays from 7% at batch 8 to 6% at batch 64 and turns into a 0.5% slowdown at batch 256 β at large batch, multiple CTAs share a weight tile and L2 reuse matters, and Grace Hopper does not L2-cache GPU-to-host loads, so host reads bypass the reuse path2. MoE shows the inverse: β2% at batch 16 (too few threadblocks to balance the ratio), +6% at batch 256. BOOST is a serving regime tool, not a universal constant.
- Weighted interleave β the "obvious" alternative β already gets you most of the throughput and none of the latency. Weighted-interleave placement raises throughput 30% on capacity but scores 0.99 on iso-batch TPOT: proportional-on-average without per-wave concurrency2. If your workload only cares about tokens-per-second at saturated batches, you may already own most of BOOST's throughput win.
5. Hardware scope: GH200 is measured, PCIe is an extrapolation
This is where most of the secondary coverage will be wrong, so we state it as a hard rule. Ξ± β 10% because Grace Hopper's host LPDDR5X sits behind a cache-coherent NVLink-C2C port measured at 419 GiB/s peak / 350 GiB/s sustained against HBM's 3,330 GiB/s measured (3.63 TiB/s spec)2. Per SKU the paper quotes C2G read at 450 GB/s against HBM at 4,000β4,900 GB/s, hence "9% to 11%"1. Roughly speaking, host read bandwidth is a tenth of HBM β only if the host is that close. The distinctive Grace Hopper property is that the host tier is a near-peer of the interconnect: ~512 GB/s-class LPDDR5X through a 600-GB/s-class coherent C2C port, i.e. nearly all the host bandwidth is deliverable to the GPU.
The paper says BOOST can run on PCIe where GPU load/store access to the host tier is supported, but expects only marginal gains at its estimated Ξ± β 2%2. The +31% throughput result was measured on GH200, not on a PCIe x86 host. PCIe system behavior depends on memory mapping, GPU capabilities and workload; a PCIe Gen5 x16 headline bandwidth alone is not enough to infer a universal gain or to rule out direct GPU loads. The idealized CAP/prefetch bandwidth ratio at Ξ±=0.02 is only about 1.04Γ, before implementation overhead.
Extend the guard across product lines rather than letting the marketing extend it for you:
- GB200: two Blackwell GPUs per Grace CPU β the CPU bandwidth is now shared, and the paper puts Ξ± around 3%2. The idealized dual-tier bandwidth advantage is much smaller even though it is still NVLink-coherent.
- Vera-class future systems: projected 900 GB/s C2G, Ξ± up to 44% β where the paper projects BOOST's advantage over prefetching growing to 60% and its own gains approaching 3Γ2. Projection, not silicon; treat accordingly.
- PCIe x86 + DDR5: the paper expects marginal gain around Ξ±β2%, but does not measure the +31% GH200 result there. Whether direct host loads are usable is platform-dependent.
A GH200 +31% throughput result cannot be transferred to a PCIe server without a separate measurement.
6. The UNISON contrast: same workload diagnosis, opposite cost model
Our UNISON piece covered the near-memory scheduler for agent KV on tool-wait sessions: the paused-fleet working set (100 agents at 100k context β 703 GB of pure KV state) that recency and timeout policies misrank, addressed by dedicated 28 nm scheduling silicon (0.169 mmΒ², 13.6 mW at 150 MHz, 2.00 Β΅s mean per 64-session scan). The honest caveat we flagged there, and now flagged harder: UNISON's evaluation runs on a homegrown trace-driven model of a Rubin-class GPU β not real silicon4. BOOST's evaluation runs on a real GH200 running real vLLM, real FlashAttention-3, real cuBLAS2.
That contrast is a genuine open question in the tiering stack, and neither paper answers it alone. UNISON's claim is that tier-placement scheduling is event-driven, latency-critical, and belongs in silicon near the memory controller. BOOST's claim is that tier-bandwidth extraction is a placement problem a 800-LoC runtime solves on commodity hardware today, with no kernel changes and no new silicon. These are not actually the same claim β UNISON schedules when/where KV lives across a tier hierarchy under agent duty cycles; BOOST decides which tier each byte is read from so both saturate simultaneously β but they do compete for the same operator budget (engineering attention, adoption risk), and the burden of proof currently sits with the silicon camp, whose splashiest 2026 result is still simulation-based. If your decisive argument for near-memory silicon is "the scheduling decisions are too fine-grained for host software," you now have to beat a system that hit a 7.3% hand-kernel bound with 0 lines of kernel code, 96% of the way, from Python2.
The counter-argument survives too, and it is worth keeping BOTH alive rather than declaring a winner: BOOST cannot help a paused fleet β its mechanisms assume actively-decoding kernels with steady per-CTA access streams; it has nothing to say about tool-wait residency, and its wave-awareness dissolves when the waves stop. The cheapest new HBM is the host DRAM you already own β our HBM4-shortage economics argument β but whether the host DRAM serves as a bandwidth peer (BOOST's regime) or as cold storage for parked sessions (UNISON's regime) depends on the workload's duty cycle, and a real fleet has both. The prefetch incumbent meanwhile ships regardless: vLLM v0.30.0's HiSparse host-resident tier spills KV pages to pinned host memory with per-request GPU hot buffers and batched host-to-device mediation β well-engineered prefetch-family machinery, exactly the paradigm BOOST's β6%/+17% numbers price5. The serving-engine churn context matters here: read engine-release features against the measured claims, not the release notes.
7. What we verified, what we did not, and the falsification list
What is load-bearing here, all checked at primaries for this guide: the abstract numbers (31%, 4.3%, β6%, 15%)13, the Grace Hopper numbers in the HTML full text (3.63 TiB/s spec, 3,330/350 GiB/s measured, Ξ± = 10%, 211 GB/s prefetch loss (about 5.9% of 3,330 GiB/s after unit conversion), 9.6 GB host reserve, 800 LoC, vLLM v0.17.0, the 7.4% CAP peak and 6.7% oversubscription penalty, the batch-size crossovers, GB200 Ξ±=3%, Vera Ξ±β€44%)2. The (1+Ξ±)/(1βΞ±) ledger bound is the paper's own derivation and we recomputed it in Python above; our illustrative offload walkthrough (70 GB FP8 weights, K=10 β 7 GB transferred per decode step) is our model of their Fig. 3, using their measured loss as the anchor β treat the walkthrough as a sanity check, the 211 GB/s as the paper-reported result.
Honest scope limits on the result itself:
- One hardware family, one engine, one paper version. GH200 only, vLLM v0.17.0 only, v1 at submission (Sept 11, 2026)1. No SGLang integration, no GB200 or H100 numbers except via Ξ±-emulation, no 2-GPU tensor-parallel scaling evidence beyond the Qwen2.5-72B study. Replicability optimism should be priced accordingly.
- FP8 models throughout. The ledger holds at any precision, but the ratio of KV-to-weight bytes β and therefore how much of the win is attention- vs weight-driven β shifts with quantization; FP4 KV-heavy workloads are not directly measured.
- Wave-awareness is API-fragile. MPP's determinism depends on 2 MB pages, current CTA structure, and current tiling. A driver update that changes page size or a kernel library switch that changes CTA shape degrades BOOST toward the random-placement distribution β the runtime chases a moving token, silently.
- Peak-vs-measured gap. Spec-sheet arithmetic with the marketing numbers (which for some SKUs top 8 TB/s-class HBM3e) instead of the measured 3,330 GiB/s understates Ξ± and every derived number; never mix spec-sheet numerators with in-practice denominators β including this paper's own 419-vs-350 GiB/s C2C spread.
- The UNISON lever, stated bluntly: BOOST's measured-on-silicon credibility cuts both ways β early framings of UNISON's validation-origin gap (a trace model, not Rubin silicon) reads harsher now. Watch the silicon path for hardware-measured turnaround first before pricing its other claims. That watchlist is yours to set up.
The verdict, sans hype: no revolution in silicon, no free 31%, one crisp accounting result that happens to arrive with the right hardware to demonstrate it on. Every tiering system that stages host data into fast memory during decode is consuming the very interface it is trying to protect; while NVLink-class coupling keeps host bandwidth within a generation of the fast tier, read both at once instead β in proportion, waves apart. The degree to which that translates to your fleet depends on the number nobody's press release contains: your Ξ±, measured, on your SKU, with your batch sizes.
Sources
Footnotes
-
Saxena, A., Ju, J.H., Taneja, H., Tsai, P.-A., Jaleel, A., Kozyrakis, C., Qureshi, M. β BOOST: Concurrent Access to Host Memory and HBM to Accelerate LLM Inference, arXiv:2609.13592, submitted Sept 11, 2026 (Georgia Tech + NVIDIA Research + Stanford). Abstract page: +31% average throughput, +4.3% iso-batch TPOT, prefetching β6% TPOT, outperforming prefetching by 15%: https://arxiv.org/abs/2609.13592 β© β©2 β©3 β©4 β©5 β©6 β©7 β©8
-
Same paper, HTML full text Β§2.2βΒ§5.10 (spec 3.63 TiB/s, measured 3,330 GiB/s HBM and 350 GiB/s C2G β Ξ± β 10%; 211 GB/s prefetch-induced demand-bandwidth loss Fig. 3; CAP peak 7.4% at 8.3% host share, 6.7% slowdown oversubscribed; vLLM v0.17.0, ~800 LoC, 9.6 GB host reserve; batch-size crossovers Β§5.10; GB200 Ξ± = 3%, Vera-class Ξ± up to 44% Β§6.1): https://arxiv.org/html/2609.13592v1 β© β©2 β©3 β©4 β©5 β©6 β©7 β©8 β©9 β©10 β©11 β©12 β©13 β©14 β©15 β©16 β©17 β©18 β©19 β©20 β©21 β©22 β©23
-
Semiconductor Engineering β Concurrent HBM And Host Memory Access Improves LLM Inference Throughput (Georgia Tech, Nvidia, Stanford), Sept 2026 pickup, abstract quoted verbatim: https://semiengineering.com/concurrent-hbm-and-host-memory-access-improves-llm-inference-throughput-georgia-tech-nvidia-stanford β© β©2 β©3
-
He, Li, Zeng et al. β UNISON: near-memory agent KV scheduler (arXiv:2609.09643), 28 nm / 13.6 mW / 150 MHz, 2.00 Β΅s mean per 64-session scan; trace-driven model of a Rubin-class GPU, not real silicon β our in-depth audit with the full ground-truth ledger: https://arxiv.org/abs/2609.09643 and UNISON guide β©
-
vLLM v0.30.0 release notes β HiSparse host-resident tier for sparse-MLA decode: KV pages spill to pinned host memory under GPU pressure, per-request GPU hot buffers, host cache shared across TP ranks (prefetch-paradigm incumbent): https://github.com/vllm-project/vllm/releases/tag/v0.30.0 and the serving-engine churn analysis β©