Skip to main content

MKL-based FFT transforms for NumPy arrays

Project description

mkl_fft -- a NumPy-based Python interface to Intel (R) MKL FFT functionality

Build Status

mkl_fft started as a part of Intel (R) Distribution for Python* optimizations to NumPy, and is now being released as a stand-alone package. It can be installed into conda environment using

   conda install -c intel mkl_fft

To install mkl_fft Pypi package please use following command:

   python -m pip install --i https://pypi.anaconda.org/intel/simple -extra-index-url https://pypi.org/simple mkl_fft

If command above installs NumPy package from the Pypi, please use following command to install Intel optimized NumPy wheel package from Anaconda Cloud:

   python -m pip install --i https://pypi.anaconda.org/intel/simple -extra-index-url https://pypi.org/simple mkl_fft numpy==<numpy_version>

Where <numpy_version> should be the latest version from https://anaconda.org/intel/numpy


Since MKL FFT supports performing discrete Fourier transforms over non-contiguously laid out arrays, MKL can be directly used on any well-behaved floating point array with no internal overlaps for both in-place and not in-place transforms of arrays in single and double floating point precision.

This eliminates the need to copy input array contiguously into an intermediate buffer.

mkl_fft directly supports N-dimensional Fourier transforms.

More details can be found in SciPy 2017 conference proceedings: https://github.com/scipy-conference/scipy_proceedings/tree/2017/papers/oleksandr_pavlyk


It implements the following functions:

Complex transforms, similar to those in scipy.fftpack:

fft(x, n=None, axis=-1, overwrite_x=False)

ifft(x, n=None, axis=-1, overwrite_x=False)

fft2(x, shape=None, axes=(-2,-1), overwrite_x=False)

ifft2(x, shape=None, axes=(-2,-1), overwrite_x=False)

fftn(x, n=None, axes=None, overwrite_x=False)

ifftn(x, n=None, axes=None, overwrite_x=False)

Real transforms

rfft(x, n=None, axis=-1, overwrite_x=False) - real 1D Fourier transform, like scipy.fftpack.rfft

rfft_numpy(x, n=None, axis=-1) - real 1D Fourier transform, like numpy.fft.rfft

rfft2_numpy(x, s=None, axes=(-2,-1)) - real 2D Fourier transform, like numpy.fft.rfft2

rfftn_numpy(x, s=None, axes=None) - real 2D Fourier transform, like numpy.fft.rfftn

... and similar irfft* functions.

The package also provides mkl_fft._numpy_fft and mkl_fft._scipy_fft interfaces which provide drop-in replacements for equivalent functions in NumPy and SciPy respectively.


To build mkl_fft from sources on Linux:

  • install a recent version of MKL, if necessary;
  • execute source /path/to/mklroot/bin/mklvars.sh intel64 ;
  • execute pip install .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mkl-fft, version 1.3.1
Filename, size File type Python version Upload date Hashes
Filename, size mkl_fft-1.3.1-3-cp37-cp37m-manylinux2014_x86_64.whl (241.5 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size mkl_fft-1.3.1-3-cp37-cp37m-win_amd64.whl (245.2 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size mkl_fft-1.3.1-3-cp38-cp38-manylinux2014_x86_64.whl (252.1 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size mkl_fft-1.3.1-3-cp38-cp38-win_amd64.whl (253.8 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size mkl_fft-1.3.1-3-cp39-cp39-manylinux2014_x86_64.whl (247.3 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size mkl_fft-1.3.1-3-cp39-cp39-win_amd64.whl (248.8 kB) File type Wheel Python version cp39 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page