Skip to content

Releases: IntelPython/mkl_umath

0.4.1

11 May 21:54
e41c869

Choose a tag to compare

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 mkl as a declared runtime dependency to avoid pip check failures
  • 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 mkl as runtime dependency to avoid possible pip check failures gh-202

Contributors

New Contributors

Full Changelog: 0.4.0...0.4.1

0.4.0

04 May 22:48
64c0ca4

Choose a tag to compare

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() and restore_numpy_umath() functions for cleaner NumPy integration
  • Deprecated legacy use_in_numpy() and restore() functions

🧵 Enhanced Threading Stability

  • Fixed transient crashes during Python teardown when used with PyPI NumPy by switching to intel_thread for 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_BASE environment variable

📦 Cleaner Package Structure

  • Explicit ufunc imports in __init__.py with proper __all__ definition
  • Streamlined dependencies by removing unused mkl-service in favor of direct mkl dependency

⚠️ Breaking Changes

  • Python 3.9 support dropped - Minimum supported version is now Python 3.10+
  • Patching API deprecation - use_in_numpy() and restore() 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_umath and restore_numpy_umath functions for patching NumPy, and improved the patching implementation gh-170

Changed

  • Import ufuncs explicitly in __init__.py and add __all__ to module gh-177
  • Made conda recipe dependency on numpy configurable through USE_NUMPY_BASE environment variable gh-181
  • Removed mkl-service as a dependency in favor of mkl, as mkl-service is not used in mkl_umath directly gh-188

Fixed

  • Build with ICX compiler from 2026.0 release gh-155
  • mkl_umath now uses intel_thread for MKL threading to fix transient crashes during Python teardown when used in an environment with PyPI NumPy gh-171

Deprecated

  • Deprecated use_in_numpy and restore patching functions, to be removed in a future version. Using patch_numpy_umath and restore_numpy_umath is recommended instead gh-170

Removed

  • Dropped support for Python 3.9 gh-125

Contributors

New Contributors

Full Changelog: 0.3.1...0.4.0

0.3.1

17 Dec 03:50
ef6e910

Choose a tag to compare

This release is identical to 0.3.0 in terms of features

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

Added

  • Enabled support of Python 3.14 gh-119

v0.3.0

13 Nov 14:02
1896c90

Choose a tag to compare

What's Changed

Added

  • Added mkl implementation for floating point data-types of exp2, log2, fabs, copysign, nextafter, fmax, fmin and remainder functions gh-81
  • Added mkl implementation for complex data-types of conjugate and absolute functions gh-86
  • Enabled support of Python 3.13 gh-101
  • Added mkl implementation for complex data-types of add, subtract, multiply and divide functions gh-102

Changed

  • Dropped support for maximum and minimum gh-104
  • Disabled -fast-math by default gh-105
  • Used a common umath loop for log2 function to match NumPy gh-109
  • Dropped support for remainder function gh-110

New Contributors

Contributors

Full Changelog: v0.2.0...0.3.0

v0.2.0

16 Jul 16:39
aafc0cc

Choose a tag to compare

This release updates mkl_umath to be aligned with both numpy-1.26.x and numpy-2.x.x.

Added

  • The definition of sign function for complex floating point data types is updated to match numpy-2.x.x gh-65
  • ldexp function is updated to allow int64 explicitly similar to numpy-2.x.x behavior gh-73

Changed

  • Migrated from setup.py to pyproject toml gh-63
  • Changed to dynamic linking and added interface and threading layers gh-72

Fixed

  • Fixed a bug for mkl_umath.is_patched function gh-66

v0.1.5

09 Apr 21:17
2cf9824

Choose a tag to compare

This release

  • Fixes failures to import mkl_umath from virtual environment on Linux

v0.1.4

09 Apr 21:16
eede35d

Choose a tag to compare

This release

  • Adds a fix for a bug in in-place addition with negative zeros
  • Adds support for mkl_umath out-of-the-box in virtual environments on Windows

v0.1.2

12 Oct 00:51
23bbbe4

Choose a tag to compare

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

09 Aug 19:08

Choose a tag to compare

v0.1.1

08 Sep 20:20

Choose a tag to compare

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']