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