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