Skip to content

Releases: IntelPython/mkl_fft

2.2.0

04 May 22:46
61f2195

Choose a tag to compare

Overview

This release introduces NumPy patching functionality, improves FFT performance consistency, and modernizes dependency management. Python 3.9 support has been dropped, and mkl-service is now an optional dependency.

Highlights

🎯 NumPy FFT Patching

  • New API for seamlessly patching NumPy FFT with Intel MKL optimizations
  • Context manager support for temporary patching
  • Functions to query patch status and control patching explicitly

Performance Improvements

  • Enhanced shape checking in N-D FFT functions for better performance consistency
  • More frequent use of faster direct transforms

📦 Improved Dependency Management

  • mkl-service is now an optional dependency
  • Configurable NumPy dependency in conda recipes

⚠️ Breaking Changes

  • Python 3.9 support dropped - Minimum supported version is now Python 3.10+

Python Version Support

  • ✅ Python 3.10, 3.11, 3.12, 3.13, 3.14
  • ❌ Python 3.9 and earlier

Detailed Changes

Added

  • Added mkl_fft patching for NumPy, with mkl_fft context manager, is_patched query, and patch_numpy_fft and restore_numpy_fft calls to replace numpy.fft calls with calls from mkl_fft.interfaces.numpy_fft gh-224, gh-295

Changed

  • In mkl_fft.fftn and mkl_fft.ifftn, improved checking of the shape argument s to use faster direct transforms more often. This makes performance more consistent between mkl_fft.fftn/ifftn and mkl.interfaces. gh-283
  • Made mkl-service an optional dependency gh-305
  • Made conda recipe dependency on numpy configurable through USE_NUMPY_BASE environment variable gh-299

Removed

  • Dropped support for Python 3.9 gh-243

Fixed

  • Fix TypeError exception raised with empty axes gh-288
  • To return input array unchanged when axes=() (ignore out parameter) gh-293

Contributors

New Contributors

Full Changelog: 2.1.2...2.2.0

2.1.2

17 Dec 03:50
d7d56b4

Choose a tag to compare

This release is identical to 2.1.1 in terms of features

This release only changes conda recipes and package metadata to release the mkl_fft package with Python 3.14.

Added

  • Enabled support of Python 3.14 gh-234

Changed

  • Removed test for importing mkl_fft.interfaces.numpy_fft and mkl_fft.interfaces.scipy_fft from Conda recipe

v2.1.1

13 Nov 13:25
3121b76

Choose a tag to compare

What's Changed

Added

  • Enabled support of Python 3.13 gh-164

Changed

  • Dropped support for scipy.fftpack interface gh-185
  • Dropped support for overwrite_x parameter in mkl_fft gh-185
  • Replaced fwd_scale parameter with norm in mkl_fft gh-189
  • Conditionally import scipy_fft only if scipy is installed gh-195
  • Vendor fftfreq, rfftfreq, fftshift, and ifftshift to scipy_fft and numpy_fft interfaces gh-226, gh=229

Fixed

  • Fixed a bug for N-D FFTs when both s and out are given gh-185
  • Fix a circular dependency in Intel NumPy: revert vendoring of scipy.fft functions, instead using thin wrappers to call from scipy directly gh-233

Contributors

Full Changelog: v2.0.0...2.1.1

v2.0.0

27 Jun 16:05
933b8ed

Choose a tag to compare

What's Changed

Added

  • Added Hermitian FFT functions to SciPy interface mkl_fft.interfaces.scipy_fft: hfft, ihfft, hfftn, ihfftn, hfft2, and ihfft2 gh-161
  • Added support for out kwarg to all FFT functions in mkl_fft and mkl_fft.interfaces.numpy_fft gh-157
  • Added fftfreq, fftshift, ifftshift, and rfftfreq to both NumPy and SciPy interfaces gh-179

Changed

  • NumPy interface mkl_fft.interfaces.numpy_fft is aligned with numpy-2.x.x gh-139, gh-157
  • To set mkl_fft as the backend for SciPy is only possible through mkl_fft.interfaces.scipy_fft gh-179
  • SciPy interface mkl_fft.interfaces.scipy_fft uses the same function from SciPy for handling s and axes for N-D FFTs gh-181

Fixed

  • Fixed an issue for calling mkl_fft.interfaces.numpy.fftn with an empty axes gh-139
  • Fixed an issue for calling mkl_fft.interfaces.numpy.fftn with a zero-size array gh-139
  • Fixed inconsistency of input and output arrays dtype for irfft function gh-180
  • Fixed issues with set_workers function in SciPy interface mkl_fft.interfaces.scipy_fft gh-183

Full Changelog: v1.3.14...v2.0.0

v1.3.14

15 Apr 19:48
ba40a93

Choose a tag to compare

resolves gh-152 by adding an explicit mkl-service dependency to mkl-fft when building the wheel
to ensure the mkl Python module is always available at runtime

resolves gh-115, gh-116, gh-119, gh-135

v1.3.13

10 Apr 15:07
9a87930

Choose a tag to compare

Supported python versions are 3.9, 3.10, 3.11, 3.12

migrate from setup.py to pyproject.toml

includes support in virtual environment out of the box

the original mkl_fft.rfft and mkl_fft.irfft are renamed to mkl_fft.rfftpack and mkl_fft.irfftpack,
since they replicate the behavior from the deprecated scipy.fftpack module.

mkl_fft.rfft_numpy, mkl_fft.irfft_numpy, mkl_fft.rfft2_numpy, mkl_fft.irfft2_numpy,
mkl_fft.rfftn_numpy, and mkl_fft.irfftn_numpy are renamed to mkl_fft.rfft, mkl_fft.irfft,
mkl_fft.rfft2, mkl_fft.irfft2, mkl_fft.rfftn, and mkl_fft.irfftn, respectively.
(consistent with numpy.fft and scipy.fft modules)

file _scipy_fft_backend.py is renamed to _scipy_fft.py since it replicates scipy.fft module
(similar to file _numpy_fft.py which replicates numpy.fft module)

v1.3.11

12 Oct 00:03
8431635

Choose a tag to compare

Incremental release with updated installation instruction in readme, update to Cython 3, and fix for gh-109

v1.3.10

30 May 17:08
8235dda

Choose a tag to compare

Bug fix release to support NumPy 2.0, addressing test suite failure on Windows.

v1.3.9

28 May 11:37
d105f86

Choose a tag to compare

What's changed

mkl_fft now supports NumPy 2.0

v1.3.8

11 Sep 22:17

Choose a tag to compare

Release with vendored copy of numpy.distutils.conv_template. This allows mkl_fft to be build with Python 3.12 and NumPy >=1.25