Run function on GPU, Matlab 2011a

1 次查看(过去 30 天)
Hi,
I saw that one can run matlab function on the GPU in Matlab 2011a. In the introductory video they run the function phaseangle(gx,gy), where gx and gy are matrices on the GPU, then these can be speed up by using arrayfun(@phaseangle, gx, gy). which implies that the function phaseangle is run for each element in gx and gy
Now, I not only have a function(x,y) with two input arguments, but I have a function with arguments function(x,y, parameter). Can I somehow run this on the GPU as I can build matrices for my arguments x,y but parameter is supposed to be the same for all x,y.... Thanks a lot.

采纳的回答

John Melonakos
John Melonakos 2011-7-24
Jacket's GCOMPILE/ARRAYFUN functions will get you what you want. Check it out here: http://wiki.accelereyes.com/wiki/index.php/GCOMPILE_Usage

更多回答(1 个)

Edric Ellis
Edric Ellis 2011-7-6
Yes, you can do that. The GPU variant of arrayfun has been slightly expanded from the standard MATLAB version to allow scalar expansion. This is mentioned in the doc:
  2 个评论
Michael
Michael 2011-7-6
Thanks for the answer. I guess maybe I wasn't quite clear. In fact I need to pass over another large matrix to the GPU which needs to be used for evaluating the function at each x and y. The doc seems to say that if I pass a matrices X,Y,over to the GPU, then the code run X(i,j), Y(i,j). But I have an additional matrix Z that I need to pass to the GPU and in the for each i, j the entire matrix Z needs to be used, not just element Z(i,j). Is that possible somehow? Thanks.
Edric Ellis
Edric Ellis 2011-7-7
Unfortunately, I think not - arrayfun deals only with scalar elements.

请先登录,再进行评论。

类别

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