Skip to content
GPU data loading

Feed your GPUs from object storage.

Spiral runs one query plan across client and server, CPU and GPU, from object storage to GPU memory.

Your GPUs can run in a different cloud or region from your data.

At line rate, a staged copy costs more than it saves.

Spiral reads object storage at 94.4 Gbps on a 100 Gbps link, fast enough to keep the GPUs fed straight from the bucket. A staged copy adds a staging job before every run, and it goes stale at the next commit.

Spiral blog · Sep 30, 2026

A run resumes with the samples it would have read.

  • Yes: The same batch at every step

    A seed and table versions fix each step’s batch, whatever the number of GPUs.

    Spiral docs · PyTorch

  • No: A loader for each project

    Each new project used to start with its own loader and shuffle job. A recipe now names the mix, and TrainLoader plans the reads, the decode, and the order.

  • Yes: A new mix in the next epoch

    A change to the mix is a code change. Spiral rewrites no data.

  • No: Shard files and staged copies

    Tar and TFRecord shards exist because object storage was too slow to read directly. At line rate the job reads the table, so nothing gets resharded or staged on local disk.