batch_load_time should give you the latency of the DataLoader, so it should approximate zero, if the DataLoader is fast enough to preload the next batches.
However, epoch_time and batch_time will not give you an accurate result without synchronizations, as the GPU might be busy while the host code stops the timer.
To get valid profiles, you would have to add synchronizations.