Hi,
I have the following questions about the inner workings of Accelerate. If there is an existing document answering these, please link to it.
-
When using DDP, how does Accelerate sample the data from the dataloader such that one data instance is used exactly once across all the GPUs (i.e. batches used per GPU don’t share examples)? Is there any change in this behaviour when loading from an
IterableDataset
? -
When passing the same seed to
accelerate.utils.set_seed()
function, is reproducibility guaranteed for DDP training runs? That is, is k-th batch on each GPU same across different training runs?
I am using an IterableDataset
for training in a DDP setting and want to ensure the reproducibility of the training runs. If it does not come out of the box with Accelerate, please guide me on how to achieve the same.
Thanks.