Releases: IntelPython/dpnp
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...
v0.15.0
Summary
This release completes implementation of dpnp.linalg module and array creation routine, adds cumulative reductions and histogram functions.
Details
Added
- Implemented
dpnp.frombuffer,dpnp.fromfileanddpnp.fromstringfunctions #1727 - Implemented
dpnp.fromfunction,dpnp.fromiteranddpnp.loadtxtfunctions #1728 - Added implementation of
dpnp.linalg.pinvfunction #1704 - Added implementation of
dpnp.linalg.eigvalshfunction #1714 - Added implementation of
dpnp.linalg.tensorinvfunction #1752 - Added implementation of
dpnp.linalg.tensorsolvefunction #1753 - Added implementation of
dpnp.linalg.lstsqfunction #1792 - Added implementation of
dpnp.einsumanddpnp.einsum_pathfunctions #1779 - Added implementation of
dpnp.histogramfunction #1785 - Added implementation of
dpnp.histogram_bin_edgesfunction #1823 - Added implementation of
dpnp.digitizefunction #1847 - Extended pre-commit hooks with
pylintconfiguration #1718 - Extended pre-commit hooks with
codespellconfiguration #1798 - Added a Security policy page #1730
- Implemented
ninandnoutproperties fordpnpelementwise functions #1712 - Implemented
outermethod fordpnpelementwise functions #1813
Changed
- Added support of more number of data types and dimensions for input arrays, and all keyword arguments in
dpnp.crossfunction #1715 - Added support of more number of data types and dimensions for input array, and all keyword arguments in
dpnp.linalg.matrix_rankfunction #1717 - Added support of more number of data types and dimensions for input arrays in
dpnp.innerfunction #1726 - Added support of more number of data types and dimensions for input arrays in
dpnp.linalg.multi_dotfunction #1729 - Added support of more number of data types and dimensions for input arrays in
dpnp.kronfunction #1732 - Added support of more number of data types and dimensions for input arrays in
dpnp.linalg.matrix_powerfunction #1748 - Added support of more number of data types and dimensions for input array, and all keyword arguments in
dpnp.normfunction #1746 - Added support of more number of data types and dimensions for input array in
dpnp.condfunction #1773 - Extended
dpnp.matmulfunction to supportaxeskeyword argument #1705 - Extended
dpnp.searchsortedfunction to supportsideandsorterkeyword arguments #1751 - Extended
dpnp.wherefunction to support scalar type byxandyarrays #1760 - Extended
dpnp.ndarray.transposemethod to supportaxeskeyword as a list #1770 - Extended
dpnp.nancumsumfunction to supportaxis,dtypeandoutkeyword arguments #1781 - Extended
dpnp.nancumprodfunction to supportaxis,dtypeandoutkeyword arguments #1812 - Extended
dpnp.putfunction to support more number of data types and dimensions for input arrays #1838 - Extended
dpnp.tracefunction to supportaxis1,axis2,dtypeandoutkeyword arguments #1842 - Corrected
dpnp.ndarray.realanddpnp.ndarray.imagmethods to return a view of the array #1719 - Corrected
dpnp.nonzerofunction to raiseTypeErrorexception for input array of unexpected type #1764 - Corrected
dpnp.diagonalfunction to return a view of the array #1817 - Removed
dpnp.find_common_typefunction as it was deprecated since NumPy 1.25.0 #1742 - Removed use of
dpctlqueue manager API #1735 - Leveraged
dpctl.tensorimplementation fordpnp.cumsumfunction #1772 - Leveraged
dpctl.tensorimplementation fordpnp.cumprodfunction #1811 - Leveraged
dpctl.tensorimplementation fordpnp.cumlogsumexpfunction #1816 - Leveraged
dpctl.tensorsupport ofoutkeyword argument in reduction anddpnp.wherefunctions #1808 - Aligned with
dpctlinterface changes per Python Array API 2023.12 specification #1774 - Reworked
dpnp.linalg.eiganddpnp.linalg.eigvalsimplementations to fall back on on NumPy calculation due to a lack of required functionality in OneMKL LAPACK #1780 dpnpuses pybind11 2.12.0 #1783- Improved
dpnp.matmulimplementation to use column majorgemmlayout for F-contiguous input arrays #1793 - Improved performance of
dpnp.matmulfunction by call ofdpnp.kronanddpnp.dotfor special cases #1815 - Improved performance of
dpnp.diagfunction by use ofdpnp.diagonalwhich returns a view of the array #1822 - Removed limitations from
diag_indices,diag_indices_from,fill_diagonal,tril_indices,tril_indices_from,triu_indices,triu_indices_fromfunctions and added implementation ofdpnp.mask_indicesfunction #1814
Fixed
- Changed
dpnp.linalg.solveto use a pair ofgetrfandgetrscalls from OneMKL library instead ofgesvone to mitigate an unexpectedRuntimeErrorexception #1763 - Resolved a hang in batch implementation of
dpnp.linalg.solvewhen computes on CPU device #1778 - Resolved an unexpected
TypeErrorexception raised fromdpnp.random.vonmiseswhen used with a scalarkappaargument #1799 - Changed
dpnp.flattento comply with compute follows data approach #1825 - Resolved a hang in batch implementation of
dpnp.linalg.eighwhen computes on CPU device #1832 - Resolved an unexpected
ValueErrorexception raised fromdpnp.linalg.pinvdue to a shape issue indpnp.matmul#1843
New Contributors
Full Changelog: 0.14.0...0.15.0
v0.14.0
This release will require DPC++ 2024.1.0, which no longer supports Intel Gen9 integrated GPUs found in Intel CPUs of 10th generation and older.
Added
- Added implementation of
dpnp.tensordotfunction #1699 - Added implementation of
dpnp.nanmeananddpnp.nanstdfunctions #1654 - Added implementation of
dpnp.anglefunction #1650 - Added implementation of
dpnp.logsumexpanddpnp.reduce_hypotfunctions #1648 - Added implementation of
dpnp.column_stack,dpnp.dstackanddpnp.row_stackfunctions #1647 - Added implementation of
dpnp.nanargmax,dpnp.nanargmin,dpnp.nanmaxanddpnp.nanminfunctions #1646 - Added implementation of
dpnp.clipfunction, available as well as a method of dpnp array #1645 - Added implementation of
dpnp.copysignanddpnp.rsqrtfunctions #1624 - Added implementation of
dpnp.linalg.slogdetfunction #1607 - Added implementation of
dpnp.can_castfunction #1600 - Added implementation of
dpnp.linalg.solvefunction #1598 - Added implementation of
dpnp.broadcast_arraysfunction #1594 - Added implementation of
dpnp.tilefunction #1586 - Added implementation of
dpnp.iinfoanddpnp.finfofunctions #1582 - Added implementation of
dpnp.logaddexpfunction #1561 - Added implementation of
dpnp.positivefunction #1559
Changed
- Changed exception type from
ValueErrortoNotImplementedErrorfor unsupporting keyword arguments in array creation functions #1695 - Enabled compatibility support against numpy
1.26.4#1690 - Implemented
dpnp.true_divideas an alias ondpnp.dividefunction #1641 - Added support of more number of data types and dimensions for input array in
dpnp.vdotfunction #1692 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.qrfunction #1673 - Added support of more number of data types and dimensions for input array in
dpnp.dotfunction #1669 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.invfunction #1665 - Added support of more number of data types for input array in
dpnp.sortanddpnp.argsortfunctions, as well as implementing support ofaxiskeyword #1660 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.choleskyfunction, as well as implementing support ofupperkeyword #1638 - Added support of more number of data types and dimensions for input array in
dpnp.diff, as well as implementing support ofprependandappendkeywords #1637 - Added support of more number of data types and dimensions for input array in
dpnp.matmulfunction #1616 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.detfunction #1607 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.svdfunction, as well as implementing support offull_matrices,compute_uvandhermitiankeywords #1604 - Accepted different data types and dimensions of input arrays in
dpnp.put_along_axisanddpnp.take_along_axisfunctions, as well as available values ofaxiskeyword #1636 - Added
keepdims,initialandwherekeywords todpnp.amaxanddpnp.aminfunctions #1639 - Extended
dpnp.meshgridfunction to supportsparseandcopykeyword arguments #1675 - Extended
dpnp.averagefunction to supportaxis,weights,returnedandkeepdimskeywords anddpnp.nansumfunction withaxis,dtype,keepdimsandoutkeyword arguments #1654 - Extended
dpnp.std,dpnp.varandnanvarfunctions to supportaxis,dtype,outandkeepdimskeyword arguments #1635 - Extended
dpnp.ogridanddpnp.mgridfunctions with support of device-aware keywords of compute follows data paradigm #1622 - Extended
dpnp.indicesfunction to supportdtypeandsparsekeyword arguments, as well as device-aware keywords of compute follows data paradigm #1622 - Extended
dpnp.count_nonzerofunction to supportaxisandkeepdimskeyword arguments #1615 - Extended
dpnp.put_along_axisanddpnp.take_along_axisfunctions to supportout,dtypeandcastingkeyword arguments #1608 - Extended
dpnp.stackanddpnp.concatenatefunctions to supportout,dtypeandcastingkeyword arguments #1608 - Extended
dpnp.vstackfunction to supportdtypeandcastingkeyword arguments #1595 - Extended
dpnp.diag,dpnp.diagflat,dpnp.ptpanddpnp.vanderfunctions with support of extra keywords to align with compute follows data paradigm #1579 - Extended
dpnp.trianddpnp.identityfunctions with support of device-aware keywords of compute follows data paradigm #1577 - Added dedicated in-place kernels to
dpnp.divideanddpnp.floor_dividefunctions #1587 - Redesigned
dpnp.cbrtanddpnp.exp2functions through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensorimplementation #1624 - Redesigned
dpnp.exp,dpnp.expm1,dpnp.log10,dpnp.log1panddpnp.log2functions through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensorimplementation #1576 - Redesigned
dpnp.absfunction through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensorimplementation #1575 - Redesigned
dpnp.hypotfunction through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensorimplementation #1560 - Leveraged
dpctl.tensorimplementation fordpnp.reciprocalfunction #1650 - Leveraged
dpctl.tensorimplementation fordpnp.meanfunction #1632 - Leveraged
dpctl.tensorimplementation fordpnp.repeatfunction #1614 - Leveraged
dpctl.tensorimplementation fordpnp.argmaxanddpnp.argminfunctions #1610 - Leveraged
dpctl.tensorimplementation fordpnp.geomspaceanddpnp.logspacefunctions #1603 - Leveraged
dpctl.tensorimplementation fordpnp.maxanddpnp.minfunctions #1602 - Leveraged
dpctl.tensorimplementation fordpnp.astypefunction #1597 - Leveraged
dpctl.tensorimplementation fordpnp.maximumanddpnp.minimumfunctions #1558
Fixed
- Resolved potential raising of execution placement error from
dpnp.take_along_axisanddpnp.put_along_axisfunctions #1702 - Improved performance of
dpnp.matmulanddpnp.dotfunction whenoutkeyword is passed #1694 - Completed documentation for each array creation functions #1674
- Aligned
dpnp.clipwhere bothminandmaxkeywords haveNonevalue with NumPy implementation #1670 - Fixed a bug related to
outkeyword in elementwise functions #1656 - Resolved compilation warnings due to
-Wvla-extensionoption enabled by default #1651 - Replaced deprecated
IntelDPCPPConfig.cmakescript with vendoredIntelSYCLConfig.cmake#1611 - Improved coverage report to include code of pybind11 extensions #1609
- Improved performance of...