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-commitrules, including protection against direct commits to master/maintenance branches #2500 - Added implementation of 
dpnp.ndarray.viewmethod #2520 - Added a new backend routine 
syrkfrom 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-minutesproperty to GitHub jobs #2526 - Added implementation of 
dpnp.ndarray.dataanddpnp.ndarray.data.ptrattributes #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_solvefor 2D inputs (SciPy-compatible) #2575 - Added implementation of 
dpnp.special.erfc#2588 - Added 
dpnp.scipysubmodule to aggregate new SciPy-compatible functions fromlinalgandspecialnamespaces #2603 
Changed
- Adjusted the 
pre-commitconfiguration to run autoupdate weekly #2479 - Improved validation of 
--target-hipbuild option to only accept a gfx-prefixed value #2481 - Simplifies backend implementation of 
dpnp.kaiserby getting rid of unnecessary template #2472 --onemkl-interfacesand--onemkl-interfaces-diroptions for building script are deprecated, instead--onemathand--onemath-dirare introduced to be aligned with oneMath specification #2487- Clarified description of 
xpkeyword 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 
axesfordpnp.fft.irfftnto be in forward order #2524 - Replaced the use of 
numpy.testing.suppress_warningswith appropriate calls from the warnings module #2529 - Improved documentations of 
dpnp.ndarrayclass and added a page with description of supported constants #2422 - Updated 
dpnp.sizeto accept tuple of ints foraxesargument #2536 - Replaced 
cisection in.pre-commit-config.yamlwith a new GitHub workflow with scheduled run to autoupdate thepre-commitconfiguration #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.solveto use oneMKL LAPACKgesvdirectly #2558 - Improved performance of 
dpnp.isclosefunction by implementing a dedicated kernel for scalarrtolandatolarguments #2540 - Extended 
dpnp.padto supportpad_widthkeyword as a dictionary #2535 - Redesigned 
dpnp.erffunction through pybind11 extension of OneMKL call or dedicated kernel inufuncnamespace #2551 - Improved performance of batched implementation of 
dpnp.linalg.detanddpnp.linalg.slogdet#2572 - Improved documentations of 
dpnp.tril_indicesanddpnp.triu_indicesto clarify the returned order of indices #2586 dpnpuses pybind11 3.0.1 #2594
Deprecated
--onemkl-interfacesand--onemkl-interfaces-diroptions for building script are deprecated, instead--onemathand--onemath-dirare 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-commitGitHub workflow to passno-commit-to-branchcheck #2501 - Updated the math formulas in summary of 
dpnp.matvecanddpnp.vecmatto correct a typo #2503 - Avoided negating unsigned integers in ceil division used in 
dpnp.resizeimplementation #2508 - Fixed 
dpnp.uniquewith 1d input array andaxis=0,equal_nan=Truekeywords passed where the produced result doesn't collapse the NaNs #2530, #2587 - Resolved issue when 
dpnp.ndarrayconstructor is called withdpnp.ndarray.dataasbufferkeyword #2533 - Fixed 
dpnp.linalg.condto always return a real dtype #2547 - Resolved the issue in 
dpnp.randomfunctions to allow any value ofsizewhere each element is castable toPy_ssize_ttype #2578 - Resolved 
conda build --testissue 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-commitGitHub workflow #2591 - Resolved issue with the cyclic import in 
linalgsubmodule #2608 
Contributors
Full Changelog: 0.18.1...0.19.0