矩阵的cuFFT作为行或列的一维变换

时间:2013-12-08 15:24:08

标签: cuda fft

我找不到使用CUDA应用cuFFT的示例,其中矩阵的转换实现为行和列的1D转换。

我有一个2048x2048数组(设置为cuComplex数据的1D)。使用2D变换 - 没问题。但现在我需要的是沿x进行变换,对其进行一些处理,取反fft,然后沿y进行变换,然后再对其进行变换,然后进行逆变换。

如果我想使用并行处理,命令序列到底会是什么样子?我应该使用cuFFTPlanMany吗?怎么样?或者,也许是某个我无法找到的例子?

1 个答案:

答案 0 :(得分:3)

在cuFFT Library用户指南(第3页)中,有一个示例说明如何计算大小为BATCH的一维DFT的NX个数。使用cufftPlan1d(&plan, NX, CUFFT_C2C, BATCH);cufftExecC2C将执行大小为BATCH的{​​{1}}个1D FFT。为此,您必须将数据排列在长度为NX的复杂数组中。在您的情况下,对于BATCH*NX的转换,它将是xBATCH=2048。对于NX=2048的变换,您必须转换先前计算产生的矩阵。

您的代码如下所示

y