Does copying from gpu to host generally take longer than copying from host to gpu?

1 view (last 30 days)
Hi,
I am using the parallel computing toolbox, and it seems like copying data to a gpu using gpuArray() generally takes much longer than copying data back to the host using gather(). For example, if I try:
A = rand(500,500, 50);
tic,
B=gpuArray(A);
toc,
tic,
gather(B);
toc,
Then the gather() takes about 0.055 seconds while the gpuArray() takes only 0.018 seconds. Is this behavior expected? Am I using the wrong method to time this?
Thanks.

Accepted Answer

Jill Reese
Jill Reese on 16 May 2013
I think you have arrived at the same conclusion as this blog post on GPU performance. It provides a lot of detail on how to properly benchmark GPU operations in MATLAB.
  1 Comment
Adam
Adam on 16 May 2013
Thanks for the tip! That blog is very helpful. Does anyone have any idea why the gpu to host copy should be so much slower?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!