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 --index-url 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 --index-url 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.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

mkl_fft-1.3.8-70-cp310-cp310-win_amd64.whl (174.6 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

mkl_fft-1.3.8-70-cp310-cp310-manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.10

mkl_fft-1.3.8-70-cp39-cp39-win_amd64.whl (178.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

mkl_fft-1.3.8-70-cp39-cp39-manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.9

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page