How do you optimise data loading for training on very large datasets?
Updated Aug 1, 2026
Short answer
Match the input mode to the access pattern (FastFile for large sequential reads, FSx for Lustre for repeated random access), size files in the hundreds of megabytes, shard across instances, and overlap loading with compute so GPUs are never waiting.
Deep explanation
On large training runs the GPU is frequently idle waiting for data, and teams respond by buying more GPUs — which makes utilisation worse. Diagnose before scaling.
Input modes and when each wins
| Mode | Behaviour | Best for | |
|---|---|---|---|
| File | Full copy to EBS before start | Small datasets, repeated random access | |
| FastFile | Streamed on demand, POSIX-like | Large datasets read mostly sequentially | |
| Pipe | Streamed as a Unix pipe | Legacy; superseded by FastFile | |
| FSx for Lustre | Parallel filesystem backed by S3 | Many epochs with heavy random access, multi-node | … |
Unlock with a Pro subscription to view this section.
View pricingReal-world example
No real-world example available yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProCommon mistakes
No common mistakes listed yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProFollow-up questions
No follow-up questions available yet.
Unlock with a Pro subscription to view this section.
Upgrade to Pro