keepcalculator

06 Numbers and Powers

AI Storage: Throughput, Latency and Data Pipelines

Card No. 06·24742 · Updated · Standard formula, shown below

AI storage is the system that keeps training and inference data available to compute resources at the speed and scale they need. Throughput measures how much data it can deliver over time, latency measures how long an operation takes, and a well-designed data pipeline moves, prepares, and stores data without making storage a bottleneck.

What AI storage means

AI workloads use storage differently from ordinary document or application workloads. Training may repeatedly read large collections of images, video, text, audio, or scientific records; inference may need to fetch model weights, retrieve context, or write results with little delay. Storage can include local solid-state drives in a server, shared network storage, object storage, and temporary caches. These layers can work together rather than relying on a single device or service.

The useful measure is not simply capacity. A dataset can fit comfortably yet be too slow to feed accelerators, or a system can have high headline bandwidth but perform poorly when many small files are involved. Design therefore starts with access patterns: what data is read or written, by how many workers, in what sizes, and how often.

Throughput, latency and IOPS

Throughput is the volume of data transferred per unit of time, commonly reported in MB/s or GB/s. It matters when reading large sequential files, such as training shards, or writing large checkpoints. Latency is the time for an individual request to complete, often expressed in milliseconds or microseconds. It matters when a workload makes many small requests or needs a quick response.

IOPS means input/output operations per second: the number of read or write operations a system can handle. IOPS and throughput are related but not interchangeable. A storage system handling many tiny records can have high IOPS and modest throughput; a system streaming a few large files can achieve high throughput with fewer operations.

For illustration, reading 1,000 files of 4 KB each involves roughly 4 MB of payload, but also 1,000 file operations. If each operation requires metadata lookup and a network round trip, overhead can outweigh the bytes transferred. Combining small records into larger, efficiently readable shards can reduce that overhead, provided the pipeline still supports the needed access and recovery patterns.

Performance also depends on concurrency, file layout, caching, network capacity, and the number of storage clients. A vendor or benchmark figure is not a guarantee for a particular workload. Measure end-to-end performance with realistic data and worker counts.

How an AI data pipeline uses storage

A pipeline typically takes raw data through validation, preparation, training or inference, and output storage. Data may be ingested from sources, normalized or transformed, split into training examples, and written in a format that workers can read efficiently. During training, workers repeatedly load batches while accelerators execute computation. A checkpoint process saves model state so a run can resume after interruption; inference pipelines may load a model once and then retrieve inputs and persist results.

Each stage can create a different storage pattern:

  • Ingestion: large writes, often arriving in bursts.
  • Preparation: reads and writes of intermediate datasets, sometimes with many small files.
  • Training: repeated reads, concurrent access, and periodic large checkpoint writes.
  • Inference: model and input reads, with latency needs that depend on the service.
  • Retention: storage of source data, checkpoints, logs, and outputs according to the project’s requirements.

Keeping each stage separate can help with retries and reproducibility. For example, retaining an immutable source dataset and recording the transformations used to produce training shards makes it easier to investigate a changed result. Pipelines should also avoid sending every worker to download an identical copy at once if a shared cache or staged distribution can serve the data.

Choosing a storage design

There is no universally best storage tier. Local NVMe or other local SSD storage can provide fast access near a compute node, but may be limited in capacity and may not persist after a machine is replaced. Shared file storage supports common file-system workflows and concurrent access, but performance depends on its configuration and workload. Object storage is suited to durable, scalable collections of objects and is commonly accessed through APIs; it may not behave like a local disk, especially for repeated small operations.

Consider these factors before choosing:

  • Access pattern: sequential or random reads, small files or large shards, read-heavy or write-heavy activity.
  • Concurrency: the number of machines and workers accessing data simultaneously.
  • Data lifecycle: which data must be immediately available, retained, archived, or regenerated.
  • Consistency and recovery: what happens after failed writes, interrupted jobs, or a lost compute node.
  • Integration: whether training tools, data loaders, and pipeline components can access the chosen storage efficiently.
  • Operational constraints: capacity growth, monitoring, administration, network limits, and the total cost of storing and moving data.

A common approach is a tiered design: durable shared or object storage holds the source of record, while local or shared high-performance storage caches the working set. Caching helps only when data is reused or can be prefetched in time. If every request is unique, the cache may add complexity without avoiding much storage traffic.

Scaling without creating a bottleneck

Scaling compute does not automatically scale data delivery. If twice as many workers request data from the same constrained path, they may each receive less bandwidth or spend more time waiting. Estimate the aggregate demand: approximate bytes read per worker per second multiplied by active workers, then compare it with measured storage and network throughput. Include writes and other users sharing the system.

Practical improvements often begin with measurement rather than replacement. Track accelerator utilization alongside data-loader wait time, storage throughput, request latency, network use, and queue depth. If accelerators are idle while data is being fetched or decoded, the bottleneck may be storage, networking, data preparation, or CPU work—not necessarily the storage device alone.

  1. Profile the workload using representative data and concurrency.
  2. Identify whether time is spent waiting on storage, transferring data, decoding it, or transforming it.
  3. Reduce avoidable work, for example by removing excessive tiny-file operations or repeated preprocessing.
  4. Test batching, prefetching, caching, or sharding while checking that they do not change data semantics.
  5. Repeat measurements at the expected scale and during checkpoint or ingestion bursts.

Common problems and misconceptions

One frequent misconception is that buying a faster drive will solve every slow training run. Data may instead be limited by network bandwidth, a single-threaded loader, CPU decompression, inefficient file formats, or contention among jobs. Another is comparing peak throughput from a large sequential test with a real workload made up of random, small requests. Those results describe different conditions.

Checkpointing can also cause unexpected slowdowns: a large checkpoint written by many workers may compete with training reads or other jobs. Scheduling writes, using appropriate checkpoint intervals, and testing restore behavior can help, but the right choice depends on the cost of lost work and the available storage. Avoid treating a cache as the authoritative copy unless its durability and recovery behavior meet the project’s needs.

Finally, storage capacity and performance should be planned separately. Compression, deduplication, and data cleanup can reduce space, but may add CPU cost or affect access patterns. Confirm what the pipeline can read and how data can be restored before changing formats or removing intermediate files.

Frequently Asked Questions

What is good throughput for AI storage?
There is no single target. Required throughput depends on the data size, worker count, batch rate, and whether reads are sequential or random. Measure the workload end to end and compare delivery with the compute system’s demand.

Is throughput more important than latency?
It depends on the access pattern. Large dataset streams usually emphasize throughput; many small requests or latency-sensitive inference can depend more on request latency and IOPS. Both should be measured when both patterns occur.

Does object storage work for AI training?
It can, especially for durable datasets and large objects, but access behavior and client support matter. Frequent small reads may benefit from sharding, caching, or staging data to a more suitable working tier.

Why are GPUs idle when storage seems fast?
Peak storage speed does not prove data reaches the GPUs fast enough. Check loader wait time, network use, file-opening overhead, CPU decoding, preprocessing, and contention. Profile the whole path from storage to accelerator.

How can I estimate storage bandwidth needed?
Estimate the data each worker must consume per second and multiply by the number of concurrent workers. Then validate with a representative benchmark, allowing for metadata overhead, bursts, checkpoint writes, and other users.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →