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 the tests #2156 - Modified installation path for the tests to enable tests run by
pytest --pyargs dpnp.testscommand #2116 - Resolved issues with
dpnp.linalg.svdimplementation invoked on NVIDIA GPU #2212 - Fixed compilation warnings when building from the source with
--target=cudaoption #2225 - Passed
stripedproperty togroup_load/group_storefunctions replicating legacy behavior #2238 - Added a workaround to prevent a race condition in
dpnp.linalg.qrwhen running on NVIDIA GPU #2265 - Resolved
IndexErrorexception raised bydpnp.matmul#2278 - Declared missing required dependencies on numpy and dpctl packages from dpnp wheel package #2283
- Resolved an issue with wrong result shape returned by
dpnp.vecdot#2294 - Resolved an issue with wrong result returned by
dpnp.tensordotfor integer data types #2296 - Resolved
ValueErrorexception raised bydpnp.linalg.qrwith non-contiguous input array #2314 - Resolved an issue with wrong result returned by
dpnp.fft.fftnanddpnp.fft.rfftnwhen running on NVIDIA GPU #2332 - Added a workaround to prevent a memory corruption in
dpnp.correlate#2333
New Contributors
- @ndgrigorian made their first contribution in #2055
- @jharlow-intel made their first contribution in #2285
Contributors
- @AlexanderKalistratov
- @antonwolfy
- @ekomarova
- @jharlow-intel
- @npolina4
- @ndgrigorian
- @vlad-perevezentsev
- @vtavana
Full Changelog: 0.16.3...0.17.0