Hello !
I have a quick question on lazy evaluation of long running operations and if they block or not (separate answer for *.device(‘cpu’) and .device(‘cuda’), if necessary"
def MyFunc(inputTensor):
x = SomeLongRunningFunction(inputTensor);
y = AnotherLongRunningFunction(inputTensor);
return x,y;
Does the computation of x block the computation of y, even though they are independent of each other? If yes, is there a simple way to make the computations occur simultaneously?
Similar questions for loops. Is the loop unrolled so the independent indexed computations can occur simultaneously?
def MyLoopFunc(inputTensor,N,M,device):
x = torch.empty((N,M),device=device);
for idx in range(N):
x[idx,:] = LongRunningOperation(inputTensor,idx);
return x;