Releases: IntelPython/dpnp
0.20.0
Overview
The highlight of this release: the Array API-compliant tensor implementation has been migrated from dpctl.tensor into dpnp.tensor, simplifying maintenance, reducing cross-project dependencies, and allows the tensor implementation to evolve within dpnp.
This release changes the license from BSD-2-Clause to BSD-3-Clause.
This release achieves dpnp compatibility with Python 3.14 and enables distributing dpnp packages with the latest Python version.
Also, that release drops support for Python 3.9, making Python 3.10 the minimum required version.
Detailed Changes
Added
- Added the docstrings to
dpnp.linalg.LinAlgErrorexception #2613 - Added implementation of
dpnp.linalg.lu_solvefor batch inputs (SciPy-compatible) #2619 - Added
dpnp.exceptionssubmodule to aggregate the generic exceptions used by dpnp #2616 - Added implementation of
dpnp.scipy.special.erfcx#2596 - Added implementation of
dpnp.scipy.special.erfinvanddpnp.scipy.special.erfcinv#2624 - Added implementation of
dpnp.ndarray.tolistmethod #2652 - Added implementation of
dpnp.frexp#2635 - Added implementation of
dpnp.ndarray.tofilemethod #2653 - Extended
pre-commitconfiguration withpyupgrade,actionlint, andgersemihooks #2658 - Added implementation of
dpnp.ndarray.tobytesmethod #2656 - Added implementation of
dpnp.ndarray.__format__method #2662 - Added implementation of
dpnp.ndarray.__bytes__method #2671 - Added implementation of
dpnp.divmod#2674 - Added implementation of
dpnp.isinfunction #2595 - Added implementation of
dpnp.scipy.linalg.lu(SciPy-compatible) #2787 - Added support for ndarray subclassing via
dpnp.ndarray.viewmethod withtypeparameter #2815 - Migrated tensor implementation from
dpctl.tensorintodpnp.tensor, makingdpnpthe primary owner of the Array API-compliant tensor layer #2856
Changed
- Silenced
pybind11CMake message due to using compatibility mode for Python #2614 - Changed the license from
BSD-2-ClausetoBSD-3-Clause#2593 - Defined explicit versions range of the Python interpreter which is needed during the build #2634
- Aligned documentation with NumPy and CuPy style by using short function names #2633
- Added the missing positional-only and keyword-only parameter markers to bring the ufunc signatures into alignment with NumPy #2660
- Redesigned
dpnp.modffunction to be a part ofufuncandvmpybind11 extensions #2654 - Refactored
dpnp.fftanddpnp.randomsubmodules by removing wildcard imports and defining explicit public exports #2649 - Added support for the
outkeyword to accept a tuple, bringing ufunc signatures into alignment with those in NumPy #2664 - Unified public API definitions in
dpnp.linalganddpnp.scipysubmodules #2663 - Aligned the signature of
dpnp.reshapefunction with Python array API by makingshapea required argument #2673 - Unified
dpnppublic API exports by consolidating function exports in__init__.pyand removing wildcard imports #2665 #2666 - Updated tests to reflect the new scalar conversion rules for non-0D
usm_ndarray#2694 - Compile indexing extension with
-fno-sycl-id-queries-fit-in-intto support huge arrays #2721 - Updated
dpnp.fixto reusedpnp.truncinternally #2722 - Changed the build scripts and documentation due to
python setup.py developdeprecation notice #2716 - Clarified behavior on repeated
axesindpnp.tensordotanddpnp.linalg.tensordotfunctions #2733 - Improved documentation of
fileargument indpnp.fromfile#2745 - Aligned
dpnp.trim_zeroswith NumPy 2.4 to support a tuple of integers passed withaxiskeyword #2746 - Aligned
stridesproperty ofdpnp.ndarraywith NumPy and CuPy implementations #2747 - Extended
dpnp.nan_to_numto support broadcasting ofnan,posinf, andneginfkeywords #2754 - Changed
dpnp.partitionimplementation to reusedpnp.sortwhere it brings the performance benefit #2766 dpnpuses pybind11 3.0.2 #2773- Modified CMake files for the extension to explicitly mark DPC++ compiler and dpctl headers as system ones and so to suppress the build warning generated inside them #2770
- Updated QR tests to avoid element-wise comparisons for
rawandrmodes #2785 - Moved all SYCL kernel functors from
backend/extensions/to a unifiedbackend/kernels/directory hierarchy #2816 dpnpuses pybind11 3.0.3 #2834- Disabled
dpnp.tensortests by default inconda build --testto prevent OOM failures during package testing. SetSKIP_TENSOR_TESTS=0to re-enable them on systems with enough memory #2860 dpnpuses pybind11 3.0.4 #2865- Added explicit type check of
kkeyword indpnp.triu_indices#2855
Deprecated
dpnp.asfarrayis deprecated. Usedpnp.asarraywith an appropriate dtype instead #2650- Passing the output array
outpositionally todpnp.minimumanddpnp.maximumis deprecated. Pass the output with the keyword form, e.g.dpnp.minimum(a, b, out=c)#2659 dpnp.ndarray.Tproperty is deprecated for not two-dimensional array to be compatible with the Python array API standard. To achieve a similar behavior whena.ndim != 2, eithera.transpose(), ora.mT(swaps the last two axes only), ordpnp.permute_dims(a, range(a.ndim)[::-1])can be used #2681dpnp.fixis deprecated. Usedpnp.truncinstead, which provides identical functionality #2730
Removed
- Dropped support for Python 3.9 #2626
- Removed the obsolete interface from DPNP to Numba JIT #2647
- Removed the
newshapeparameter fromdpnp.reshape, which has been deprecated since dpnp 0.17.0. Pass it positionally or useshape=on newer versions #2670 - Removed unused
pytestconfiguration frompyproject.toml#2729 - Dropped a conda run dependency on
onemkl-sycl-statspackage #2771
Fixed
- Suppressed a potential deprecation warning triggered during import of the
dpctl.tensormodule #2709 - Corrected a phonetic spelling issue due to incorrect using of
a ndin docstrings #2719 - Resolved an issue causing
dpnp.linspaceto return an incorrect output shape when inputs were passed as arrays #2712 - Resolved an issue where
dpnpalways returns the base allocation pointer, when the view start is expected #2651 - Fixed an issue causing an exception in
dpnp.geomspaceanddpnp.logspacewhen called with explicitdevicekeyword but any input array is allocated on another device #2723 - Fixed
.data.ptrproperty on array views to correctly return the pointer to the view's data location instead of the base allocation pointer #2812 - Resolved an issue with strides calculation in
dpnp.diagonalto return correct values for empty diagonals #2814 - Fixed test tolerance issues for float16 intermediate precision that became visible when testing against...
v0.19.1
Summary
This release achieves dpnp compatibility with Python 3.14 and enables distributing dpnp packages with the latest Python version.
This release is compatible with NumPy 2.3.5.
Added
- Enabled support of Python 3.14 #2631
Changed
- Bumped oneMath version up to
v0.9#2655 - Updated cmake config files for DPC++ compiler, oneMKL, oneDPL and TBB components with
2025.3release changes #2648
Fixed
- Updated tests for erf functions to pass with
scipy>=0.16.0per each integer dtype #2669
Contributors
Full Changelog: 0.19.0...0.19.1
v0.19.0
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
v0.18.1
Summary
This release achieves dpnp compatibility with Python 3.13 and enables distributing dpnp packages with the latest Python version.
Moreover, the release provides compatibility with NumPy 2.3.0 and includes several bug fixes.
Details
Added
- Enabled support of Python 3.13 #2490
Changed
- Updated the tests scope to exclude several
matmultests in case of numpy 2.3.0 due to known NumPy issue #2495
Fixed
- Fixed a bug for calculating the norm (
dpnp.linalg.norm) of empty arrays whenkeepdims=Trueis passed #2477 - Updated the tests for hyperbolic and trigonometric elementwise functions to set correct tolerance for
float16dtype #2483
Contributors
Full Changelog: 0.18.0...0.18.1
v0.18.0
Summary
This release achieves 100% compliance with Python Array API specification (revision 2024.12).
The release provides enhanced compatibility with NumPy 2.2.5. Window and mathematical routines are complemented by a set of new functions.
Moreover, it adds support to build dpnp from the source for AMD GPUs.
Details
Added
- Added implementation of
dpnp.hamming#2341, #2357 - Added implementation of
dpnp.hanning#2358 - Added implementation of
dpnp.blackman#2363 - Added implementation of
dpnp.bartlett#2366 - Added implementation of
dpnp.convolve#2205 - Added implementation of
dpnp.kaiser#2387 - Added implementation of
dpnp.bitwise_count#2308 - Added implementation of
dpnp.common_type#2391 - Added implementation of
dpnp.interp#2417 - Added support to build
dpnpfor specified AMD GPU architecture using CodePlay oneAPI plug-in #2302
Changed
- Improved performance of
dpnp.nansum,dpnp.nanprod,dpnp.nancumsum, anddpnp.nancumprodby reusingdpnp.nan_to_numfunction in implementation of the functions #2339 - Allowed input array of
uint64dtype indpnp.bincount#2361 - The vector norms
ord={None, 1, 2, inf}and the matrix normsord={None, 1, 2, inf, "fro", "nuc"}now consistently return zero for empty arrays, which are arrays with at least one axis of size zero. This change affectsdpnp.linalg.norm,dpnp.linalg.vector_norm, anddpnp.linalg.matrix_norm. Previously, dpnp would either raise errors or return zero depending on the parameters provided #2371 - Extended
dpnp.fft.fftfreqanddpnp.fft.rfftfreqfunctions to supportdtypekeyword per Python Array API spec 2024.12 #2384 - Updated
dpnp.fixto return output with the same data-type of input #2392 - Updated
dpnp.einsumto add support fororder=None#2411 - Updated Python Array API specification version supported to
2024.12#2416 - Removed
einsum_callkeyword fromdpnp.einsum_pathsignature #2421 - Updated
dpnp.vdotto return a 0-D array when one of the inputs is a scalar #2295 - Updated
dpnp.outerto return the same dtype as NumPy when multiplying an array with a scalar #2295 - Changed
"max dimensions"toNonein array API capabilities #2432 - Updated kernel header
i0.hppto exposecyl_bessel_i0function depending on build target #2440 - Added MKL functions
arg,copysign,i0, andinvfrom VM namespace to be used by implementation of the appropriate element-wise functions #2445 - Clarified details about conda install instructions in
Quick start quideandREADME#2446 - Bumped oneMKL version up to
0.7#2448 - The parameter
axisindpnp.take_along_axisfunction has now a default value of-1#2442 - Updates the list of required python versions documented in
Quick Start Guide#2449 - Updated FFT module to ensure an input array is Hermitian before calling complex-to-real FFT #2444
- Aligned
blackconfiguration with the list of supported python versions #2457 - Use
pyproject.tomlinstead ofsetup.pyaligning with current packaging best practices #2462 - Added a clarification to
dpnp.linalg.conddocstring about its behavior with singular matrices #2460
Fixed
- Resolved an issue with an incorrect result returned due to missing dependency from the strided kernel on a copy event in
dpnp.erf#2378 - Updated
conda createcommands build and install instructions ofQuick start guideto avoid a compilation error #2395 - Added handling of empty string passed to a test env variable defining data type scope as a
Falsevalue #2415 - Resolved build issues on non-Intel targets in
dpnp.i0anddpnp.kaiser#2439 - Ensure consistency in the
dpnp.linalg.LinAlgErrorexception raised on singular input matrices for both non-batched and batched cases indpnp.linalg.inv[#2458] (#2458) - Updated test f/w to correct a check of array interface while converting to
numpy.ndarrayfor comparison [#2467] (#2467)
New Contributors
- @david-cortes-intel made their first contribution in #2446
Contributors
Full Changelog: 0.17.0...0.18.0
v0.17.0
Summary
This release achieves 100% compliance with Python Array API specification (revision 2023.12).
The release provides enhanced compatibility with NumPy 2.2.3. Array manipulation, mathematical, logic, and statistics routines are complemented by a set of new functions.
Furthermore, a number of issues relating to running on NVIDIA GPUs have been resolved.
Details
Added
- Added implementation of
dpnp.gcdanddpnp.lcmfunctions #2091 - Added implementation of
dpnp.padfunction #2093 - Added implementation of
dpnp.linalg.svdvalsfunction #2094 - Added implementation of
dpnp.matrix_transposefunction anddpnp.ndarray.mTattribute #2095 - Exposed
cross,diagonal,matrix_norm,outer,tensordot,traceandvector_normfunctions as part ofdpnp.linalgnamespace #2099 - Added implementation of
dpnp.unstackfunction #2106 - Added implementation of
dpnp.ldexpfunction #2110 - Added implementation of
dpnp.vecdotanddpnp.linalg.vecdotfunctions #2112 - Added implementation of
dpnp.i0function #2118 - Added implementation of
dpnp.isfortranfunction #2122 - Added implementation of
dpnp.spacingfunction #2125 - Added implementation of
dpnp.sincfunction #2133 - Added implementation of
dpnp.corrcoeffunction #2139 - Added implementation of
dpnp.deletefunction #2142 - Added implementation of
dpnp.histogramddfunction #2143 - Added implementation of
dpnp.bincountfunction #2145 - Added support of inplace matrix multiplication via the
@=operator #2147 - Added implementation of
dpnp.insertfunction #2151 - Added implementation of
dpnp.broadcast_shapesfunction #2153 - Added implementation of
dpnp.byte_boundsfunction #2155 - Added implementation of
dpnp.ndindexclass #2157 - Added implementation of
dpnp.histogram2dfunction #2262 - Added implementation of
dpnp.binary_reprfunction #2168 - Added implementation of
dpnp.apply_along_axisfunction #2169 - Added implementation of
dpnp.cumulative_sumanddpnp.cumulative_prodfunctions #2171 - Added implementation of
dpnp.apply_over_axesfunction #2174 - Added implementation of
dpnp.compressfunction anddpnp_array.compressmethod #2177 - Added implementation of
dpnp.correlatefunction #2180, #2203 - Added implementation of
dpnp.nanmedianfunction #2191 - Added implementation of
dpnp.ndarray.__iter__method #2206 - Added implementation of
dpnp.iterablefunction #2208 - Added missing aliases on integer data types #2230
- Enabled validation of dpnp conda/wheel packages with Python 3.13 (limited support) #2249
- Added implementation of
dpnp.ndarray.__array_namespace__method #2252 - Added implementation of
dpnp.ndarray.__usm_ndarray__protocol #2261 - Added implementation of
dpnp.isdtypefunction #2274 - Added implementation of Python Array API Inspection namespace #2275
- Added implementation of
dpnp.matvecanddpnp.vecmatfunctions #2288 - Added implementation of
dpnp.unique_all,dpnp.unique_counts,dpnp.unique_inverseanddpnp.unique_valuesfunctions #2320
Changed
- Improved performance of
dpnp.histogramfunction by implementing a dedicated kernel #2027 - Improved performance of
dpnp.ndarray.fillmethod by leveraging on dpctl extension exposingfillkernel #2055 - Extended
dpnp.ndarray.reshapemethod anddpnp.reshapefunction to supportshapeandnewshapekeywords #2080 - Extended support of
orderkeyword in like-functions #2088 - Updated
dpnp.einsumfunction to comply with NEP-50 #2120 - Extended
dpnp.linalg.pinvanddpnp.linalg.matrix_rankfunctions to supportrtolkeyword #2124 - Extended
dpnp.arrayfunction to supportndminkeyword #2135 - Leveraged
dpctl.tensorimplementation fordpnp.put_along_axisfunction #2134 - Corrected
dpnp.ndarray.itemimplemented to return a python scalar instead of zero-dimensional array #2138 - Bumped NumPy, CuPy and Python versions used for building docs #2158
- Extended
dpnp.sortanddpnp.argsortfunctions to supportkind="mergesort"andkind="radixsort"values #2159 - Revised and updated information in
README.mddocument #2166 - Permitted
"same_kind"casting for elementwise inplace operators #2170 - Bumped oneMKL version up to
0.6and added new--onemkl-interfaces-diroption to build script #2193 - Updated implementation of
dpnp.linalg.solvefunction to align withnumpy >= 2.0and Python array API #2198 - Improved performance of
dpnp.choosefunction by implementing a dedicated kernel #2201 - Aligned with the functional changes introduced by NumPy 2.2 #2226
- Improved performance of
dpnp.nan_to_numfunction by implementing a dedicated kernel #2228 - Enabled Intel MKL backends when building from the source with
--onemkl-interfacesoption #2229 - Extended
intersphinx_mappingwith a link to CuPy documentation to make cupy functions clickable from the rendered pages #2232 - Improved performance of
dpnp.nanmedianfunction whenaxisis notNonepassed #2240 - Aligned
dpnp.trim_zeroswith NumPy 2.2 and added support of a multi-dimensional input array #2241 - Disallowed implicit conversion of
dpnp.ndarraytonumpy.ndarray#2260 - Extended
dpnp.ndarray.to_devicemethod to supportstreamkeyword #2263 - Extended
dpnp.sortanddpnp.argsortfunctions anddpnp.ndarray.sortanddpnp.ndarray.argsortmethods to supportdescendingkeyword #2269 - Extended
dpnp.stdanddpnp.varfunctions anddpnp.ndarray.stdanddpnp.ndarray.varmethods to supportmeankeyword #2271 - Aligned
qr,eig,eigh,svdandslogdetfunctions fromdpnp.linalgto return namedtuple per Python array API #2276 - Extended
dpnp.stdanddpnp.varfunctions anddpnp.ndarray.stdanddpnp.ndarray.varmethods to supportcorrectionkeyword #2300 - Extended
dpnp.covfunction to support all keyword arguments #2303 - Disallowed
minlength=Nonevalue passed intodpnp.bincountfunction #2310 - Added build support with
oneMath(new name ofoneMKLinterface) #2313 - Aligned the signature of
dpnp.astypefunction with Python array API #2318
Fixed
- Migrated to experimental extension of DPC++ compiler with
group_load/group_storeper deprecation build warning #2123 - Fixed
DeprecationWarningappearing during running...
v0.16.3
This is a bug fix release which supports building dpnp with DPC++ 2025.0.4 compiler, resolving gh-2243.
Full Changelog: 0.16.2...0.16.3
v0.16.2
This is a bug fix release which supports use of dpnp in virtual environment on Windows, resolving gh-2242.
Full Changelog: 0.16.1...0.16.2
v0.16.1
Summary
This is a maintenance release that fixes bugs and regressions discovered after the 0.16.0 release.
Details
Changed
- Changed to use
Miniforgeinstaller in GitHub actions #2057 - Updated
README.mdto reflect current installation requirements and available options #2166 - Corrected the list of owners and code maintainers #2185
- Bumped the version of
oneMKLinterface used in dpnp build by default to align it with2025.0oneAPI release #2193
Fixed
- Resolved an issue with Compute Follows Data inconsistency in
dpnp.extractfunction #2172 - Resolved an import error when using
dpnpin virtual environment on Linux #2199 - Fixed incorrect result produced by
dpnp.fft.fftfunction when input array has negative strides #2202 - Fixed an issue with
numpy.ndarrayinput processing in thedpnp.from_dlpackfunction and updated the documentation #2209 - Resolved a compilation error when building with DPC++ 2025.1 compiler #2211
Full Changelog: 0.16.0...0.16.1
v0.16.0
Summary
This release reaches an important milestone by making offloading fully asynchronous. Calls to dpnp submit tasks for execution to DPC++ runtime and return without waiting for execution of these tasks to finish. The sequential semantics a user comes to expect from execution of Python script is preserved though.
In addition, this release completes implementation of dpnp.fft module and adds several new array manipulation, indexing and elementwise routines. Moreover, it adds support to build dpnp for Nvidia GPUs.
DPNP is now compatible with NumPy 2.0.
Details
Added
- Added implementation of
dpnp.gradientfunction #1859 - Added implementation of
dpnp.sort_complexfunction #1864 - Added implementation of
dpnp.fft.fftanddpnp.fft.ifftfunctions #1879 - Added implementation of
dpnp.isneginfanddpnp.isposinffunctions #1888 - Added implementation of
dpnp.fft.fftfreqanddpnp.fft.rfftfreqfunctions #1898 - Added implementation of
dpnp.fft.fftshiftanddpnp.fft.ifftshiftfunctions #1900 - Added implementation of
dpnp.isreal,dpnp.isrealobj,dpnp.iscomplex, anddpnp.iscomplexobjfunctions #1916 - Added support to build
dpnpfor Nvidia GPU #1926 - Added implementation of
dpnp.fft.rfftanddpnp.fft.irfftfunctions #1928 - Added implementation of
dpnp.nextafterfunction #1938 - Added implementation of
dpnp.trim_zerofunction #1941 - Added implementation of
dpnp.fft.hfftanddpnp.fft.ihfftfunctions #1954 - Added implementation of
dpnp.logaddexp2function #1955 - Added implementation of
dpnp.flatnonzerofunction #1956 - Added implementation of
dpnp.float_powerfunction #1957 - Added implementation of
dpnp.fft.fft2,dpnp.fft.ifft2,dpnp.fft.fftn, anddpnp.fft.ifftnfunctions #1961 - Added implementation of
dpnp.array_equalanddpnp.array_equivfunctions #1965 - Added implementation of
dpnp.nan_to_numfunction #1966 - Added implementation of
dpnp.fixfunction #1971 - Added implementation of
dpnp.fft.rfft2,dpnp.fft.irfft2,dpnp.fft.rfftn, anddpnp.fft.irfftnfunctions #1982 - Added implementation of
dpnp.argwherefunction #2000 - Added implementation of
dpnp.real_if_closefunction #2002 - Added implementation of
dpnp.ndimanddpnp.sizefunctions #2014 - Added implementation of
dpnp.appendanddpnp.asarray_chkfinitefunctions #2015 - Added implementation of
dpnp.array_split,dpnp.split,dpnp.hsplit,dpnp.vsplit, anddpnp.dsplitfunctions #2017 - Added runtime dependency on
intel-gpu-ocl-icd-systempackage #2023 - Added implementation of
dpnp.ravel_multi_indexanddpnp.unravel_indexfunctions #2022 - Added implementation of
dpnp.resizeanddpnp.rot90functions #2030 - Added implementation of
dpnp.requirefunction #2036
Changed
- Extended pre-commit pylint check to
dpnp.fftmodule #1860 - Reworked
vmvector math backend to reusedpctl.tensorfunctions around unary and binary functions #1868 - Extended
dpnp.ndarray.astypemethod to supportdevicekeyword argument #1870 - Improved performance of
dpnp.linalg.solveby implementing a dedicated kernel for its batch implementation #1877 - Extended
dpnp.fabsto supportorderandoutkeyword arguments by writing a dedicated kernel for it #1878 - Extended
dpnp.linalgmodule to supportusm_ndarrayas input #1880 - Reworked
dpnp.modimplementation to be an alias fordpnp.remainder#1882 - Removed the legacy implementation of linear algebra functions from the backend #1887
- Removed the legacy implementation of elementwise functions from the backend #1890
- Extended
dpnp.allanddpnp.anyto supportoutkeyword argument #1893 - Reworked
dpnp.repeatto add a explicit type check of input array #1894 - Improved performance of different functions by adopting asynchronous implementation of
dpctl#1897 - Extended
dpnp.fmaxanddpnp.fminto supportorderandoutkeyword arguments by writing dedicated kernels for them #1905 - Removed the legacy implementation of array creation and manipulation functions from the backend #1903
- Extended
dpnp.extractimplementation to align with NumPy #1906 - Reworked backend implementation to align with non-backward compatible changes in DPC++ 2025.0 #1907
- Removed the legacy implementation of indexing functions from the backend #1908
- Extended
dpnp.takeimplementation to align with NumPy #1909 - Extended
dpnp.placeimplementation to align with NumPy #1912 - Reworked the implementation of indexing functions to avoid unnecessary casting to
dpnp_arraywhen input isusm_ndarray#1913 - Reduced code duplication in the implementation of sorting functions #1914
- Removed the obsolete dparray interface #1915
- Improved performance of
dpnp.linalgmodule for BLAS routines by adopting asynchronous implementation ofdpctl#1919 - Relocated
dpnp.einsumutility functions to a separate file #1920 - Improved performance of
dpnp.linalgmodule for LAPACK routines by adopting asynchronous implementation ofdpctl#1922 - Reworked
dpnp.matmulto allow larger batch size to be used #1927 - Removed data synchronization where it is not needed #1930
- Leveraged
dpctl.tensorimplementation fordpnp.whereto support scalar as input #1932 - Improved performance of
dpnp.linalg.eighby implementing a dedicated kernel for its batch implementation #1936 - Reworked
dpnp.iscloseanddpnp.allcloseto comply with compute follows data approach #1937 - Extended
dpnp.deg2radanddpnp.radiansto supportorderandoutkeyword arguments by writing dedicated kernels for them #1943 dpnpuses pybind11 2.13.1 #1944- Extended
dpnp.degreesanddpnp.rad2degto supportorderandoutkeyword arguments by writing dedicated kernels for them #1949 - Extended
dpnp.unwrapto support all keyword arguments provided by NumPy #1950 - Leveraged
dpctl.tensorimplementation fordpnp.count_nonzerofunction #1962 - Leveraged
dpctl.tensorimplementation fordpnp.difffunction #1963 - Leveraged
dpctl.tensorimplementation fordpnp.take_along_axisfunction #1969 - Reworked
dpnp.ediff1dimplementation through existing functions instead of a separate kernel #1970 - Reworked
dpnp.uniqueimplementation through existing functions whenaxisis given otherwise through leveragingdpctl.tensorimplementation #1972 - Improved performance of
dpnp.linalg.svdby implementing a dedicated kernel for its batch implementation #1936 - Leveraged
dpctl.tensorimplementation forshape.setter...