Как использовать поток CUDA в Pytorch? - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу использовать поток CUDA в Pytorch для параллелизма некоторых вычислений, но я не знаю, как это сделать.Например, если нужно распараллелить 2 задачи, A и B, я хочу сделать следующее:

stream0 = torch.get_stream()
stream1 = torch.get_stream()
with torch.now_stream(stream0):
    // task A
with torch.now_stream(stream1):
    // task B
torch.synchronize()
// get A and B's answer

Как мне достичь цели в реальном коде Python?

1 Ответ

0 голосов
/ 26 сентября 2018
s1 = torch.cuda.Stream()
s2 = torch.cuda.Stream()
# Initialise cuda tensors here. E.g.:
A = torch.rand(1000, 1000, device = ‘cuda’)
B = torch.rand(1000, 1000, device = ‘cuda’)
# Wait for the above tensors to initialise.
torch.cuda.synchronize()
with torch.cuda.stream(s1):
    C = torch.mm(A, A)
with torch.cuda.stream(s2):
    D = torch.mm(B, B)
# Wait for C and D to be computed.
torch.cuda.synchronize()
# Do stuff with C and D.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...