How to run my code in GPU instead of CPU?
20 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I'm trying to run my for loop using GPU instead of CPU, but i searched a lot and it turned out that I should rewrite my code again
but some people said it's not necessary to rewrite it, you could use some tool box or something like that
so, if anyone could help me how to use these tool boxes or how can i rewrite my code in GPU form, please answer me
This is my code:
x = [1 5 9];% input features
x = [1/9 5/9 1]; % normlize
y = [0.49 0.51]; % outputs
min_error = 100;
for i = 1:10000
w1 = rand(3,3);
b1 = rand(1,3); % first bias , 1 value going to 3 neurons
w2 = rand(3,3);
b2 = rand(1,3); % second bias
w3 = rand(3,2);
b3 = rand(1,2); % going to 2 neurons
% L1 input layer, L2 and L3 hidden layers , L4 output layer
% L1:
a1 = x;
% L1 - L2:
zh1 = (x * w1) + b1;
a2 = logsig(zh1);
% L2 - L3:
zh2 = (a2 * w2) + b2;
a3 = logsig(zh2);
% L3 - L4:
zh3 = (a3 * w3) + b3;
a4 = logsig(zh3);
err = abs(y-a4);
percentage(i) = (err / y) * 100;
if percentage(i) < min_error
min_error = percentage(i);
cw1 = w1;
cw2 = w2;
cw3 = w3;
bw1 = b1;
bw2 = b2;
bw3 = b3;
end
end
display(min_error)
0 个评论
采纳的回答
Walter Roberson
2021-2-13
It is correct that you would have to rewrite your code to use GPU. At the very least you would have to make some of your computations into gpuarray() .
However, your operations are too small to be worth doing on the GPU. GPU is best at doing the same thing to many data points, and at its worst when doing short calculations, because of the communications and synchronization overheads.
You would, I think, do much better to vectorize your calculations.
In particular, R2020b and later have pagemtimes() https://www.mathworks.com/help/matlab/ref/pagemtimes.html
so you could
N = 10000;
w1 = rand(3,3,N);
b1 = rand(1,3,N); % first bias , 1 value going to 3 neurons
zh1 = pagemtimes(x, w1) + b1;
a2 = logsig(zh1);
and similar operations. At the end you would get a vector of err, and would min() that extracting the index and using the index to pull out the appropriate page from w1, b1, and so on.
If that does not in itself speed things up enough, then those vectorized calculations would be suitable for processing on the GPU.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Parallel and Cloud 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!