C++ 是一个;2D fft“;与两个1D fft相同';s

C++ 是一个;2D fft“;与两个1D fft相同';s,c++,cuda,fft,C++,Cuda,Fft,我有一个cuda代码,我已经实现了几个C2C 2D FFT的。它们都使用相同的计划,但出于某种原因,2D FFT上的时间很大,而且似乎变化很大。相同的数据大小FFT似乎需要0.4到1.8秒的时间 这是用于1920x1080 FFT的。这些时间看起来合理吗 无论如何,我对CUDA 1-D批量FFT的速度有很好的经验。对行进行1D FFT,然后再对矩阵的列进行1D FFT,以得到与此2D FFT相同的结果,这是否相同?我以前在1D FFT的大数据集上有过在几百分之一秒内发生FFT的经验,所以我希望能

我有一个cuda代码,我已经实现了几个C2C 2D FFT的。它们都使用相同的计划,但出于某种原因,2D FFT上的时间很大,而且似乎变化很大。相同的数据大小FFT似乎需要0.4到1.8秒的时间

这是用于1920x1080 FFT的。这些时间看起来合理吗

无论如何,我对CUDA 1-D批量FFT的速度有很好的经验。对行进行1D FFT,然后再对矩阵的列进行1D FFT,以得到与此2D FFT相同的结果,这是否相同?我以前在1D FFT的大数据集上有过在几百分之一秒内发生FFT的经验,所以我希望能够修正其中的一些结果


感谢

1K x 1K图像的二维变换需要2K 1D变换。因此,这些时间似乎是合理的


有关更多信息,请参阅:

记住,这里还有一个隐含的转换,其访问模式可能会大大降低速度。这些时间非常高-2.67 GHz Core i7上的FFTW将在<100毫秒内完成这些操作。