我找不到使用CUDA应用cuFFT的示例,其中矩阵的转换实现为行和列的1D转换。
我有一个2048x2048
数组(设置为cuComplex
数据的1D)。使用2D变换 - 没问题。但现在我需要的是沿x
进行变换,对其进行一些处理,取反fft,然后沿y
进行变换,然后再对其进行变换,然后进行逆变换。
如果我想使用并行处理,命令序列到底会是什么样子?我应该使用cuFFTPlanMany
吗?怎么样?或者,也许是某个我无法找到的例子?
答案 0 :(得分:3)
在cuFFT Library用户指南(第3页)中,有一个示例说明如何计算大小为BATCH
的一维DFT的NX
个数。使用cufftPlan1d(&plan, NX, CUFFT_C2C, BATCH);
,cufftExecC2C
将执行大小为BATCH
的{{1}}个1D FFT。为此,您必须将数据排列在长度为NX
的复杂数组中。在您的情况下,对于BATCH*NX
的转换,它将是x
和BATCH=2048
。对于NX=2048
的变换,您必须转换先前计算产生的矩阵。
您的代码如下所示
y