Keep GPUs fed: fix a training job that waits on its data
A training job's GPUs sit idle a third of the time waiting for the next batch. How do you prove the input pipeline is the bottleneck, and then fix it? Cover profiling, parallel data loading and prefetching, moving decoding and tokenization offline, storage formats and sharding, pinned memory and overlapping host-to-device copies with compute, and how you would know the GPUs are now the limit.
No answer yet. Write the first one; the best answer gets endorsed.
