Skip to content
AI Atlas
PaperActive

Building py-kvcache: A Performance Characterization of External KV Caching for vLLM with NVMe SSDs

arxiv.org/abs/2609.11744

quality89

Updated 5 h ago · first seen 11 Sept 2026

paper_01M294FRCHMER1XFA53EXJGW47

Published
11 Sept 2026
T1 · 5 h ago
arXiv
2609.11744
T1 · 5 h ago
Category
cs.DC
T1 · 5 h ago

As of

Rewind the record: see this entity's attributes exactly as AI Atlas knew them on a given day.

Claim history

9 claims · 9 properties

Official pageofficial_url1

Claim history for Official page
ValueValid from → toStatusSourceConfidenceExtractor
https://arxiv.org/abs/2609.11744currentcurrentarXiv (Atom API + RSS)T1highdeterministic

Abstractabstract1

Claim history for Abstract
ValueValid from → toStatusSourceConfidenceExtractor
Prefix caching can reduce the time to first token (TTFT) of long-context LLM requests by reusing previously computed key-value (KV) states, but for short prefixes or fast GPUs, recomputation can be faster than loading from an external cache. We characterize this tradeoff in vLLM across GPU, CPU, and NVMe tiers using synthetic workloads, long-context benchmarks, production traces, and find that cache performance depends on transfer granularity, intermediate memory use, and when transfers enter the request schedule, not only on device bandwidth. These findings motivate py-kvcache, a vLLM KV Offload connector with asynchronous direct I/O, bounded shared staging, and scheduler-aware preloading, which starts disk reads while requests are still waiting, overlapping with compute. At 80k tokens, py-kvcache loading from disk is 2.0x faster than LMCache, with preloading contributing 1.34x. With GPU, CPU, and disk caching enabled, it is 1.23x faster than LMCache and within approximately 4% of the native vLLM KV Offload implementation. LongBench and SCBench show that these benefits extend to irregular prefix chains and multi-turn workloads. Bailian trace replays improve TTFT on a weaker GPU, but on an H100 the average request falls below the break-even point and GPU memory alone retains enough prefixes. External KV caching should therefore be treated as a setup specific admission decision. The py-kvcacheimplementation is available at: https://github.com/atlarge-research/py-kvcache.currentcurrentarXiv (Atom API + RSS)T1highdeterministic

Arxiv announce typearxiv_announce_type1

Claim history for Arxiv announce type
ValueValid from → toStatusSourceConfidenceExtractor
crosscurrentcurrentarXiv (Atom API + RSS)T1highdeterministic

arXiv idarxiv_id1

Claim history for arXiv id
ValueValid from → toStatusSourceConfidenceExtractor
2609.11744currentcurrentarXiv (Atom API + RSS)T1highdeterministic

Authorsauthors1

Claim history for Authors
ValueValid from → toStatusSourceConfidenceExtractor
Joseph Kanichai, Tiziano De Matteis, Animesh TrivedicurrentcurrentarXiv (Atom API + RSS)T1highdeterministic

Categoriescategories1

Claim history for Categories
ValueValid from → toStatusSourceConfidenceExtractor
cs.DC, cs.LGcurrentcurrentarXiv (Atom API + RSS)T1highdeterministic

PDFpdf_url1

Claim history for PDF
ValueValid from → toStatusSourceConfidenceExtractor
https://arxiv.org/pdf/2609.11744currentcurrentarXiv (Atom API + RSS)T1highdeterministic

Primary categoryprimary_category1

Claim history for Primary category
ValueValid from → toStatusSourceConfidenceExtractor
cs.DCcurrentcurrentarXiv (Atom API + RSS)T1highdeterministic

Publishedpublished_at1

Claim history for Published
ValueValid from → toStatusSourceConfidenceExtractor
11 Sept 2026currentcurrentarXiv (Atom API + RSS)T1highdeterministic

Claims are temporal and append-only: a new observation closes the previous claim (valid_to) instead of overwriting it. Conflicting claims from different sources are kept side by side and flagged — never averaged. Methodology →