C ++ AMP fft性能问题

时间:2014-05-04 18:38:17

标签: c++ performance

我正在编写代码以利用C ++ AMP上的fft库(http://ampfft.codeplex.com/)。虽然与FFT实现的CPU实现相比,它没有给我带来巨大的提升,但我注意到,如果它被置于 for 循环中,性能会随着循环迭代而显着降低。

这是我的测试代码:

for (int i = 0; i < iterations; i++) {
transform.transform(in_GPU, out_GPU); 
}
std::cout << "time steps = " << iterations 
<< "\ttime taken for each steps = " 
<< (clock() - start) / float(CLOCKS_PER_SEC) / iterations  * 1000 
<< "ms"  << std::endl;

这是输出:

   iterations   Time/iteration
   1000           1.001 ms
   2000           0.2925 ms
   5000           0.3248 ms
   10000          0.285 ms
   20000          0.3991 ms
   50000          0.4027 ms
   100000         0.4027 ms
   500000         0.4298 ms

我认为每次迭代的时间从1000减少到2000是由于开销的减少。但这并不能解释从10000增加到20000,或从100000增加到500000.

所以基本上我的程序在 for 循环中运行得越来越慢。任何的想法? :)

0 个答案:

没有答案