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
anddpnp.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 fromlinalg
andspecial
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 ofdpnp.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
fordpnp.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 foraxes
argument #2536 - Replaced
ci
section in.pre-commit-config.yaml
with a new GitHub workflow with scheduled run to autoupdate thepre-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 LAPACKgesv
directly #2558 - Improved performance of
dpnp.isclose
function by implementing a dedicated kernel for scalarrtol
andatol
arguments #2540 - Extended
dpnp.pad
to supportpad_width
keyword as a dictionary #2535 - Redesigned
dpnp.erf
function through pybind11 extension of OneMKL call or dedicated kernel inufunc
namespace #2551 - Improved performance of batched implementation of
dpnp.linalg.det
anddpnp.linalg.slogdet
#2572 - Improved documentations of
dpnp.tril_indices
anddpnp.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 passno-commit-to-branch
check #2501 - Updated the math formulas in summary of
dpnp.matvec
anddpnp.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 andaxis=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 withdpnp.ndarray.data
asbuffer
keyword #2533 - Fixed
dpnp.linalg.cond
to always return a real dtype #2547 - Resolved the issue in
dpnp.random
functions to allow any value ofsize
where each element is castable toPy_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