I wrote a simple test program, where I was doing Complex to Complex FT\'s and I just generated some data 1..50 and stuck it in for the real and imaginary part for each index
CUFFT has the same behavior as FFTW, it computes unnormalized FFTs. IFFT(FFT(A))=n A
where n is the length of the vector. The length n
is in number of samples (not floats or bytes). There are some padding differences between FFTW and CUFFT with C2R and R2C that can screw up a simple comparison, but not for C2C. I would double-check your data setup and length calculations, and verify your plan in both FFTW and CUFFT.
This ended up being a problem with the way the absolute values of the complex number was being calculated. in the std::complex
library, it was computing the distance of the vector.