Trying to run my code in GPU

2 views (last 30 days)
Jingqi Sun
Jingqi Sun on 9 Dec 2022
Commented: Jingqi Sun on 10 Dec 2022
Hello, I am trying to run my code in GPU. I just installed parallel toolbox. Here is a part of my code:
w=zeros(1000);
A=gpuArray(w);
for z=1:3000
for i = 2:length(A)-1
for n=2:width(A)-1
A(i,n)=(A(i+1,n)+A(i-1,n)+A(i,n+1))+A(i,n-1)/4;
end
z
end
end
I don't think my code is running in GPU because the Task Manager shows GPU is not working.
And the code is running much slower than not running it in GPU.
Can someone help me fix it?
Thanks
  2 Comments
Jingqi Sun
Jingqi Sun on 9 Dec 2022
@Rik Hi, I defined 'A' outside the matrix , sorry I forgot to copy and paste that line. I will updated my question right now. I know built in array operations could operate much faster, but I don't think there have a built in function for what I am trying to do. Thanks.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 9 Dec 2022
Edited: Matt J on 9 Dec 2022
Your code isn't gettng the benefit of the GPU because you are not applying any parallelized functions to your gpuArray, A. In this case, conv2() would be appropriate.
w=zeros(1000);
A=gpuArray(w);
k=[0 1 0;
1 0 1;
0 1 0]/4;
for z=1:3000
A=conv2(A,k,'valid');
end
  1 Comment
Jingqi Sun
Jingqi Sun on 10 Dec 2022
Hi thank you for your reply! I think you are right because iteration time even takes longer when I use gpuArray.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!