Skip to content

v0.17.0

Latest
Compare
Choose a tag to compare
@antonwolfy antonwolfy released this 26 Feb 13:39
· 8 commits to master since this release
750171d

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 and dpnp.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 and dpnp.ndarray.mT attribute #2095
  • Exposed cross, diagonal, matrix_norm, outer, tensordot, trace and vector_norm functions as part of dpnp.linalg namespace #2099
  • Added implementation of dpnp.unstack function #2106
  • Added implementation of dpnp.ldexp function #2110
  • Added implementation of dpnp.vecdot and dpnp.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 and dpnp.cumulative_prod functions #2171
  • Added implementation of dpnp.apply_over_axes function #2174
  • Added implementation of dpnp.compress function and dpnp_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 and dpnp.vecmat functions #2288
  • Added implementation of dpnp.unique_all, dpnp.unique_counts, dpnp.unique_inverse and dpnp.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 exposing fill kernel #2055
  • Extended dpnp.ndarray.reshape method and dpnp.reshape function to support shape and newshape 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 and dpnp.linalg.matrix_rank functions to support rtol keyword #2124
  • Extended dpnp.array function to support ndmin keyword #2135
  • Leveraged dpctl.tensor implementation for dpnp.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 and dpnp.argsort functions to support kind="mergesort" and kind="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 with numpy >= 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 when axis is not None 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 to numpy.ndarray #2260
  • Extended dpnp.ndarray.to_device method to support stream keyword #2263
  • Extended dpnp.sort and dpnp.argsort functions and dpnp.ndarray.sort and dpnp.ndarray.argsort methods to support descending keyword #2269
  • Extended dpnp.std and dpnp.var functions and dpnp.ndarray.std and dpnp.ndarray.var methods to support mean keyword #2271
  • Aligned qr, eig, eigh, svd and slogdet functions from dpnp.linalg to return namedtuple per Python array API #2276
  • Extended dpnp.std and dpnp.var functions and dpnp.ndarray.std and dpnp.ndarray.var methods to support correction keyword #2300
  • Extended dpnp.cov function to support all keyword arguments #2303
  • Disallowed minlength=None value passed into dpnp.bincount function #2310
  • Added build support with oneMath (new name of oneMKL 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 to group_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 by dpnp.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 by dpnp.linalg.qr with non-contiguous input array #2314
  • Resolved an issue with wrong result returned by dpnp.fft.fftn and dpnp.fft.rfftn when running on NVIDIA GPU #2332
  • Added a workaround to prevent a memory corruption in dpnp.correlate #2333

New Contributors

Contributors

Full Changelog: 0.16.3...0.17.0