2011-05-16 125 views
2

我研究了Cooley Tukey算法,并且我理解它。我在CUDA convolutionFFT2D例如一切,直到这些内核:CUDA convolutionFFT2D示例 - 我无法理解它

spProcess2D电话 - > spProcess2D_kernel它调用了很多 - > spPostprocessC2C,mulAndScale和spPreprocessC2C

下面是完整的代码: http://nopaste.info/30c13e44fe.html(convolutionFFT2D.cu,在这里是spProcess2D功能) http://nopaste.info/78d22afac2.html(convolutionFFT2D.cuh,这里有其他功能)

我已经读过所有的NVIDIA SDK文件,但我仍无法弄清这些功能做什么(他们使用旋转因子,但似乎没有任何像那里的Cooley Tukey算法)

如果可以请帮我,或者至少指向我在哪里解决我的问题

更新:我发现此链接:http://cnx.org/content/m16336/latest/#uid38 也许这些功能进行广度优先算法?我仍然不能说,但形状似乎相同

+0

你需要真的问一个具体的问题。 – 2011-05-16 21:04:16

+0

我不知道spProcess2D,spPostprocessC2C和spPreprocessC2C函数是做什么的。我也接受建议或意见,因为我找不到任何东西 – 2011-05-17 07:29:21

回答

1

它看起来像算法正在做一些类似于提到的算法here。预处理步骤看起来是将大小为N的实数输入(填充后)重新排序为大小为N/2的复合输入。后处理步骤重新排序数据以获取原始的输入数组的FFT。

+0

非常感谢你,你是对的,似乎算法正在执行你所链接的!再次感谢你! – 2011-05-25 17:17:03

+1

您可能希望将信息保存在某个地方。我不得不使用链接作为源代码,因为我找不到其他任何解释它的细节。我在我公司的论坛中找到了链接:) – 2011-05-25 23:04:22

+0

谢谢我将在本地保存信息,再次感谢您! – 2011-05-26 05:46:09

0

spPostprocessC2C看起来像一个单一的FFT蝴蝶。调用例程的复杂性来自于将FFT算法拟合成CUDA的SIMT模型。也许如果你解释了你试图实现的是什么(不仅仅是理解这个特定的FFT实现是如何工作的),那么你可能会得到一些更具体的答案。

+0

谢谢你的回答,问题是我正在使用这段代码作为论文,我不想结束我的教授问我:“什么?这段代码是干什么的?“,我需要支持自己,以防万一运气不在我身边。所以我研究了Cooley Tukey算法和改进性能的技巧,现在我试图理解这些代码,但是我不能检索这些例程中的概念 – 2011-05-17 08:29:25

+0

@Paul:除非你的论文是关于FFT实现的,否则我不会认为这很重要 - 它只是一个“黑匣子”库程序,用于执行与您的研究相关的一些任务。 – 2011-05-17 08:32:48

+0

这就是我的想法,但我的教授也不这么认为。他负责:) – 2011-05-17 08:45:11