我想知道 fft 的巨大性能差异和使用 Matlab 在 GPU 上的简单添加。我希望 GPU 上的 fft 比简单的添加要慢。但为什么会反过来呢?有什么建议么?
a=rand(2.^20,1);
a=gpuArray(a);
b=gpuArray(0);
c=gpuArray(1);
tic % should take a long time
for k=1:1000
fft(a);
end
toc % Elapsed time is 0.085893 seconds.
tic % should be fast, but isn't
for k=1:1000
b=b+c;
end
toc % Elapsed time is 1.430682 seconds.
有趣的是,如果我减少向量 a 的长度,加法(第二个循环)的计算时间会减少。
编辑
如果我改变两个循环的顺序,即如果先加法,加法需要 0.2 秒而不是 1.4 秒。FFT时间还是一样的。