why GPUarray is slower than CPU?
7 ビュー (過去 30 日間)
古いコメントを表示
Hi. GPU vs CPU speed check. why GPUarray is slower than CPU? GPU : GTX 1080, CPU i7-8700K
% ----------------CPU ---------------
for m=1:100
for n=1:100
aa = rand(m,n);
bb= rand(m,n);
cc = corr2(aa,bb);
end
end
fprintf('\n CPU Run time [%2f]', toc);
% ----------------GPU ---------------
for m=1:100
for n=1:100
aaa= rand(m,n,'gpuArray');
bbb= rand(m,n,'gpuArray');
ccc = corr2(aaa,bbb);
end
end
fprintf('\n GPU Run time [%2f]', toc);
Result : CPU Run time [0.320389], GPU Run time [9.299645]
0 件のコメント
採用された回答
Priyank Sharma
2018 年 3 月 12 日
There are multiple factors which determine a GPU's performance. The headline number of cores a GPU has is not enough to accurately gauge performance for double precision computing. You can follow the steps below to test your GPU performance:
1. Run a standard benchmark test.
2. If the benchmark shows different behavior between the precision types: calculate the expected ratio between Single and Double Precision for their GPU card.
3. If the card is a laptop (mobile) card, adjust expectation for performance.
4. If there is a kernel timeout, the paralleldemo_gpu_benchmark benchmark is likely to trigger it.
5. If performance in the benchmarks is good and clear then it is likely a problem originating in code.
Standard GPU Benchmark:
There is a benchmarking test written by MathWorks Parallel Computing Team and available on the File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/34080-gpubench
This test will do a variety of tests involving both memory and compute intensive tasks in both single and double precision.
One thing to understand is most GPUs are optimized for single-precision maths (as is used by OpenGL etc.). GeForce cards, mobile or otherwise, are quite good for single-precision performance but usually about 8x worse for double.
MATLAB defaults to using double-precision everywhere. Of the NVIDIA cards, only the Tesla and top-end Quadro series do well at double-precision. Add to that the fact that a mobile GPU typically has far fewer cores than a desktop one.
Try the benchmark and check the result for your GPU.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で GPU 연산 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!