MATLAB Answers

Error for Scripts on GPU

6 views (last 30 days)
Maxime Rivard
Maxime Rivard on 12 Sep 2019
Answered: Rajani Mishra on 10 Feb 2020
Hi,
I am building a function, and calling it with on gpu with @arrayfun(). That function calls another function inside of it, and I get this error: ''Error using gpuArray/arrayfun. Scripts are not supported on the GPU.''
But I have done it in the past and it works fine (Below, computeNewDelta() is a function I made, that I call)... What is my problem?
function [count,Zn]=computeMandelbrotIterationsByDeltaForImage(orbit,Xdelta0,Ydelta0,iteration)
refOrbitX=gpuArray(real(orbit));
refOrbitY=gpuArray(imag(orbit));
maxIterations=iteration;
function [count,Zn] = innerCompute(dx0,dy0)
deltaX = dx0;
deltaY = dy0;
count = 1;
Xn = refOrbitX(1,1)+deltaX;
Yn = refOrbitY(1,1)+deltaY;
while ( (Xn*Xn+Yn*Yn) < 10000 && count <= maxIterations )
Xn = refOrbitX(count,1)+deltaX;
Yn = refOrbitY(count,1)+deltaY;
[deltaX,deltaY] = computeNewDelta(Xn,deltaX,Yn,deltaY,dx0,dy0);
count = count + 1;
end
Zn=complex(Xn,Yn);
end
[count,Zn] = arrayfun( @innerCompute,Xdelta0,Ydelta0);
end

  0 Comments

Sign in to comment.

Answers (1)

Rajani Mishra
Rajani Mishra on 10 Feb 2020
Possibly the cause for the error: “Error using gpuArray/arrayfun. Scripts are not supported on the GPU. is that not all the functions used in your script are GPU supported. Please check that the functions using gpuArrays as input arguments are GPU supported. You can refer to the following link for more information:

  0 Comments

Sign in to comment.

Sign in to answer this question.