CUDA operations are executed asynchronously, so that you would need to synchronize the code before starting and stopping the timers via torch.cuda.synchronize().
Since you are not synchronizing the code at the moment, the returned times will accumulate all previously enqueued kernels until a synchronization is forced.
Could you add the synchronizations and rerun your profiling, please?