Support Intel MKL FFT
Description
A conda installation of numpy provides MKL-accelerated linear algebra subroutines (BLAS) but does not substitute FFTs for
those from the Intel MKL FFT. As far as I have been able to establish, there are three ways of installing MKL FFTs: 1) through the intel-numpy package which substitutes numpy.fft for MKL FFTs; 2) through intel-scipy which does the same for scipy.fft; 3) through the standalone mkl_fft package.
It would be interesting to ensure that MKL FFT is supported through all these formats.
Definition of done
- Test and possibly fix current implementation of FFTs but using
intel-numpyandintel-scipy. ~There is a known issue that breaks PyLops when using these libraries (https://github.com/IntelPython/mkl_fft/pull/69). This issue is reported upstream, but can be bypassed downstream.~ - Implement a new FFT backend (like
pyfftw) which relies on the standalonemkl_fft.
@cako Is this issue still open to take?
Also just to confirm,
We wish to shift from pyfftw to mkl_fft
And shift the numpy and scipy to intel-numpy and intel-scipy respectively.
Yes, it is still an issue! Would definitely be a good place to start contributing.
To clarify, the current FFT operator has several backends available e.g., scipy, numpy and pyfftw. The goal of this issue is to add the support for the standalone MKL FFTs as a separate backend. They would be provided via this package: https://github.com/IntelPython/mkl_fft
All previous backends should remain untouched.