Я хочу запустить несколько графических процессоров параллельно torch.inverse (), но не могу.
Я видел этот пост Matmul на нескольких графических процессорах , в котором описывается процесс для matmul. Это показывает, что если у вас есть несколько тензоров, выделенных для каждого GPU, matmul будет работать параллельно. Я смог повторить это поведение для matmul, но когда я пытаюсь сделать то же самое для torch.inverse (), он запускается последовательно, когда я проверяю "watch nvidia-smi". Также, когда я заменяю функцию torch.inverse () функцией fft, я получаю параллельное использование графического процессора. Любые идеи?
import torch
ngpu = torch.cuda.device_count()
# This is the allocation to each GPU.
lis = []
for i in range(ngpu):
lis.append(torch.rand(5000,5000,device = 'cuda:'+ str(i)))
# per the matmul on multiple GPUs post this should already be in parallel
# but doesnt seem to be based on watch nvidia-smi
C_ = []
for i in range(ngpu):
C_.append(torch.inverse(lis[i]))
Редактировать: Это можно сравнить с кодом FFT (ниже) и кодом Matmul в ссылке выше.
import torch
ngpu = torch.cuda.device_count()
# This is the allocation to each GPU.
lis = []
for i in range(ngpu):
lis.append(torch.rand(5000,5000,2,device = 'cuda:'+ str(i)))
# per the matmul on multiple GPUs post this should already be in parallel
# but doesnt seem to be based on watch nvidia-smi
C_ = []
for i in range(ngpu):
C_.append(torch.fft(lis[i],2))