def METHOD_NAME(self):
    try:
        self.next_data = next(self.iter)
    except StopIteration:
        self.next_data = None
        return
    with torch.cuda.stream(self.stream):
        if isinstance(self.next_data, torch.Tensor):
            self.next_data = self.next_data.to(dtype=self.dtype, device=self.device, non_blocking=True)
        elif isinstance(self.next_data, (list, tuple)):
            self.next_data = [
                t.to(dtype=self.dtype, device=self.device, non_blocking=True) if t.is_floating_point() else t.to(device=self.device, non_blocking=True)
                for t in self.next_data
            ]