在规划FFT时,我可以使用相同的计划进行逆FFT吗?

时间:2011-06-01 21:05:28

标签: cuda fft

我正在使用真实花车的3D数组。

在我的代码的一部分中,我应该对这些值进行3DFFT,然后将得到的复杂矩阵与另一个浮点矩阵点对齐。 (点=逐点乘法)

然后我采用逆FFT并更新初始数组。

第一次cufftPlan3d()时,重要的是什么? 那计划真的在寻找什么?

计划是否需要快速查看阵列的尺寸和类型,还是查看真实和复杂零件的大小?

我试图尽可能少地使用该计划,以便我可以更快地计算变换,但我也希望FFT(和iFFT)尽可能快,因为这是代码的瓶颈。 / p>

我的第一个想法是,我会在初始FFT之前制定一个计划,然后在得到的逆FFT后的点积/ FFT之后制定另一个计划,然后在循环的后面随处使用这两个计划。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

只要转换的类型和大小没有改变,你一定能够创建一个计划并在循环中的任何地方重复使用它。听起来就是这种情况。实际上,只要类型和大小相同,就可以对前向(FFT)和反向(iFFT)变换使用相同的计划,因为CUFFT_FORWARD / CUFFT_REVERSE是{{1}的参数},而不是cufftExec*()

如果您要支持多种尺寸和类型,请在启动时为每种类型/尺寸组合创建单独的计划(如果您提前了解它们)。