← All posts
AI Infrastructure · Storage Systems · NAND Flash

NAND Flash Is the Invisible Backbone of Every AI Cluster

Published · 7 min read

The GPU gets the credit. The SSD does the lifting. A systems essay on the five roles NAND flash plays in modern AI training and inference infrastructure — from checkpoint absorption to KV-cache offloading.

By Manish KL ~16 min read Technical Essay
Abstract

AI infrastructure conversations center on GPUs, HBM, and interconnects. But behind every training run and every inference deployment, NAND flash is doing structural work that determines whether the expensive compute actually stays utilized. Checkpoint writes that don't stall the training loop, KV-cache pages offloaded to keep HBM within budget, weight staging that preloads the next model before the current one finishes, dataset hydration that feeds the first epoch without network stalls — all of these depend on local NVMe flash performing in a regime that consumer SSDs were never designed for. This essay maps the five critical roles that NAND plays in AI clusters and examines why the storage tier is increasingly the binding constraint on GPU utilization.

15.4 TB
local NVMe per DGX GB200 compute tray (4× 3.84 TB E1.S)
~14 GB/s
sustained sequential write bandwidth per node (RAID-0)
256 TB
Samsung enterprise SSD capacity available in 2026 (Gen 5)
100M+
IOPS target for next-gen AI-optimized SSD controllers

The five roles of NAND in an AI cluster

NAND flash is not "storage" in the traditional sense of a place to park files. In an AI cluster, it plays five distinct roles — each with different performance requirements, access patterns, and failure consequences.

Five Roles of NAND Flash in AI Infrastructure 1. CHECKPOINT massive sequential writes absorb state during training write-dominant, bursty 100s of GB per save 2. KV OFFLOAD extend KV cache beyond HBM page-granularity random I/O read-heavy, latency-critical IOPS-limited, not BW 3. WEIGHT STAGING preload next model / LoRA sequential read into DRAM/HBM read-dominant, predictable BW-limited, scheduled 4. DATASET HYDRATION local cache of training data avoid network stalls for epoch 1 read-heavy, sequential + random TB-scale, prefetchable 5. SWAP/SPILL activation offload gradient checkpointing mixed R/W, latency-tolerant endurance-sensitive The AI Memory Hierarchy (2026) HBM3e (80–192 GB) Host DDR5 (0.5–2 TB) Local NVMe (15–60 TB) Networked Flash (PB-scale) Object/Cold (EB-scale) ← faster, smaller, costlier cheaper, larger, slower →
Figure 1. The five roles of NAND in AI clusters, mapped to the full memory hierarchy. Local NVMe sits in the critical middle tier — faster than networked storage, larger than host DRAM, and the only tier that touches all five roles simultaneously.

Role 1: Checkpoint absorption

Training large models requires frequent checkpoints — saving the full model state (weights, optimizer state, learning rate schedules) to durable storage. For a 405B parameter model at fp16, a single checkpoint is approximately 810 GB. At fp32 optimizer state, the full checkpoint can exceed 3.2 TB.

The critical metric is not capacity — it is absorption bandwidth. The checkpoint must be written fast enough that the training loop does not stall waiting for storage. On a DGX GB200 compute tray with 4× 3.84 TB E1.S NVMe drives in RAID-0, the sustained sequential write bandwidth is approximately 14 GB/s. A 3.2 TB checkpoint takes ~230 seconds to dump to local flash — during which the GPUs can continue training asynchronously if the checkpoint pipeline is properly staged.

If local flash is too slow, the checkpoint blocks the training loop. Every second of GPU idle time at scale costs real money — on an H100 cluster with 1,024 GPUs, one minute of checkpoint stall costs approximately $500–800 in wasted compute. The SSD's write bandwidth directly determines the checkpoint tax.

The economics: A single checkpoint stall on a 1,024-GPU cluster costs ~$500–800/minute in wasted compute. Local NVMe with 14 GB/s write bandwidth absorbs a 3.2 TB checkpoint in ~4 minutes. A 6 GB/s legacy SSD would take ~9 minutes — doubling the stall cost per checkpoint.

Role 2: KV-cache offloading

During inference, the KV cache grows linearly with sequence length. A single 1M-token context at fp16 requires approximately 15 GB of KV memory — more than the entire HBM capacity of many accelerators. When HBM is exhausted, KV pages must be offloaded to a slower tier.

Host DRAM is the first offload target (~64 GB/s via PCIe 5.0). But host DRAM is limited to 0.5–2 TB per node and is shared with the CPU's own workload. Local NVMe becomes the second tier: slower (~7 GB/s sequential, lower for random), but with 15–60 TB of capacity — enough to hold KV caches for hundreds of concurrent long-context requests.

The access pattern for KV offload is fundamentally different from checkpointing. Checkpoints are large sequential writes. KV offload is page-granularity random I/O: individual 4K–64K pages promoted on demand, demoted when capacity pressure exceeds a threshold. This is an IOPS-limited workload, not a bandwidth-limited one. The SSD's random 4K read IOPS — not its sequential bandwidth — determines KV-offload latency.

Role 3: Weight staging and model switching

Inference fleets serve multiple models. Switching between models requires loading new weights into HBM — a process that takes seconds to minutes depending on model size and storage bandwidth. Local NVMe serves as a weight staging area: the next model's weights are pre-fetched from networked storage to local flash, so that the model switch can proceed at NVMe speed rather than network speed.

For a 70B model at fp16 (~140 GB), loading from local NVMe at 7 GB/s takes ~20 seconds. Loading from a 25 Gbps network share would take ~45 seconds. The NVMe staging layer cuts model-switch latency by more than half — and for LoRA adapter hot-swapping (where the adapter is 0.5–2 GB), the switch is nearly instantaneous from local flash.

Role 4: Dataset hydration

Training clusters begin each job by loading datasets from networked storage. For large training runs (multi-TB datasets), this "hydration" phase can take hours if the data must be streamed over the network. Local NVMe serves as a dataset cache: the first epoch reads from the network and writes to local flash simultaneously, so subsequent epochs read entirely from local NVMe at sequential bandwidth.

What current hardware looks like

PlatformLocal NVMe ConfigTotal CapacityForm FactorSequential Write BW
DGX GB200 (compute tray)4× 3.84 TB E1.S15.4 TBE1.S (hot-swap)~14 GB/s (RAID-0)
DGX H1008× 3.84 TB U.230.7 TBU.2 NVMe~28 GB/s (RAID-0)
Custom cloud (2026)4–8× 7.68 TB E3.S30–60 TBE3.S (liquid-cooled)~28–56 GB/s
Samsung PM1763 (2026)Single driveUp to 256 TB (Gen 5)E3.S~14 GB/s

The endurance problem

AI workloads are unusually harsh on NAND endurance. Checkpoint saves generate sustained sequential writes at maximum bandwidth. KV offloading generates random writes at page granularity. Activation spilling creates high-frequency small writes. A single DGX node running continuous training can write 50–100 TB/day to its local flash — hitting the drive's rated endurance (typically 1–3 DWPD for enterprise TLC) within months rather than years.

This is why AI-optimized SSDs increasingly use high-endurance TLC or even SLC-mode caching for the write-hot partition, while using standard TLC or QLC for the read-heavy weight-staging and dataset partitions. The workload is not "enterprise mixed" — it is a bimodal mix of extremely write-heavy (checkpoints) and extremely read-heavy (KV offload, weight loading) access patterns that conventional SSD firmware is not optimized for.

The wear cliff: At 50 TB/day write volume, a 3.84 TB drive rated for 1 DWPD reaches its endurance limit in ~28 days. AI cluster operators report replacing SSDs quarterly — a maintenance cost that is rarely accounted for in TCO models focused on GPU amortization.

Why "just use the network" doesn't work

The obvious question is: why not skip local flash entirely and use a high-performance networked file system (VAST, Weka, GPFS) for everything? The answer is latency variance. Networked storage adds switch hops, congestion, and tail-latency uncertainty that local NVMe does not. For checkpoint absorption, network storage must compete with training data traffic on the same fabric. For KV offload, the 200–500 μs round-trip to networked flash (vs. 50–100 μs to local NVMe) directly increases token generation latency.

Local flash is not a replacement for networked storage — it is a latency-bounded staging layer that absorbs the spiky, latency-sensitive I/O that the network cannot reliably serve under contention.

The GPU cluster's effective utilization is not determined by peak FLOPS. It is determined by the slowest data path — and increasingly, that path runs through the SSD.