I get a transfer time of approx. 700ms for an output of [1, 64, 2048, 1536] on my laptop, which shouldn’t have the fastest GPU connection compared to a server or workstation using:
x = torch.randn(1, 64, 2048, 1536, device='cuda')
nb_iters = 100

# warmup
for _ in range(10):
    y = x.cpu()

torch.cuda.synchronize()
t0 = time.time()
for _ in range(nb_iters):
    y = x.cpu()
torch.cuda.synchronize()
t1 = time.time()

print('{:.3f}ms'.format((t1 - t0)/nb_iters*1000))