CUFFT and FFTW fftw_plan_many_dft

I am trying to port some code from FFTW to CUFFT, but unfortunately it uses the FFTW Advanced FFT

The plan setup is as follows

plan = fftw_plan_many_dft(rank, *n, howmany, inembed, istride, idist, onembed, ostride, odist, sign)

//rank = 1 (1D FFT)

//*n = n[0] = 4096

//howmany = 64

//inembed = onembed = NULL (default to n[0])

//istride = ostride = 64

//idist = odist = 1

//sign = 1 or -1 (INVERSE or FORWARD)

I know how to set it up when istride = 1 and idist = n[0], but I can’t seem to figure out how to set up the call to CUFFT when istride != 1

plan = fftw_plan_many_dft(rank, *n, howmany, inembed, istride, idist, onembed, ostride, odist, sign)

//rank = 1 (1D FFT)

//*n = n[0] = 8192

//howmany = 390

//inembed = onembed = NULL (default to n[0])

//istride = ostride = 1

//idist = odist = 8192

//sign = 1 or -1 (INVERSE or FORWARD)

//

//CUFFT Call

cufftPlan1d( &plan, n[0], CUFFT_C2C, howmany)

FFTW documentation is sparse, and is open to a lot of interpretation… any help would be great, thanks.

I was recently directed towards the released source code of CUFFT 1.1, and it seems there is no way to adjust the memory stride parameter which makes calls to fftw_plan_many_dft nearly impossible to port to CUFFT if you desire a stride other than 1…

Anyone know if Volkov’s FFT allows for tweaking of the stride parameter?

The current version of CUFFT is expecting stride 1.
You need to shuffle the data and arrange them with stride 1 on the GPU before calling CUFFT.