Optimize a distributed training loop in PyTorch to handle large-scale multi-modal datasets across multiple GPUs.