我发现cufftExecC2C的结果在NX和NY不相同的情况下,计算结果不对,按道理说不应该出现这样的情况。
各位不知道有没有遇到相同的情况?
#define NX 64
#define NY 64
cufftHandle plan;
cufftComplex data1, data2;
cudaMalloc((void)&data1, sizeof(cufftComplex)NXNYNZ);
cudaMalloc((void**)&data2, sizeof(cufftComplex)NXNYNZ);
/* Create a 3D FFT plan. */
cufftPlan2d(&plan, NX, NY, CUFFT_C2C);
/* Transform the first signal in place. */
cufftExecC2C(plan, data1, data1, CUFFT_FORWARD);
/* Transform the second signal using the same plan. */
cufftExecC2C(plan, data2, data2, CUFFT_FORWARD);
/* Destroy the cuFFT plan. */
cufftDestroy(plan);
cudaFree(data1); cudaFree(data2);
类似以上的代码。