If I iterate over the dataloader that is on the gpu multiple times, will it be transfered each time to the gpu even though it might be on the gpu?

def __iter__(self):
    """Yield a batch of data after moving it to device"""
    for b in self.dl: 
        yield to_device(b, self.device)

Here each time we iterate over the dataloader, why won’t the data transfer to the gpu, even though it might be on the gpu already?