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.gcd
anddpnp.lcm
functions #2091 - Added implementation of
dpnp.pad
function #2093 - Added implementation of
dpnp.linalg.svdvals
function #2094 - Added implementation of
dpnp.matrix_transpose
function anddpnp.ndarray.mT
attribute #2095 - Exposed
cross
,diagonal
,matrix_norm
,outer
,tensordot
,trace
andvector_norm
functions as part ofdpnp.linalg
namespace #2099 - Added implementation of
dpnp.unstack
function #2106 - Added implementation of
dpnp.ldexp
function #2110 - Added implementation of
dpnp.vecdot
anddpnp.linalg.vecdot
functions #2112 - Added implementation of
dpnp.i0
function #2118 - Added implementation of
dpnp.isfortran
function #2122 - Added implementation of
dpnp.spacing
function #2125 - Added implementation of
dpnp.sinc
function #2133 - Added implementation of
dpnp.corrcoef
function #2139 - Added implementation of
dpnp.delete
function #2142 - Added implementation of
dpnp.histogramdd
function #2143 - Added implementation of
dpnp.bincount
function #2145 - Added support of inplace matrix multiplication via the
@=
operator #2147 - Added implementation of
dpnp.insert
function #2151 - Added implementation of
dpnp.broadcast_shapes
function #2153 - Added implementation of
dpnp.byte_bounds
function #2155 - Added implementation of
dpnp.ndindex
class #2157 - Added implementation of
dpnp.histogram2d
function #2262 - Added implementation of
dpnp.binary_repr
function #2168 - Added implementation of
dpnp.apply_along_axis
function #2169 - Added implementation of
dpnp.cumulative_sum
anddpnp.cumulative_prod
functions #2171 - Added implementation of
dpnp.apply_over_axes
function #2174 - Added implementation of
dpnp.compress
function anddpnp_array.compress
method #2177 - Added implementation of
dpnp.correlate
function #2180, #2203 - Added implementation of
dpnp.nanmedian
function #2191 - Added implementation of
dpnp.ndarray.__iter__
method #2206 - Added implementation of
dpnp.iterable
function #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.isdtype
function #2274 - Added implementation of Python Array API Inspection namespace #2275
- Added implementation of
dpnp.matvec
anddpnp.vecmat
functions #2288 - Added implementation of
dpnp.unique_all
,dpnp.unique_counts
,dpnp.unique_inverse
anddpnp.unique_values
functions #2320
Changed
- Improved performance of
dpnp.histogram
function by implementing a dedicated kernel #2027 - Improved performance of
dpnp.ndarray.fill
method by leveraging on dpctl extension exposingfill
kernel #2055 - Extended
dpnp.ndarray.reshape
method anddpnp.reshape
function to supportshape
andnewshape
keywords #2080 - Extended support of
order
keyword in like-functions #2088 - Updated
dpnp.einsum
function to comply with NEP-50 #2120 - Extended
dpnp.linalg.pinv
anddpnp.linalg.matrix_rank
functions to supportrtol
keyword #2124 - Extended
dpnp.array
function to supportndmin
keyword #2135 - Leveraged
dpctl.tensor
implementation fordpnp.put_along_axis
function #2134 - Corrected
dpnp.ndarray.item
implemented to return a python scalar instead of zero-dimensional array #2138 - Bumped NumPy, CuPy and Python versions used for building docs #2158
- Extended
dpnp.sort
anddpnp.argsort
functions to supportkind="mergesort"
andkind="radixsort"
values #2159 - Revised and updated information in
README.md
document #2166 - Permitted
"same_kind"
casting for elementwise inplace operators #2170 - Bumped oneMKL version up to
0.6
and added new--onemkl-interfaces-dir
option to build script #2193 - Updated implementation of
dpnp.linalg.solve
function to align withnumpy >= 2.0
and Python array API #2198 - Improved performance of
dpnp.choose
function by implementing a dedicated kernel #2201 - Aligned with the functional changes introduced by NumPy 2.2 #2226
- Improved performance of
dpnp.nan_to_num
function by implementing a dedicated kernel #2228 - Enabled Intel MKL backends when building from the source with
--onemkl-interfaces
option #2229 - Extended
intersphinx_mapping
with a link to CuPy documentation to make cupy functions clickable from the rendered pages #2232 - Improved performance of
dpnp.nanmedian
function whenaxis
is notNone
passed #2240 - Aligned
dpnp.trim_zeros
with NumPy 2.2 and added support of a multi-dimensional input array #2241 - Disallowed implicit conversion of
dpnp.ndarray
tonumpy.ndarray
#2260 - Extended
dpnp.ndarray.to_device
method to supportstream
keyword #2263 - Extended
dpnp.sort
anddpnp.argsort
functions anddpnp.ndarray.sort
anddpnp.ndarray.argsort
methods to supportdescending
keyword #2269 - Extended
dpnp.std
anddpnp.var
functions anddpnp.ndarray.std
anddpnp.ndarray.var
methods to supportmean
keyword #2271 - Aligned
qr
,eig
,eigh
,svd
andslogdet
functions fromdpnp.linalg
to return namedtuple per Python array API #2276 - Extended
dpnp.std
anddpnp.var
functions anddpnp.ndarray.std
anddpnp.ndarray.var
methods to supportcorrection
keyword #2300 - Extended
dpnp.cov
function to support all keyword arguments #2303 - Disallowed
minlength=None
value passed intodpnp.bincount
function #2310 - Added build support with
oneMath
(new name ofoneMKL
interface) #2313 - Aligned the signature of
dpnp.astype
function with Python array API #2318
Fixed
- Migrated to experimental extension of DPC++ compiler with
group_load/group_store
per deprecation build warning #2123 - Fixed
DeprecationWarning
appearing during running the tests #2156 - Modified installation path for the tests to enable tests run by
pytest --pyargs dpnp.tests
command #2116 - Resolved issues with
dpnp.linalg.svd
implementation invoked on NVIDIA GPU #2212 - Fixed compilation warnings when building from the source with
--target=cuda
option #2225 - Passed
striped
property togroup_load/group_store
functions replicating legacy behavior #2238 - Added a workaround to prevent a race condition in
dpnp.linalg.qr
when running on NVIDIA GPU #2265 - Resolved
IndexError
exception 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.tensordot
for integer data types #2296 - Resolved
ValueError
exception raised bydpnp.linalg.qr
with non-contiguous input array #2314 - Resolved an issue with wrong result returned by
dpnp.fft.fftn
anddpnp.fft.rfftn
when 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