Seems like if I changed as follows,
x = chunks[i].pin_memory().to(device, non_blocking=True) # device: cuda:0

if I need to assess these codes multiple time for one epoch, from 2nd time, the transfer time is greatly reduced, but why is it?