我试图找出GPU张量操作是否比CPU更快。所以,我编写了以下特定代码,依次实现对CPU张量和GPU cuda张量进行简单的2D加法,以查看速度差异:
import torch
import time
###CPU
start_time = time.time()
a = torch.ones(4,4)
for _ in range(1000000):
a += a
elapsed_time = time.time() - start_time
print('CPU time = ',elapsed_time)
###GPU
start_time = time.time()
b = torch.ones(4,4).cuda()
for _ in range(1000000):
b += b
elapsed_time = time.time() - start_time
print('GPU time = ',elapsed_time)
令我惊讶的是,CPU时间为0.93秒,而GPU时间高达63秒。我是否正确执行了cuda张量操作?或者说,cuda张量的概念只在非常复杂的操作(例如神经网络)中才能更快地工作吗?
注意:我的GPU是NVIDIA 940MX,torch.cuda.is_available()
调用返回True。