In this note I would like to remove some confusion about FFT interfaces supported by Intel® MKL.
Firstly, some history. The library has been providing Discrete Fourier Transforms Interface (DFTI) since MKL 6.0 (2002). In 2005, Intel MKL 8.1 added open source FFTW2 and FFTW3 wrappers to support essential functionality of the widely known Fastest Fourier Transform in the West library. In order to use the wrappers one had to compile them by their favourite C compiler.
Starting with Intel MKL 10.2 (2009), in particular with the latest release of MKL 10.2 Update 2, the FFTW3 interface has been fully integrated in MKL, so that an application using FFTW3 can be linked directly to the Intel MKL. Thus, an application using FFT functionality of Intel MKL can use either DFTI or FFTW3 interface, without extra effort for building the wrappers.
You are encouraged to upgrade your copy of Intel MKL to the latest MKL release.
With Intel MKL 10.2 and later all you need to use FFT functionality, either via DFTI or FFTW3 interface, is to link with Intel MKL.
For advanced use however the FFTW2 and FFTW3 wrappers to Intel MKL are provided in open source. For example,
- The FFTW2 interface doesn't support single precision and double precision interface in separate name spaces, so one has to compile the FFTW2 wrappers for the particular case of use.
- The Fortran interface of FFTW3 in Intel MKL does not support GNU g77 name decoration scheme. In that case one can still use FFTW3 interface with Intel MKL by compiling FFTW3 wrappers specially for use with g77 compiler.
- The implementation of the FFTW2 and FFTW3 wrappers may serve an additional usage example of MKL DFTI.