C++ CUDA卷积FFT2D示例-我可以';我不明白

C++ CUDA卷积FFT2D示例-我可以';我不明白,c++,cuda,fft,dft,C++,Cuda,Fft,Dft,我研究了Cooley Tukey算法,我理解它。我得到了CUDA卷积FFT2D示例中的所有内容,直到这些内核: spProcess2D调用->spProcess2D_内核,该内核调用了大量->SPPOSTPROCESC2C、mulAndScale和SPPROCESSC2C 以下是完整的代码: (convolutionFFT2D.cu,这里是spProcess2D函数) (卷积fft2d.cuh,以下是其他函数) 我已经阅读了所有的英伟达SDK论文,但我仍然无法弄清楚这些函数是什么(他们使用了Tw

我研究了Cooley Tukey算法,我理解它。我得到了CUDA卷积FFT2D示例中的所有内容,直到这些内核:

spProcess2D调用->spProcess2D_内核,该内核调用了大量->SPPOSTPROCESC2C、mulAndScale和SPPROCESSC2C

以下是完整的代码: (convolutionFFT2D.cu,这里是spProcess2D函数) (卷积fft2d.cuh,以下是其他函数)

<>我已经阅读了所有的英伟达SDK论文,但我仍然无法弄清楚这些函数是什么(他们使用了Twitdle,但是在那里没有任何东西像Cooley Tukey算法) 如果可以的话,请帮助我,或者至少告诉我在哪里解决我的问题

更新:我找到了以下链接:
也许这些函数正在执行广度优先算法?我仍然不能这么说,但是形状看起来是一样的,就像一只FFT蝴蝶。调用例程的复杂性来自于将FFT算法拟合到CUDA的SIMT模型中


也许,如果您解释了您试图实现的目标(不仅仅是理解这个特定FFT实现是如何工作的),那么您可能会得到一些更具体的答案。

看起来该算法正在执行与上述算法类似的操作。预处理步骤看起来是将大小为N的实际输入(填充后)重新排序为大小为N/2的复杂输入。后处理步骤是对数据重新排序,以返回原始数据的FFT
输入数组。

您确实需要问一个特定的问题。我不知道spProcess2D、SPPROCESSC2C和SPPROCESSC2C函数的作用。我也接受建议或意见,因为我什么都想不出来谢谢你的回答,问题是我在用这段代码写论文,我不想以教授问我:“这段代码有什么用?”,我需要支持自己,以防运气不好。所以我研究了Cooley Tukey算法和twiddles技巧来提高性能,现在我正试图理解这段代码,但我无法检索其中的概念routines@Paul:除非你的论文是关于FFT实现的,否则我不会认为这有什么关系——这只是一个“黑匣子”你用来执行一些与你的研究相关的任务的图书馆例行程序。这是我的想法,但我的教授也不这么认为。他负责:)当心:那不是蝴蝶。FFT在调用spxxx函数时完成。看起来像是逐点乘法前后的信号预处理和后处理。我不明白这种前后处理的意义。非常感谢你,你是对的,看起来算法正在执行你所链接的内容!再次感谢你!您可能希望将信息保存在某个位置。我不得不使用这个链接作为来源,因为我找不到任何其他的东西能如此详细地解释它。我在我公司的论坛上找到了这个链接:)谢谢,我将把信息保存在本地,再次感谢!