It seems slower than the fftpack in scipy though.
mkl is slower than scipy and much, much slower than FFTW. Does anyone
import timeit
import numpy as np
setup = 'import mklfft; import numpy as np; a = np.ones((2048, 2048), dtype=np.complex64)\n'
setup += 'import mkl; mkl.set_num_threads(4)\n'
cmd = 'b = mklfft.fftpack.fft2(a)'
print('mklfft: ' + str(np.mean(timeit.repeat(cmd, setup=setup, number=1, repeat=15))))
setup = 'import scipy.fftpack; import numpy as np; a = np.ones((2048, 2048), dtype=np.complex64)\n'
cmd = 'b = scipy.fftpack.fft2(a)'
print('scipy: ' + str(np.mean(timeit.repeat(cmd, setup=setup, number=1, repeat=5))))
setup = 'import numpy as np; a = np.ones((2048, 2048), dtype=np.complex64)\n'
cmd = 'b = np.fft.fft2(a)'
print('numpy: ' + str(np.mean(timeit.repeat(cmd, setup=setup, number=1, repeat=15))))
setup = 'import pyfftw.interfaces.scipy_fftpack as fftpack; import numpy as np; a = np.ones((2048, 2048), dtype=np.complex64)\n'
setup += 'import pyfftw.interfaces.cache as cache; cache.enable()\n'
cmd = "b = fftpack.fft2(a, planner_effort='FFTW_MEASURE', threads=4)"
setup += cmd
print('fftw fftpack-compat: ' + str(np.mean(timeit.repeat(cmd, setup=setup, number=1, repeat=15))))