Skip to content

v0.19.0

Latest
Compare
Choose a tag to compare
@antonwolfy antonwolfy released this 06 Oct 20:24
· 9 commits to master since this release
42f712d

Summary

This release introduces a set of new dpnp.ndarray methods and SciPy-compatible functions to improve CuPy compatibility.

It also enhances the performance of existing functions and improves documentation completeness.

Additionally, it extends support for building dpnp from the source for NVIDIA GPUs, with optional architecture selection.

This release is compatible with NumPy 2.3.3.

Details

Added

  • Added --target-cuda[=ARCH] option to replace the deprecated --target=cuda, allowing users to build for CUDA devices with optional architecture selection using CodePlay oneAPI plug-in #2478
  • Added several new pre-commit rules, including protection against direct commits to master/maintenance branches #2500
  • Added implementation of dpnp.ndarray.view method #2520
  • Added a new backend routine syrk from oneMKL to perform symmetric rank-k update which is used for a specialized matrix multiplication where the result is a symmetric matrix 2509
  • Added timeout-minutes property to GitHub jobs #2526
  • Added implementation of dpnp.ndarray.data and dpnp.ndarray.data.ptr attributes #2521
  • Added dpnp.ndarray.__contains__ method #2534
  • Added implementation of dpnp.linalg.lu_factor (SciPy-compatible) #2557, #2565
  • Added implementation of dpnp.piecewise #2550
  • Added implementation of dpnp.linalg.lu_solve for 2D inputs (SciPy-compatible) #2575
  • Added implementation of dpnp.special.erfc #2588
  • Added dpnp.scipy submodule to aggregate new SciPy-compatible functions from linalg and special namespaces #2603

Changed

  • Adjusted the pre-commit configuration to run autoupdate weekly #2479
  • Improved validation of --target-hip build option to only accept a gfx-prefixed value #2481
  • Simplifies backend implementation of dpnp.kaiser by getting rid of unnecessary template #2472
  • --onemkl-interfaces and --onemkl-interfaces-dir options for building script are deprecated, instead --onemath and --onemath-dir are introduced to be aligned with oneMath specification #2487
  • Clarified description of xp keyword in docstring of dpnp.interp #2506
  • Updated existing GitHub workflows to add testing with Python 3.13 #2510
  • Aligned the license expression with PEP-639 #2511
  • Bumped oneMKL version up to v0.8 #2514
  • Removed the use of class template argument deduction for alias template to conform to the C++17 standard #2517
  • Changed the order of individual FFTs over axes for dpnp.fft.irfftn to be in forward order #2524
  • Replaced the use of numpy.testing.suppress_warnings with appropriate calls from the warnings module #2529
  • Improved documentations of dpnp.ndarray class and added a page with description of supported constants #2422
  • Updated dpnp.size to accept tuple of ints for axes argument #2536
  • Replaced ci section in .pre-commit-config.yaml with a new GitHub workflow with scheduled run to autoupdate the pre-commit configuration #2542
  • FFT module is updated to perform in-place FFT in intermediate steps of ND FFT #2543
  • Reused dpctl tensor include to enable experimental SYCL namespace for complex types #2546
  • Changed Windows-specific logic in dpnp initialization #2553
  • Added missing includes to files in ufunc and VM pybind11 extensions #2571
  • Refactored backend implementation of dpnp.linalg.solve to use oneMKL LAPACK gesv directly #2558
  • Improved performance of dpnp.isclose function by implementing a dedicated kernel for scalar rtol and atol arguments #2540
  • Extended dpnp.pad to support pad_width keyword as a dictionary #2535
  • Redesigned dpnp.erf function through pybind11 extension of OneMKL call or dedicated kernel in ufunc namespace #2551
  • Improved performance of batched implementation of dpnp.linalg.det and dpnp.linalg.slogdet #2572
  • Improved documentations of dpnp.tril_indices and dpnp.triu_indices to clarify the returned order of indices #2586
  • dpnp uses pybind11 3.0.1 #2594

Deprecated

  • --onemkl-interfaces and --onemkl-interfaces-dir options for building script are deprecated, instead --onemath and --onemath-dir are introduced to be aligned with oneMath specification #2487

Removed

  • Cleaned up backend code to remove obsolete and unused parts of functionality #2485

Fixed

  • Updated pre-commit GitHub workflow to pass no-commit-to-branch check #2501
  • Updated the math formulas in summary of dpnp.matvec and dpnp.vecmat to correct a typo #2503
  • Avoided negating unsigned integers in ceil division used in dpnp.resize implementation #2508
  • Fixed dpnp.unique with 1d input array and axis=0, equal_nan=True keywords passed where the produced result doesn't collapse the NaNs #2530, #2587
  • Resolved issue when dpnp.ndarray constructor is called with dpnp.ndarray.data as buffer keyword #2533
  • Fixed dpnp.linalg.cond to always return a real dtype #2547
  • Resolved the issue in dpnp.random functions to allow any value of size where each element is castable to Py_ssize_t type #2578
  • Resolved conda build --test issue in python 3.9 environment #2583
  • Fixed tests for the rounding functions to depend on minimum required numpy version #2589
  • Fixed tests for the ufuncs to depend on minimum required numpy version #2590
  • Added missing permission definition in Autoupdate pre-commit GitHub workflow #2591
  • Resolved issue with the cyclic import in linalg submodule #2608

Contributors

Full Changelog: 0.18.1...0.19.0