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