Coming from FFTW world, I have some concerns about deterministic behavior of cuFFT library and reproducibility of the results.
When you use FFTW, you can get slightly different results (subject to round off errors) for the same input data for identical transforms. It happens because FFTW chooses the best plan time at run time and the plan may be different from run to run even on the same machine. To solve this problem, FFTW has capability to precompute plans, save them, and later load them. In this case, you have 100% reproducible results even on different machines.
Speaking about cuFFT, there is no option to save plans. Therefore, I have two questions
- Will results of FFT transformations be identical for all supported devices, if cuFFT version is fixed?
- If answer for the first question is “no”, will results be identical for the same compute architecture and fixed cuFFT version?