Mount the dataset. Skip the bucket.

Your data stays on the machine that already holds it.

By Marius-Florin Cristian · 18 August 2026

Mount a workstation or lab NAS on the rented GPU box. Shards read on demand. Checkpoints write back to the workstation during the run.

Training starts on the data where it already lives. Storage stays on hardware you own.

What the numbers on this page are. Filesystem measurements: metadata cost, changed-region transfer, session stability. Dataloader throughput, epoch times and checkpoint figures are being recorded now. They go on this page when they exist, and the form at the bottom sends them to you.

Suited to

Inspect and sample

Shard listing, a few examples, label distribution, a sanity pass. Reads pull what they read.

Start the first pass early

Begin while a copy would still be running. Large sequential shard reads suit it best.

Storage you already own

The dataset stays on the machine that holds it. Bucket storage bills monthly for a duplicate.

Checkpoints go home

Write into the mount and each checkpoint reaches the workstation as it is written.

Then stage locally

For many epochs of random access at full speed, copy to the instance NVMe. That stays the right answer.

Measured, on the filesystem

MeasurementResultConditions
10,000 file directory usable on the peer 116 ms Loopback, metadata only, about 73 bytes per file
Re-read after a small change 18.56 MB for a 2 MB change in a 1 GB file Loopback, byte exact by sha256, floor about 16 MB
Continuous session 102 of 102 cycles byte exact, 0 reconnects 17 hours across two runs, wide area, bridged

The metadata figure matters for a shard directory: the listing arrives first, content follows on read. The change based figure describes the filesystem, and a checkpoint benchmark is a separate measurement.

Usage

A standard file based loader takes the mount with no special client:

ls ~/KeibiDrop/Mount/datasets/imagenet-wds/ | head
python -c "import webdataset as wds; \
  ds = wds.WebDataset('~/KeibiDrop/Mount/datasets/imagenet-wds/train-{0000..1023}.tar')"

Checkpoints go back the same way:

torch.save(state, "~/KeibiDrop/Mount/runs/exp-14/ckpt-step-2000.pt")

The kd command prints one JSON line per call, so a script or an agent can drive mounts and transfers directly.

Limits

Common questions

Should I train many epochs off the mount?

Stage to local NVMe for that. The mount earns its place on inspection, the first pass, and checkpoints.

Is it cheaper than object storage?

Storage costs you zero, because the dataset stays on hardware you own. A bucket bills monthly for a second copy of the same data.

Does it work with WebDataset shards?

Yes. The mount is a normal path and large sequential shard reads suit it.

Can an agent drive it?

Yes. kd prints one JSON line per command.

Which measurement would decide it for you?

We are choosing what to benchmark first: dataloader throughput on shards, checkpoint write back during a run, or time to first batch against an upload. Mail marius@keibisoft.com with the one that decides it for you.

A form for this arrives once the endpoint is live.

Related

Use cases · The kd agent CLI · Eager metadata at 100,000 files