Memory and Storage for SI

Memory and Storage for SI, Part 5: Context Memory

How big a model’s KV cache gets, why inference keeps it, and the GPU, CPU memory, SSD, and shared storage tiers that hold it once HBM fills.

On this page 6 sections

A model serving a long conversation keeps a record of every token it has already read. That record is the key-value (KV) cache, and on a long conversation it can outgrow GPU memory. NVIDIA’s Dynamo inference software moves the cache out of GPU memory to CPU RAM, local SSDs, or remote network storage, and on January 5, 2026, NVIDIA announced a storage platform built for that cache and calls that tier context memory.

Memory and Storage for SI, Part 5: the KV cache stepping down from GPU memory through host memory and an SSD to shared storage, and returning to the GPUOne large staircase of four steps that descends from left to right: GPU, host, SSD and shared storage. The GPU and host steps are neutral; the SSD and shared steps are teal because they are flash. Small teal cache blocks sit on each step, and a copper arrow carries them down from one step to the next. A copper return path runs from the last step underneath the staircase and back up to the GPU.GUIDE / MEMORY AND STORAGE FOR SI, PART 5Context that outgrows the GPUGPU · HOST · SSD · SHAREDGPUHOSTSSDSHAREDblocks return to the GPU

Part 4 showed the cache spilling from GPU memory to system memory to flash and coming back as small random reads. This part asks where the cache goes once it leaves the GPU, and what each stop costs in room and in time. How SI Knows Anything covers what the cache holds and why attention needs it.

How big the cache gets

Attention reads a key and a value for every earlier token at every layer, so the cache stores both. NVIDIA’s inference guide writes the size per token as 2 × layers × (heads × values per head) × bytes per value, where the 2 counts keys and values. Its own example is Llama 2 7B at 16-bit precision, where one sequence of 4,096 tokens across 32 layers holds about 2GB.

How big the cache gets

One long Llama 3 405B conversation holds about 66GB of cache

Derived: NVIDIA’s per-token formula with Llama 3’s shape

Two panels. Top: NVIDIA's per-token formula as five boxes multiplied together for Llama 3 405B: 2 for keys and values, times 126 layers, times 8 key-value heads, times 128 values per head, times 2 bytes, equals 516KB per token. Under it, 516KB times 128,000 tokens is about 66GB for one conversation. Bottom: one wide box for the 288GB of HBM4 on a Rubin GPU, filled to scale by four equal 66GB blocks with a small dashed leftover sliver at the right end, which is too small for a fifth. Four conversations fit in it, 288 divided by 66 is 4.4.01 THE FORMULA2keys andvalues×126layers×8key-valueheads×128valuesper head×2bytes=516KBper token× 128,000 tokens = about 66GB per conversation02 ONE RUBIN GPU288GB HBM466GB66GB66GB66GBfour conversations fit in it (288 / 66 = 4.4)the dashed sliver is too small for a fifthCache for one conversationHBM4Left over
Figure 5.1 · Four of these conversations fit in one Rubin GPU’s HBM4, with no room for a fifth. Source: Meta, The Llama 3 Herd of Models, Table 3; NVIDIA, Mastering LLM Techniques: Inference Optimization; NVIDIA, Inside NVIDIA Rubin GPU Architecture.

Each model’s shape sets its cost per token. Kwon and colleagues’ PagedAttention paper works it out for OPT-13B as 2 × 5,120 × 40 × 2 bytes, which is 800KB per token, so one request at OPT’s 2,048-token limit can take 1.6GB.

Newer models shrink that by sharing keys and values among heads. Llama 3 uses grouped query attention (GQA) with 8 key-value heads to cut the cache during decoding, and Llama 3 405B has 128 query heads over 126 layers, with a width of 16,384. Split across the 128 heads, that is 128 values per head. Put through NVIDIA’s formula with the 8 shared heads, that is 2 × 126 × 8 × 128 × 2 = 516,096 bytes, about 516KB per token. A conversation of 128,000 tokens, close to the model’s 128K context window, holds about 66GB. Without the shared heads it would be 16 times larger.

NVIDIA’s Rubin GPU has 288GB of HBM4, enough in NVIDIA’s account for larger context windows without KV cache offload. At 66GB each, four of those long conversations fit in it (288 / 66 = 4.4), with no room for a fifth, before any of the model’s weights are counted. The cache grows linearly with batch size and sequence length, so a server that holds more conversations, or longer ones, runs out of HBM first.

Keeping it or computing it again

The cache is built during prefill. That first pass over a prompt computes keys and values for every token in it. When GPU memory runs out, NVIDIA names three ways out, which are to evict part of the cache and pay for recomputation, cap the prompt length, or add GPUs. Offloading is a fourth. In long sessions and multi-turn conversations it keeps the shared prefix of the prompt, so the next turn skips that part of prefill and the first token comes back sooner.

Keeping it or computing it again

A stored cache lets the next turn skip most of prefill

Schematic of the second turn of one conversation

A schematic of the second turn of one conversation, drawn as two time lines with no values. On the left, a thin copper arrow runs from a box for the turn-1 cache down to a box for a lower tier, showing the cache stored after the first turn. Row A, Recompute: a long prefill bar, then a decode bar, and the first token appears only when prefill ends. Row B, Reuse: a short load-cache bar, filled from the lower tier by a dashed copper arrow, then the same decode bar. The first token on row B appears much earlier, so a stored cache lets the next turn skip most of prefill.01 TURN TWO OF ONE CONVERSATIONTurn 1 cachestoredLower tierRecomputeprefilldecodeReuseload cachedecodefirst token arrives earlierfirst tokenfirst tokentimePrefillLoad cacheDecodeFirst tokenCache path
Figure 5.2 · Illustrative values: bar lengths show the order of steps and no measured times.

In a test NVIDIA reported with Vast Data, a DGX H100 system running Qwen3-32B with a 130K-token prompt loaded its precomputed cache from storage instead of recomputing it, which shortened the time to first token (TTFT). No figure for the saving was published.

Serving systems also waste the memory they have. Profiling existing systems, Kwon’s team found that only 20.4% to 38.2% of KV cache memory held actual token states, lost to room reserved for the longest answer a request might give and to fragmentation. Their vLLM engine stores the cache in fixed blocks the way an operating system pages memory, and it serves popular models at 2 to 4x the throughput of FasterTransformer and Orca at the same latency.

Reuse across requests pays more. Its authors report that, run with vLLM, LMCache reaches up to 15x the throughput on multi-round question answering and document analysis by storing caches and loading them back. Mooncake serves Moonshot AI’s Kimi assistant and is built around the cache, and its authors write that Kimi handles 75% more requests under real workloads with it.

Four tiers, G1 to G4

Dynamo’s KV Block Manager (KVBM) names the places a cache block can sit, and its design document numbers them G1 to G4. Other serving software uses the same ladder under other names: LMCache stores caches in CPU memory, local disk, remote disk, and Redis, and Mooncake pools the CPU, DRAM, and SSD resources of the GPU cluster into one cache.

Four tiers, G1 to G4

KVBM keeps cache blocks on four tiers, from HBM to shared storage

Schematic; box widths show capacity growing downward, not to scale

A vertical ladder of four stacked boxes that widen as they go down. G1, GPU memory (HBM), 288GB per Rubin GPU, is the narrowest and neutral. Between G1 and G2 a dashed box marks fabric-attached memory, the Astera Leo X, which is not on KVBM's list. G2, host CPU memory, up to 1.5TB of LPDDR5X per Vera socket, is neutral. G3, local NVMe SSDs, for example a 25.6TB CM9, and G4, remote or shared storage an opaque blob store reached through NIXL, are teal because they are flash. A copper arrow on the left runs down beside every tier and is labeled offload; a copper arrow on the right runs up and is labeled onboard.offloadonboardG1 GPU memory (HBM)288GB per Rubin GPUG2 Host CPU memoryup to 1.5TB LPDDR5X per Vera socketG3 Local NVMe SSDse.g. a 25.6TB CM9G4 Remote or shared storagean opaque blob store, reached through NIXLfabric-attached memory, outside KVBM’s list (Astera Leo X)Memory tierStorage tierFabric memoryBlock path
Figure 5.3 · Attention reads only from G1, so every block on a lower tier has to come back up before the model can use it. Source: NVIDIA Dynamo KVBM design; NVIDIA Rubin and Vera CPU blogs; StorageReview on Kioxia CM9; Astera Labs.

G1 is GPU memory, the HBM where attention reads the cache. Attention reads from no other tier, so every block further down has to come back up before the model can use it. A Rubin GPU’s 288GB is the size of this tier.

G2 is host memory, a pool of pinned CPU memory that takes blocks offloaded from the GPU, sends them back, and offloads blocks on to disk. NVIDIA’s Vera CPU platforms carry up to 1.5TB of LPDDR5X per socket, several times what sits on one GPU.

G3 is local NVMe SSDs in the same server. Kioxia is pitching its CM9 drive for this job, in StorageReview’s report on Kioxia’s storage for SI: a 25.6TB E3.S model built on triple-level cell (TLC) flash and rated at 3 drive writes per day (DWPD), aimed at KV cache capacity in inference systems.

G4 is remote or cloud storage, which KVBM treats as an opaque blob store reached through NIXL.

Memory attached over a fabric is another option, outside KVBM’s list. In Astera Labs’ own figures, its Leo X-Series memory controllers, paired with its Scorpio X-Series switches, put memory on the GPUs’ scale-up fabric for long-context, KV-cache-heavy work, with up to 62% faster TTFT and up to 22% more tokens per second, against a baseline the release does not name. Flash behind a DRAM front tier on CXL is the other route, and Part 2 covers it.

How a block moves between tiers

KVBM moves the cache in blocks, each holding a fixed number of tokens for every layer, and the tiers form a chain. The GPU pool offloads to host memory, host memory offloads to the local disk pool, and a block comes back to the GPU either from host memory or straight from disk. The disk-to-GPU path skips a copy through host memory. Writes to a local disk go through NIXL, NVIDIA’s transfer library, as ordinary POSIX file writes, and over GPUDirect Storage when it is available, and the G4 tier is reached through NIXL as well.

How a block moves between tiers

Blocks go down by offload and come back by onboarding

Schematic; the bold path is the disk-to-GPU shortcut

Four boxes joined by copper arrows. The GPU pool (G1) is at left, the host pool (G2) at top center, the disk pool (G3) at bottom center and remote storage (G4) at top right. The GPU pool offloads to the host pool, and the host pool offloads to the disk pool. A block comes back to the GPU by onboarding either from the host pool or straight from the disk pool; the disk-to-GPU arrow is drawn bold and is labeled onboard, NIXL, GDS when available. The host pool reaches remote storage through NIXL. A side panel, measured by vendors, gives two rates: 35GB/s to one H100 in a Vast Data test of the GDS plugin, and up to 270GB/s across eight H100s in a WEKA test.GPU pool (G1)Host pool (G2)Disk pool (G3)Remote (G4)offloadonboardoffloadonboard, NIXL, GDS when availableNIXLMEASURED BY VENDORS35GB/sto one H100(Vast, GDS plugin)up to 270GB/sacross eight H100s(WEKA)Memory poolStorage poolBlock path
Figure 5.4 · The disk-to-GPU path skips a copy through host memory, and both rates at right are vendor tests of their own systems. Source: NVIDIA Dynamo KVBM design; NVIDIA, How to Reduce KV Cache Bottlenecks with NVIDIA Dynamo.

Storage makers have measured the paths. In a Vast Data test NVIDIA reported, the GPUDirect Storage plugin in Dynamo moved the cache at 35GB/s to a single NVIDIA H100 GPU, enough to keep that GPU busy. WEKA’s lab test on a DGX system with eight H100 GPUs read the cache from its storage at up to 270GB/s across the eight. Both are vendor tests of their own systems.

Those figures are bandwidth, and bandwidth is only half of it. When cache data comes back as scattered random reads, StorageReview reports that each read is well under a kilobyte, so the number of reads per second a drive can serve sets the pace before its GB/s rating does. That is the problem Part 4 follows into the drives built for it.

Context memory storage: a tier of its own

At CES in January 2026 NVIDIA gave the shared tier its own product line. Its release argues that a KV cache cannot be kept on GPUs long term without becoming a bottleneck for real-time inference, and it introduces the NVIDIA Inference Context Memory Storage Platform, run by the BlueField-4 data processing unit (DPU). NVIDIA says the platform shares context across nodes at high speed, raises tokens per second by up to 5x, and gives up to 5x greater power efficiency than traditional storage. Storage makers building on BlueField-4 were to have products in the second half of 2026.

Context memory storage: a tier of its own

NVIDIA puts the shared cache on its own BlueField-4 storage rack

Schematic; both claims are NVIDIA’s, against traditional storage

A left-to-right schematic. At left, two neutral rack outlines with stacked trays are labeled Rubin GPU racks. In the middle, a dashed band is labeled Spectrum-X Ethernet. At right, a teal rack with shelves of drives is labeled BlueField-4 STX, CMX context tier. Two copper arrows cross the band, one in each direction, labeled KV cache blocks. Below, two callouts carry NVIDIA's claims: up to 5x tokens per second, and up to 5x power efficiency over traditional storage.Rubin GPU racksSpectrum-X EthernetKV cache blocksBlueField-4 STX,CMX context tierup to 5x tokens per second(NVIDIA)up to 5x power efficiency overtraditional storage (NVIDIA)GPU racksDrive shelvesNetwork fabricKV cache blocks
Figure 5.5 · The claims compare a purpose-built tier with general-purpose storage, not with a server’s own memory or SSDs. Source: NVIDIA newsroom, BlueField-4 release (January 5, 2026) and Vera Rubin release; NVIDIA blog, As AI Increases Demands on Memory, Storage Steps Up.

NVIDIA’s BlueField-4 STX rack gives the hardware a rack of its own and serves as a shared storage layer for KV cache data across a cluster, and its DOCA Memos software handles the cache in the storage processor and is said to raise inference throughput by up to 5x over general-purpose storage. NVIDIA’s FMS 2026 post names a context tier built on STX called NVIDIA CMX Context Memory Storage.

Read all three 5x figures against the baselines NVIDIA names, which are traditional storage for the platform and general-purpose storage for STX. They say what a purpose-built tier gains over a general one. They don’t say how CMX compares with a server that keeps the same cache in its own host memory or on its own SSDs, and none of the sources cited here makes that comparison.

What to watch

The first thing to check is hardware on sale. NVIDIA’s date for BlueField-4 platforms from storage makers was the second half of 2026, and a CMX tier measured in a customer’s cluster, with its TTFT and its power, is what would turn the 5x claims into a result.

What to watch

The context tier’s dates: announced, shown as CMX, due

Ordered by date, not to scale

A horizontal timeline of four markers on a copper line, not to scale, with cards alternating above and below it. Filled markers have happened: January 5, 2026, the Inference Context Memory Storage Platform announced; and FMS 2026, CMX Context Memory Storage, a context tier built on STX. A hollow marker is due: the second half of 2026, BlueField-4 platforms due from storage makers. A final dashed open marker is waiting on a result: next, a CMX tier measured in a customer cluster.January 5, 2026Inference Context MemoryStorage Platform announcedFMS 2026CMX Context Memory Storage,a context tier built on STXSecond half of 2026BlueField-4 platforms duefrom storage makersNext:a CMX tier measured ina customer clusterHappenedDueOpenTime
Figure 5.6 · Two of these have happened, one is due, and the last needs a measurement in a customer’s cluster. Source: NVIDIA newsroom, BlueField-4 release (January 5, 2026); NVIDIA blog, FMS 2026 post.

The second is the pull between the two ends of the ladder. Rubin’s larger HBM keeps more conversations on the GPU without offload, while the context tier exists because some caches still don’t fit. Which one a deployment leans on depends on how long its contexts run and how often they come back, and the arithmetic in the first section gives the sizes to start from. My read is that long agent sessions keep the shared tier busy because at 66GB per conversation, only a few fit in HBM at once, and each one that returns needs its cache back from somewhere.

That flash has to come from somewhere. The series turns next to the drives built for capacity rather than speed.

KEEP GOING / NEXT CHAPTERContinue to Part 6

Sources

Primary is the original paper, standard or datasheet. Secondary is a review, a vendor summary or a news report. Measured is my own test data.

Show all 15 sources, 13 primary