Hi,
The timing associated with .cuda() operations can be misleading.
CUDA api is asynchronous and calling .cuda() is one of the sync point. This means that if you do something GPU intensive just before, it will appear like you did it during the .cuda() call.
You should run your code with CUDA_LAUNCH_BLOCKING=1 when measuring cpu runtime of gpu operations.