I’ve been facing an error when trying to do multiple FFTs in place using CUDA’s cuFFT API. Some sample code ahead that gives the same error I keep getting:
std::vector<Complex> host_signalx(N);
std::copy(host_signalx.begin(), host_signalx.end(), datablock);
checkCudaErrors(cufftXtMemcpy (plan_input, d_signalx, datablock,
CUFFT_COPY_HOST_TO_DEVICE));
checkCudaErrors(cufftXtExecDescriptorC2C(plan_input, d_signalx, d_signalx,
CUFFT_FORWARD));
checkCudaErrors(cufftXtExecDescriptorC2C(plan_input, d_signalx, d_signalx,
CUFFT_INVERSE));
The error:
CUDA error at test2.cu:235 code=3(CUFFT_INVALID_TYPE) "cufftXtExecDescriptorC2C(plan_input, d_signalx, d_signalx, CUFFT_INVERSE)"
I’ve malloc’ed and it works when the FFT is computed once, but not twice- which stumps me, since I am looking to use it in a loop multiple times without having to free and allocate memory each time.
The error on the website is vague too, and says:
CUFFT_INVALID_TYPE = 3, // No longer used
Any insights would be much appreciated.