FFT Plan1D (Many type)

Apr 30, 2012 at 8:59 AM


Problem 1 :
I want to create a Plan1D like it..

   var _gpgpufft = GPGPUFFT.Create(_gpu);
            _fftPlan1D = _gpgpufft.Plan1D(eFFTType.Complex2Complex, eDataType.Double, _nfft, _batchSize, 1, _dist, 1,

_nfft = 512
_batchSize = 10240
_dist = 50

In Execute method I passed a array combined 10240 small arrays.Each small array size is 50 elements.
But when I Execute it the result is incorrect because NFFT not equal width _dist.
When I set _nfft to _dist value the result is correct.

Problem 2:
In this Plan type when I need the padding on the data the result is incorrect.

May 3, 2012 at 10:34 AM

Yes we need to relook at the FFT library - latest version of CUDA have introduced more flexible offsetting possibilities.  If you've built CUDAfy from sources then you can see what has been passed to the actual CUFFT function.  Comparing this with what is advised in the CUFFT documentation from NVIDIA is next step.  Will schedule this but if you see something in the mean time then please let me know.

Thank yo

May 18, 2012 at 2:02 PM

I was at the NVIDIA GTC event in San Jose this week. I had the good fortune meet the programmer responsible for cuFFT and we had a long chat about FFTs and signal processing. We also took a look at the CUDAfy source code and there are no issues here - it correctly passes all arguments to cuFFT.  The issue is that your _dist cannot be less than _nfft.  Having it less means that the FFTs overlap each other. In the case of FFTW you would still get consistent results, however with cuFFT there is no guarantee of the order in which the batched FFTs are executed (many are done in parallel). Please consider where you really intend for the FFTs to overlap?  The value of _dist refers to the number of samples between the first of one batch and the first of the next batch, not between last and first samples.

Hope this clears things up!  On my side I'd like to really thank Viktor for his time and good company, and NVIDIA for a great conference and allowing direct memory access to their engineers!

May 20, 2012 at 7:50 AM


I wrote a method for import real and image into device memory with padding.

Thank you very much...