Run function on GPU, Matlab 2011a

1 vue (au cours des 30 derniers jours)
Michael
Michael le 5 Juil 2011
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.

Réponse acceptée

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

Plus de réponses (1)

Edric Ellis
Edric Ellis le 6 Juil 2011
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 commentaires
Michael
Michael le 6 Juil 2011
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 le 7 Juil 2011
Unfortunately, I think not - arrayfun deals only with scalar elements.

Connectez-vous pour commenter.

Catégories

En savoir plus sur GPU Computing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by