Why GPU performance is worse than CPU for this code?
Ältere Kommentare anzeigen
clear all
close all
tic
t=9999;
X = rand( t, 'single' );
G = gpuArray( X );
isequal( gather( G ), X ) % returns true
classUnderlying( G ) % returns 'single'
G2 = G .* G
toc
tic
X = rand( t, 'single' );
G1 = X;
G3 = G1 .* G1 ;
toc
The execution time of GPU is less than CPu i5. Would anybody answer it?
1 Kommentar
Jan
am 27 Nov. 2011
About "clear all" see: http://www.mathworks.com/matlabcentral/answers/16484-good-programming-practice#answer_22301
Please decide, if the "GPU performance is worse than CPU", or if "the execution time of GPU is less than CPU".
Akzeptierte Antwort
Weitere Antworten (2)
Jan
am 27 Nov. 2011
Please try this:
X = rand(1e3, 1e3, 'single' );
G = gpuArray( X );
G2 = G;
tic
for i = 1:100
G2 = G2 .* G;
end
toc
tic
G = X;
G2 = X;
for i = 1:100
G2 = G2 .* G;
end
toc
1 Kommentar
King Fisher
am 27 Nov. 2011
cdarling
am 19 Feb. 2012
0 Stimmen
there is a possibility that your GPU supports parallel.gpu.GPUArray.rand(), and it would be much faster if you construct random numbers within GPU, instead of generate and copy them into GPU
Kategorien
Mehr zu GPU Computing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!