Lifeboat by Iterate.ai
LifeboatCacheOptional component of LifeboatAlso a standalone vLLM and SGLang plugin

More agents per GPU.

A tiered, persistent KV cache that keeps your agents’ context in host DRAM, NVMe and storage, and hands it back to the GPU on the next turn instead of recomputing it. Up to 3.6x the throughput and 3x the tokens per joule on the hardware you already own.

A GPU streams KV cache blocks down into DRAM, NVMe and storage tiers, and an arc of blocks returns them to the GPU.
Throughput · NVIDIA
3.0x
on 4x RTX PRO 6000 with a 235B model
Throughput · AMD
3.6x
on an AMD Instinct MI210
Energy efficiency
3.0x
output tokens per joule of GPU energy
Cache hit rate
91–94%
held over 90 minutes of sustained load
The problem

Agents re-send everything. Your GPU recomputes it.

Every turn, an agent sends its whole session back to the model: the task, every tool call, every result. Turn 25 carries 24 turns of context with it. The KV cache for that context lives in GPU memory, and GPU memory is the most expensive memory you own.

Once 128 or 256 sessions no longer fit, the inference engine evicts them. The next turn recomputes the session from its first token. Time to first token climbs into the minutes, throughput falls, and the GPU burns full power doing work nobody sees.

The fix is not more GPUs. It is keeping the context somewhere cheaper than HBM and handing it back fast enough that the GPU never redoes the work.

Context carried per turn
Turn 1
Turn 5
Turn 12
Turn 25
GPU memory full at 128–256 sessions: the engine evicts.
Next turn recomputes from the first token. TTFT climbs into minutes.
What LifeboatCache is

A KV cache that lives outside the GPU and survives everything.

LifeboatCache is a tiered, persistent KV cache for vLLM, SGLang and Lifeboat. When the engine runs out of GPU memory, LifeboatCache takes the evicted KV blocks into host DRAM. When DRAM fills, they move to local NVMe. From there they can go to S3-compatible object storage or NetApp ONTAP. On the next turn, the engine asks for the session and LifeboatCache streams it back from whichever tier holds it.

Engine
GPU HBM
Fastest, most expensive. Evicts when full.
Tier 1
Host DRAM
Takes evicted KV blocks first.
Tier 2
Local NVMe
Catches DRAM overflow. Persists on disk.
Tier 3
S3 or NetApp ONTAP
Object or network storage at scale.
Next turn: streamed back to the GPU from whichever tier holds it.
Sized against a whole-server budget. Restart the server and a returning session is still a cache hit.

Three things it does that a plain cache does not

Tiers that scale

DRAM, then NVMe, then object or network storage. You buy as much fast memory as the workload needs and let cheaper storage absorb the rest. In our tests, 64 GB of DRAM still served 85% of prompts from cache because NVMe caught the overflow.

Hits that hold

Under 90 minutes of sustained load at 256 agents, LifeboatCache stayed at 91–94% of prompts served from cache and finished the run. The alternative we tested slid from 91% to 47% and never completed.

Built for agents

OSCAR compresses KV to 2 bits in the offload tiers, halving stored bytes at the same speed. EpiCache evicts by topic rather than recency, so a long session keeps what it still needs.

Measured over 90 minutes

Hit rates that hold for the whole run.

At 256 agents under sustained load, LifeboatCache served 91–94% of prompts from cache and finished in 80 minutes. LMCache slid from 91% to 47% and never completed.

A live dashboard and Prometheus metrics show you hit rates, tier occupancy and bytes moved.

Prompts served from cache · 256 agents
LifeboatCacheLMCache
100%80%60%40%0 min306090 min91–94% · done at 80 min47% · did not complete
Measured start and end points from the 90-minute run at 256 agents; LMCache’s line joins its two measured points.
How it works with vLLM

One pip install. One environment variable. No engine fork.

01

Plug into vLLM 0.32

LifeboatCache uses vLLM’s native KV offloading interface. Start your server the way you already do, point one environment variable at the cache, and the engine begins offloading evicted blocks and pulling them back on demand.

02

Keep LMCache if you run it

LifeboatCache can sit underneath LMCache as its storage tier, so you keep your LMCache configuration and gain the persistent NVMe and storage tiers.

03

SGLang and Lifeboat, same package

For SGLang, LifeboatCache is a HiCache storage backend: the same install, the same tiers. Lifeboat, Iterate.ai’s inference platform, embeds SGLang, so LifeboatCache is available there as an optional component with no extra setup.

04

You don’t move engines

If you run vLLM today, keep running vLLM. If you run SGLang, keep running SGLang. LifeboatCache is the cache; it is not asking you to move.

terminal
# 1. Install
$ pip install lifeboatcache
# 2. Point one environment variable at the cache
$ export [ENV_VAR_NAME]=[cache address]
# 3. Start vLLM the way you already do
$ vllm serve [your model]
How it compares to plain LMCache

Same servers. Same DRAM. Three times the throughput.

We measured three configurations on the same servers, with the same host DRAM budget, fresh caches for every run, and public agent traces replayed turn by turn.

Plain vLLMvLLM + LMCachevLLM + LifeboatCache
Where KV livesGPU onlyDRAM, then NVMeDRAM, then NVMe, then S3 or ONTAP
Survives a restartNoNoYes
4x RTX PRO 6000, 235B model, 128 agents70 tok/s87 tok/s208 tok/s
Prompts served from cache, same run1%24%79%
Time to first token, same run137.5 s113.5 s42.7 s
Output tokens per joule, same run0.0530.0650.159
90 minutes at 256 agents—Hit rate fell 91% → 47%, did not completeHeld 91–94%, completed in 80 min
AMD MI210, 7B model, 256 agents41 tok/s78 tok/s145 tok/s

LMCache is a good offload layer and we support it. The difference shows up in two places: when the DRAM tier fills and the cache has to lean on NVMe, and when the run goes on long enough for eviction to start competing with loads. LifeboatCache is built for both.

Every number here is reproducible with LifeboatCacheTest, our open benchmark harness.Raw results on GitHub →
Why it matters

Memory is getting scarce. Compute is getting expensive. Power is the limit nobody can buy around.

LifeboatCache turns the memory you have into throughput you can serve.

3.0x / 3.6x

More agents per GPU

3.0x on NVIDIA with a 235B model, 3.6x on AMD. Same capex, three times the sessions.

11.8 min vs 34.8

Fewer wasted joules

3x the output tokens per joule of GPU energy. The same 1,280 requests finished in 11.8 minutes instead of 34.8.

+12% at 256 GB

A dial, not a cliff

Give the cache 64 GB and it works. Give it 256 GB and throughput rises another 12%. You choose the point on the curve.

1.1 s vs 49.8 s

Sessions that come back

A returning user on an Apple M4 Max got a first token in 1.1 seconds instead of 49.8. After a server restart, 0.88 seconds.

Where it runs

Measured across NVIDIA, AMD and Apple silicon.

EngineNVIDIAAMD (ROCm)Apple siliconCPU servers
vLLM 0.32MeasuredMeasured MI210Measured CPU backendSupported
vLLM + LMCacheMeasuredMeasured MI210——
SGLang 0.5.19+MeasuredMeasured MI210Measured MLX—
Lifeboat 2.2MeasuredMeasured MI210——
Storage tiersHost DRAMLocal NVMeS3-compatible object storageNetApp ONTAP

LifeboatCache also runs on data center servers such as H100, H200, B300 and others at scale.

LifeboatCache and Lifeboat

Built into Lifeboat. Ready for the engine you already run.

An optional component of Lifeboat

LifeboatCache ships with Lifeboat, our confidential-compute inference engine. Turn it on and Lifeboat gets the DRAM, NVMe and storage tiers with no extra install.

Explore Lifeboat →

A standalone plugin

If you already have vLLM or SGLang in production, LifeboatCache is a plugin for the engine you run today. No migration, no fork, no new hardware.

Two servers, one marked with the Lifeboat ring, share a stack of DRAM, NVMe and storage tiers, with KV blocks flowing down and back up.
See it on your workloads

Run the same agent benchmark on your hardware.

LifeboatCacheTest replays public agent traces against your server and reports time to first token, throughput, cache hit rate and GPU energy for plain vLLM, LMCache and LifeboatCache side by side. We will help you set it up and read the results.

$pip install lifeboatcache

All figures measured by Iterate.ai with LifeboatCache 0.1.23–0.1.28 against the same engine without offload, with the same host DRAM for every offload option and a fresh server for every run. Setups: 4x NVIDIA RTX PRO 6000 (Qwen3-235B-A22B-FP8), 1x RTX PRO 6000 (gpt-oss-20b), AMD Instinct MI210 (Qwen2.5-7B-Instruct), Apple M4 Max (Qwen3-0.6B). Method and raw results: docs.iterate.ai/lifeboatcache/benchmarks.