When the KV Cache Is Slower Than the GPU: Scaling Remote KV Tiers for Context-Parallel Prefill

Muhammad Ibrahim

Multiverse Computing

Published October 15, 2026 · on the feed October 16, 2026 · ▲ 3 · arXiv 2610.21500

Efficiency & inferenceModel architecture No code arXiv ↗Hugging Face ↗

The abstract

Reusing the attention KV cache across requests is a standard way to cut prefill cost in long-context LLM serving, and production systems increasingly back the per-engine cache with a remote tier shared by every engine. We study such a tier in a disaggregated deployment of GLM-5.3, an FP8 mixture-of-experts model with multi-head latent attention (MLA), on 8xB300 nodes running prefill context parallelism (PCP8). Enabling the remote tier (LMCache with a Valkey store) left median time-to-first-token unchanged but raised the 16k-token p99 from 3.96 s to 17.3 s. Replaying a production request stream on an isolated engine, we find that a remote hit took 0.88 s against 0.31 s to recompute the prompt, and that synchronous loading turned a hit-heavy stream into an unstable queue: p99 83.32 s with the GPUs 7% busy. A two-term cost model explains both: a hit pays off only if the tier delivers more than B* = sR (2.53 GB/s for this model and GPU), and a fixed per-hit engine cost (T0 ~ 0.33 s) means that hits on prompts shorter than about 17k tokens cannot beat recompute at any bandwidth. Guided by the model, we (i) shard the MLA KV store across PCP ranks, with a proof that the existing minimum-over-ranks lookup returns the longest cached prefix and a load protocol that can never desynchronize collectives; (ii) partition the remote tier by rank, one server instance per rank with no coordination, which raises GET bandwidth 6.3x to 10.76 GB/s; (iii) add asynchronous loading to the sharded store; and (iv) fix three client bugs that caused unbounded stalls. On the hit-heavy stream, with 98.5% of prompt tokens served from the remote tier, p99 falls from 83.32 s to 0.67 s. The sharded store raises prefill throughput by 14%, and by 34% together with an upstream kernel fix. All changes are submitted upstream to LMCache.

The Brief

3:01

A short podcast summary of the paper. Written and voiced by AI.

Transcript

When the KV Cache Is Slower Than the GPU. Scaling Remote KV Tiers for Context-Parallel Prefill. By Muhammad Ibrahim, from Multiverse Computing. Published on the fifteenth of October. No code repository is linked to it.

Reusing the attention KV cache across requests is a standard way to cut prefill cost in long-context LLM serving, and production systems increasingly back each engine's cache with a remote tier shared by every engine. The claim here is that such a tier can be slower than simply recomputing, and that a two-term cost model says when. A hit pays off only if the tier delivers more than a break-even bandwidth. On top of that, a fixed engine cost per hit means that short prompts cannot beat recompute at any bandwidth at all.

The study runs GLM-5.3, an FP8 mixture-of-experts model with multi-head latent attention, in a disaggregated deployment with prefill context parallelism, PCP8. Enabling the remote tier, LMCache with a Valkey store, left median time-to-first-token unchanged. But for sixteen-thousand-token requests, the p99 rose from three point nine six seconds to seventeen point three seconds.

Replaying a production request stream on an isolated engine shows why. A remote hit took zero point eight eight seconds, against zero point three one seconds to recompute the prompt. And synchronous loading turned a hit-heavy stream into an unstable queue, with a p99 of eighty-three point three two seconds while the GPUs were only seven percent busy. The cost model explains both. For this model and GPU, the break-even bandwidth is two point five three gigabytes per second. The fixed per-hit cost is about zero point three three seconds, which puts prompts shorter than roughly seventeen thousand tokens out of reach.

Guided by the model, the author makes four changes. The MLA KV store is sharded across PCP ranks, with a proof that the existing minimum-over-ranks lookup returns the longest cached prefix, and a load protocol that can never desynchronize collectives. The remote tier is partitioned by rank, one server instance per rank with no coordination, raising GET bandwidth six point three times, to ten point seven six gigabytes per second. Asynchronous loading is added to the sharded store. And three client bugs that caused unbounded stalls are fixed.

On the hit-heavy stream, with ninety-eight point five percent of prompt tokens served from the remote tier, p99 falls from eighty-three point three two seconds to zero point six seven seconds. The sharded store raises prefill throughput by fourteen percent, and by thirty-four percent together with an upstream kernel fix.

All of this is measured on one deployment of one model, and much of it on a single production stream replayed on an isolated engine. The break-even bandwidth and the per-hit cost hold for this model and GPU, so the thresholds they imply belong to this setup. Notice too where the damage showed: the median was untouched, and the cost appeared in the tail.

All changes are submitted upstream to LMCache. In one line, a cache is a saving only when fetching from it beats recomputing, and with a fixed cost per hit, short prompts lose that race no matter how fast the tier becomes.

More with an account

Listen to every day’s papers

Daily playlists, deep dives, quests for the papers, and quizzes on their key terms.

Join free
KipQuest: the day’s AI research, as podcasts and quests. All papers Android app Privacy Contact Episodes are written and voiced by AI from each paper. Summaries can contain mistakes: the paper is the source.