for loop and data in GPU memory

조회 수: 3 (최근 30일)
Milos
Milos 2012년 11월 7일
If the for loop is parallelizable, does the Parallel Computing Toolbox execute for loop in a parallel fashion when it is acting on data stored in GPU memory?
  댓글 수: 2
Jill Reese
Jill Reese 2012년 11월 8일
It would be a bit easier to answer your question if you provided some sample code.
Thanks, Jill
Milos
Milos 2012년 11월 8일
Suppose that f is a time-consuming function to compute, and that you want to compute its value on each element of array A and place the corresponding results in array B
A = gpuArray(X);
for i = 1:length(A)
B(i) = f(A(i));
end
Because the loop iteration can occur in parallel, this evaluation could complete much faster if for loop run in parallel on the GPU - in similar fashion like parfor loop is executed. My question is does this happen automatically or for loop is executed in the ordinary non-parallel fashion?

댓글을 달려면 로그인하십시오.

채택된 답변

Jill Reese
Jill Reese 2012년 11월 9일
The for loop is not performed in parallel when you write code like this:
A = gpuArray(X);
for i = 1:length(A)
B(i) = f(A(i));
end
However, if your function f contains only elementwise operations, then you could achieve more parallelism by using arrayfun like so:
B = arrayfun(@f, A);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 GPU Computing에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by