Releases: IntelPython/mkl_umath
0.4.1
Overview
This is a bugfix release that resolves dependency issues with pip check by removing the PyPI mkl runtime dependency. This change improves compatibility with downstream packages and package management tools.
Highlights
🔧 Dependency Fix
- Removed
mklas a declared runtime dependency to avoidpip checkfailures - Improves compatibility with downstream package installations
Python Version Support
- ✅ Python 3.10, 3.11, 3.12, 3.13, 3.14
- ❌ Python 3.9 and earlier
Detailed Changes
Fixed
- Removed
mklas runtime dependency to avoid possiblepip checkfailures gh-202
Contributors
- Anton Volkov (@antonwolfy)
New Contributors
- Alexander Rybkin (@xaleryb)
Full Changelog: 0.4.0...0.4.1
0.4.0
Overview
This release introduces a modernized NumPy patching API, improves build system compatibility with the latest Intel compilers, and resolves stability issues with PyPI NumPy. Python 3.9 support has been dropped, and dependency management has been streamlined by removing mkl-service in favor of direct mkl usage.
Highlights
🔄 Improved NumPy Patching API
- Introduced new
patch_numpy_umath()andrestore_numpy_umath()functions for cleaner NumPy integration - Deprecated legacy
use_in_numpy()andrestore()functions
🧵 Enhanced Threading Stability
- Fixed transient crashes during Python teardown when used with PyPI NumPy by switching to
intel_threadfor MKL threading
🔧 Build System Improvements
- Added support for Intel ICX compiler from 2026.0 release
- Made conda recipe dependency on NumPy configurable through
USE_NUMPY_BASEenvironment variable
📦 Cleaner Package Structure
- Explicit ufunc imports in
__init__.pywith proper__all__definition - Streamlined dependencies by removing unused
mkl-servicein favor of directmkldependency
- Python 3.9 support dropped - Minimum supported version is now Python 3.10+
- Patching API deprecation -
use_in_numpy()andrestore()are deprecated and will be removed in a future version
Python Version Support
- ✅ Python 3.10, 3.11, 3.12, 3.13, 3.14
- ❌ Python 3.9 and earlier
Detailed Changes
Added
- Added
patch_numpy_umathandrestore_numpy_umathfunctions for patching NumPy, and improved the patching implementation gh-170
Changed
- Import ufuncs explicitly in
__init__.pyand add__all__to module gh-177 - Made conda recipe dependency on numpy configurable through
USE_NUMPY_BASEenvironment variable gh-181 - Removed
mkl-serviceas a dependency in favor ofmkl, asmkl-serviceis not used inmkl_umathdirectly gh-188
Fixed
- Build with ICX compiler from 2026.0 release gh-155
mkl_umathnow usesintel_threadfor MKL threading to fix transient crashes during Python teardown when used in an environment with PyPI NumPy gh-171
Deprecated
- Deprecated
use_in_numpyandrestorepatching functions, to be removed in a future version. Usingpatch_numpy_umathandrestore_numpy_umathis recommended instead gh-170
Removed
- Dropped support for Python 3.9 gh-125
Contributors
- Anton Volkov (@antonwolfy)
- Nikita Grigorian (@ndgrigorian)
- Jordan Harlow (@jharlow-intel)
New Contributors
- Nikolay Petrov (@napetrov)
Full Changelog: 0.3.1...0.4.0
0.3.1
v0.3.0
What's Changed
Added
- Added mkl implementation for floating point data-types of
exp2,log2,fabs,copysign,nextafter,fmax,fminandremainderfunctions gh-81 - Added mkl implementation for complex data-types of
conjugateandabsolutefunctions gh-86 - Enabled support of Python 3.13 gh-101
- Added mkl implementation for complex data-types of
add,subtract,multiplyanddividefunctions gh-102
Changed
- Dropped support for
maximumandminimumgh-104 - Disabled
-fast-mathby default gh-105 - Used a common umath loop for
log2function to match NumPy gh-109 - Dropped support for
remainderfunction gh-110
New Contributors
- @antonwolfy made their first contribution in #109
- @jharlow-intel made their first contribution in #112
Contributors
Full Changelog: v0.2.0...0.3.0
v0.2.0
This release updates mkl_umath to be aligned with both numpy-1.26.x and numpy-2.x.x.
Added
- The definition of
signfunction for complex floating point data types is updated to match numpy-2.x.x gh-65 ldexpfunction is updated to allowint64explicitly similar to numpy-2.x.x behavior gh-73
Changed
- Migrated from
setup.pytopyproject tomlgh-63 - Changed to dynamic linking and added interface and threading layers gh-72
Fixed
- Fixed a bug for
mkl_umath.is_patchedfunction gh-66
v0.1.5
This release
- Fixes failures to import
mkl_umathfrom virtual environment on Linux
v0.1.4
This release
- Adds a fix for a bug in in-place addition with negative zeros
- Adds support for
mkl_umathout-of-the-box in virtual environments on Windows
v0.1.2
Update build system from removed NumPy distutils to scikit-build, gain ability to build with Intel LLVM compiler ICX. Update to build with NumPy 2.0 and older.
v0.1.1.post0
v0.1.1
Released version of mkl_umath.
The package implements numpy.ufunc instances which are powered by Intel(R) Math Kernel Library's Vector Math component and Intel(R) C Compiler generated calls to Intel(R) Short Vector Math Library functions for appropriate data types.
The package provides for a way to register typed evaluation loops provided by this package with the numpy.ufunc instances, thus monkey patching NumPy for improved performance (e.g. mkl_umath.use_in_numpy() and mkl_umath.restore().)
Supported types can be queries using attributes of numpy.ufunc instance:
In [44]: mkl_umath.multiply.types
Out[44]: ['ff->f', 'dd->d', 'FF->F', 'DD->D']