Open Calculator

AI Training Dataset & Checkpoint Storage: Parallel Byte-Range Reads, Throughput Limits, and Egress Control

Published August 02, 2026 · Updated October 19, 2026 · Distributed GPU Storage I/O

Modern AI infrastructure separates storage persistence from GPU compute. Because dedicated H100, H200, and B200 GPU clusters are provisioned opportunistically across specialist GPU clouds (CoreWeave, Lambda, Together, RunPod) alongside hyperscaler spot instances, storing multi-terabyte training datasets and model checkpoints inside a traditional AWS S3 bucket triggers severe cross-cloud egress bills whenever a training job executes outside AWS.

This specification details the exact storage mathematics of full-parameter and LoRA checkpoints, how to saturate 100 Gbps NICs using parallel byte-range object reads (`s5cmd` and `WebDataset`), and how to structure zero-egress multi-cloud training storage.

Model Checkpoint Footprint Mathematics (Weights vs. AdamW Optimizer States)

During distributed training (PyTorch FSDP or DeepSpeed ZeRO), a full training checkpoint does not merely save the 16-bit (`BF16`) inference weights; it must persist the 32-bit master weights, `FP32` first-order momentum ($m$), and `FP32` second-order variance ($v$) states required by the AdamW optimizer to resume training without loss spikes:

// Bytes per Parameter for Full Mixed-Precision (BF16 + FP32 AdamW) Checkpoint
BF16_Model_Weights = 2 Bytes × Parameters (P)
FP32_Master_Copy = 4 Bytes × Parameters (P)
FP32_Adam_States = 8 Bytes × Parameters (P) // Momentum (4B) + Variance (4B)
Total_Full_Checkpoint_Size = 14 Bytes × Parameters (P)
Model Scale BF16 Inference Weights Full Training Checkpoint (14B/P) Storage for 20 Saved Checkpoints Daily Write Volume (Every 2h)
7B / 8B Parameters 16.0 GB 112.0 GB 2.24 TB 1.34 TB / day
14B Parameters 28.0 GB 196.0 GB 3.92 TB 2.35 TB / day
32B Parameters 64.0 GB 448.0 GB 8.96 TB 5.38 TB / day
70B Parameters 140.0 GB 980.0 GB (~1.0 TB) 19.60 TB 11.76 TB / day
405B Parameters 810.0 GB 5,670.0 GB (5.67 TB) 113.40 TB 68.04 TB / day

Retention Rule: Never retain full 14-byte-per-parameter AdamW optimizer states for historical evaluation checkpoints. Persist the full 980 GB optimizer state strictly for the latest 2 rolling recovery steps (in case of hardware node failure), and strip optimizer states from historical milestone checkpoints so only the 140 GB `BF16` `.safetensors` inference weights are archived—cutting checkpoint storage costs by **85.7%**.

The Multi-Cloud GPU Training Egress Trap

Suppose a machine learning team stores a **40 TB multimodal training dataset** inside an AWS S3 bucket (`us-east-1`), and spins up a 16-node H100 cluster on an external GPU cloud (such as CoreWeave, Lambda, or GCP) where each node streams shards or syncs datasets locally across 5 training runs per month ($200\text{ TB}$ total outbound transfer):

// Monthly Storage + Cross-Cloud Training Egress Comparison (40 TB Stored / 200 TB Read)
AWS S3 Storage (40,000 GB × $0.023): $920.00
AWS S3 Outbound Internet Egress (200,000 GB Tiered): $13,791.00
Total Monthly AWS S3 Hub Cost: $14,711.00 / month
// Zero-Egress Hub: Cloudflare R2 (40 TB Stored / 200 TB Read)
Cloudflare R2 Storage (40,000 GB × $0.015): $600.00
Cloudflare R2 Outbound Egress (200,000 GB × $0.00): $0.00
Total Monthly Cloudflare R2 Hub Cost: $600.00 / month (95.9% Savings)

Preventing GPU Starvation: WebDataset `.tar` Shards vs. Individual Files

An 8×H100 node training a vision-language model consumes roughly **12,000 to 24,000 image-text pairs per second**. If your dataset is stored in object storage as 500 million individual `50 KB` `.jpg` and `.json` files, your PyTorch `DataLoader` will spend 85% of wall-clock time waiting on HTTP TLS handshakes and `GetObject` TTFB latency—leaving your $25/hour GPU cluster idling at 15% compute utilization while racking up $200 per epoch in Class B `GET` fees.

The WebDataset Sequential Shard Pattern: Package training samples into sequential POSIX `.tar` archives (`shard-000000.tar` to `shard-009999.tar`), each sized between **256 MB and 1.0 GB**:

import webdataset as wds
from torch.utils.data import DataLoader

# Stream 512MB sequential TAR shards directly from zero-egress object storage
dataset_url = "https://datasets.internal-r2.daktan.com/laion-filtered/shard-{000000..004095}.tar"

dataset = (
    wds.WebDataset(dataset_url, shardshuffle=True)
    .shuffle(5000)
    .decode("pil")
    .to_tuple("jpg", "json")
)

loader = DataLoader(dataset, batch_size=256, num_workers=16, pin_memory=True)

Because each worker streams a contiguous 512 MB HTTP response sequentially, TCP congestion windows scale to full line rate (10–25 Gbps per stream) and S3/R2 Class B `GET` request volume drops by **10,000x**.

Saturating High-Bandwidth NICs with `s5cmd` & Asynchronous Checkpointing

When pulling a 140 GB model checkpoint (`29 × 4.8 GB .safetensors` shards) onto local RAID-0 NVMe scratch disks (`/mnt/local-nvme`) at container startup, standard Python `aws s3 cp` or single-threaded `boto3` scripts bottleneck due to Python GIL contention. Below is our measured cold-start download benchmark across three CLI tools on an 8×H100 node with dual 100 Gbps NICs:

1. Standard `aws s3 cp --recursive`: 388 MB/s average · 360.8 seconds (6.0 minutes of idle GPUs)
2. `rclone copy --transfers 32`: 2,140 MB/s average · 65.4 seconds
3. `s5cmd v2.2.2 --numworkers 256 --concurrency 32`: 5,480 MB/s (43.8 Gbps) · 25.5 seconds!
# Pull 140GB Safetensors checkpoint to local NVMe scratch at 40+ Gbps
s5cmd --endpoint-url https://${ACCOUNT_ID}.r2.cloudflarestorage.com \
  --numworkers 256 \
  cp --concurrency 32 --part-size 64 \
  "s3://model-checkpoints/llama3-70b/step-48000/*.safetensors" \
  /mnt/local-nvme/checkpoints/step-48000/

Similarly, when saving checkpoints during training, use **`torch.distributed.checkpoint.async_save`**. This copies GPU HBM tensors into pinned host CPU RAM in under 2 seconds (allowing GPUs to immediately resume the next training step) while background CPU threads stream the 980 GB checkpoint to object storage asynchronously.

Benchmark Your AI Dataset & Checkpoint TCO

Select the "AI Dataset & Checkpoints" preset on the Daktan Calculator to compare S3 vs R2 vs B2 costs.

Open Calculator →