Adding just one line in my code slows the GPU.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
hello, my first code was
for i = 1:1000
r=0.8*r+0.2*tanh(A*r+W_in*xc(i+T0)+(0.3)*bias);
end
In the code above,the gpu is faster than cpu but I have to stack 'r' which is (nx1) matrix, so I just adding 'R' on previous code makes the gpu slower than cpu.
R=zeros(n,1000);
for i = 1:1000
r=0.8*r+0.2*tanh(A*r+W_in*xc(i+T0)+(0.3)*bias);
R(:,i)=r;
end
I want to make my code runs fast on gpu than cpu. What should I do??
0 commentaires
Réponses (1)
Matt J
le 18 Fév 2020
Modifié(e) : Matt J
le 18 Fév 2020
Pre-allocate on the GPU. Also, pre-compute things on the GPU that are easily vectorized and don't depend on r.
R=gpuArray.zeros(n,1000);
r=gpuArray(r);
A-gpuArray(A);
increments = W_in*gpuArray( xc((1:1000)+T0) ) + 0.3*bias;
for i = 1:1000
r=0.8*r+0.2*tanh(A*r+ increments(i));
R(:,i)=r;
end
3 commentaires
Voir également
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!