Releases: IntelPython/mkl_fft
2.2.0
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-serviceis now an optional dependency- Configurable NumPy dependency in conda recipes
- 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_fftpatching for NumPy, withmkl_fftcontext manager,is_patchedquery, andpatch_numpy_fftandrestore_numpy_fftcalls to replacenumpy.fftcalls with calls frommkl_fft.interfaces.numpy_fftgh-224, gh-295
Changed
- In
mkl_fft.fftnandmkl_fft.ifftn, improved checking of the shape argumentsto use faster direct transforms more often. This makes performance more consistent betweenmkl_fft.fftn/ifftnandmkl.interfaces. gh-283 - Made
mkl-servicean optional dependency gh-305 - Made conda recipe dependency on numpy configurable through
USE_NUMPY_BASEenvironment variable gh-299
Removed
- Dropped support for Python 3.9 gh-243
Fixed
- Fix
TypeErrorexception raised with empty axes gh-288 - To return input array unchanged when
axes=()(ignoreoutparameter) gh-293
Contributors
- Nikita Grigorian (@ndgrigorian)
New Contributors
- Anton Volkov (@antonwolfy)
- Christopher Hillenbrand (@chillenb)
- Nikolay Petrov (@napetrov)
Full Changelog: 2.1.2...2.2.0
2.1.2
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_fftandmkl_fft.interfaces.scipy_fftfrom Conda recipe
v2.1.1
What's Changed
Added
- Enabled support of Python 3.13 gh-164
Changed
- Dropped support for
scipy.fftpackinterface gh-185 - Dropped support for
overwrite_xparameter inmkl_fftgh-185 - Replaced
fwd_scaleparameter withnorminmkl_fftgh-189 - Conditionally import
scipy_fftonly ifscipyis installed gh-195 - Vendor
fftfreq,rfftfreq,fftshift, andifftshifttoscipy_fftandnumpy_fftinterfaces gh-226, gh=229
Fixed
- Fixed a bug for N-D FFTs when both
sandoutare given gh-185 - Fix a circular dependency in Intel NumPy: revert vendoring of
scipy.fftfunctions, instead using thin wrappers to call fromscipydirectly gh-233
Contributors
Full Changelog: v2.0.0...2.1.1
v2.0.0
What's Changed
Added
- Added Hermitian FFT functions to SciPy interface
mkl_fft.interfaces.scipy_fft:hfft,ihfft,hfftn,ihfftn,hfft2, andihfft2gh-161 - Added support for
outkwarg to all FFT functions inmkl_fftandmkl_fft.interfaces.numpy_fftgh-157 - Added
fftfreq,fftshift,ifftshift, andrfftfreqto both NumPy and SciPy interfaces gh-179
Changed
- NumPy interface
mkl_fft.interfaces.numpy_fftis aligned with numpy-2.x.x gh-139, gh-157 - To set
mkl_fftas the backend for SciPy is only possible throughmkl_fft.interfaces.scipy_fftgh-179 - SciPy interface
mkl_fft.interfaces.scipy_fftuses the same function from SciPy for handlingsandaxesfor N-D FFTs gh-181
Fixed
- Fixed an issue for calling
mkl_fft.interfaces.numpy.fftnwith an empty axes gh-139 - Fixed an issue for calling
mkl_fft.interfaces.numpy.fftnwith a zero-size array gh-139 - Fixed inconsistency of input and output arrays dtype for
irfftfunction gh-180 - Fixed issues with
set_workersfunction in SciPy interfacemkl_fft.interfaces.scipy_fftgh-183
Full Changelog: v1.3.14...v2.0.0
v1.3.14
v1.3.13
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
v1.3.10
Bug fix release to support NumPy 2.0, addressing test suite failure on Windows.
v1.3.9
What's changed
mkl_fft now supports NumPy 2.0
v1.3.8
Release with vendored copy of numpy.distutils.conv_template. This allows mkl_fft to be build with Python 3.12 and NumPy >=1.25