Считается, что CUDA может ускорить матричные манипуляции. Тем не менее, я тестирую его в python Jupyter, это не ожидается.
np_list = []
NUM_MATRIX = 100
SIZE_MATRIX = 1000
for i in range(NUM_MATRIX):
matrix = np.random.randn(SIZE_MATRIX,SIZE_MATRIX)
np_list.append(matrix)
# constuct torch tensor
torch_cpu_list = []
torch_gpu_list = []
for i in range(NUM_MATRIX):
torch_cpu_list.append(torch.from_numpy(np_list[i]))
torch_gpu_list.append(torch_cpu_list[i].cuda())
Затем обратная работа профиля
%%time
for i in range(NUM_MATRIX):
np.linalg.inv(np_list[i])
Время ЦП: пользователь 7,86 с, sys: 72,2 мс, всего: 7,93 с Время стены: 2 с
%%time
for i in range(NUM_MATRIX):
torch_cpu_list[i].inverse()
Время ЦП: пользователь 5.84 с, sys: 36 мс, всего: 5,88 с Время стены: 1,48 с
%%time
for i in range(NUM_MATRIX):
torch_gpu_list[i].inverse()
Время ЦП: пользователь 11,7 с, сис: 528 мс, всего: 12,2 с Время стены: 3,07 с
Я думаю, что-то не так с моим профилем. Но я не понимаю феномен.