I am wondering which of the following codes in PyTorch work faster:
my_tensor.cuda().squeeze() vs. my_tensor.squeeze().cuda()
Check with the code:
time_start_vocoder = time.perf_counter()
a = my_tensor.cuda().squeeze()
time_elapsed_test = (time.perf_counter() - time_start_vocoder)
print('a time=',time_elapsed_test)
time_start_vocoder = time.perf_counter()
b = my_tensor.squeeze().cuda()
print('b time=',time_elapsed_test)
Where
my_tensor.shape = torch.Size([1, a_large_number])
Result:
Run 1:
a time= 0.00013689976185560226
b time= 9.429734200239182e-05
Run 2:
a time= 0.0001775706186890602
b time= 0.00010665040463209152
Run 3:
a time= 0.0001584356650710106
b time= 6.485264748334885e-05
Swap the order of a and b in code:
Run 1:
b time= 0.0001363120973110199
a time= 0.00011534709483385086
Run 2:
b time= 0.00021496228873729706
a time= 7.021520286798477e-05
Run 3:
b time= 0.00020176637917757034
a time= 6.876792758703232e-05
Conclusion:
The execution time for my_tensor.cuda().squeeze() and my_tensor.squeeze().cuda() are similar, and my_tensor.cuda().squeeze() might be a little bit faster.