Thanks for the code. You are not synchronizing before each timer, so I would assume your profile might be still wrong.
Synchronize before each timer via:
torch.cuda.synchronize()
tX = time.perf_counter()