I think I cannot do this, but I wanted to confirm:
I wanted to call cufftExecC2C (or any CUFFT really) within different
streams. I think the cufft calls are not callable from within kernel
routines, and I think that means I am out of luck. I had a simple
kernel defined like:
fftKernel(cufftHandle fftPlan, cufftComplex *d_fftArrayA, cufftComplex *d_fftArrayB)
// now call our fft
CUFFT_SAFE_CALL(cufftExecC2C(fftPlan, d_fftArrayA, d_fftArrayB, CUFFT_FORWARD));
Then I wanted to call that as in:
fftKernel<<<nblocks, nthreads, streamArr[i]>>>(fftPlan[i], fftDeviceArrayA[i], fftDeviceArrayB[i]);
I get nvcc compile errors for this; I believe it is angry about trying to call
the cufft routine within another kernel – I recall reading somewhere that
cufft calls were esentially kernel calls in and of themselves.
So - is there a way to call a cufft routine within a stream? Thoughts on this would
be appreciated, thanks.