All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This is a bug-fix release.
- Changed to use
Miniforge
installer in GitHub actions #2057 - Updated
README.md
to reflect current installation requirements and available options #2166 - Corrected the list of owners and code maintainers #2185
- Bumped the version of
oneMKL
interface used in dpnp build by default to align it with2025.0
oneAPI release #2193
- Resolved an issue with Compute Follows Data inconsistency in
dpnp.extract
function #2172 - Resolved an import error when using
dpnp
in virtual environment on Linux #2199 - Fixed incorrect result produced by
dpnp.fft.fft
function when input array has negative strides #2202 - Fixed an issue with
numpy.ndarray
input processing in thedpnp.from_dlpack
function and updated the documentation #2209 - Resolved a compilation error when building with DPC++ 2025.1 compiler #2211
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.
- Added implementation of
dpnp.gradient
function #1859 - Added implementation of
dpnp.sort_complex
function #1864 - Added implementation of
dpnp.fft.fft
anddpnp.fft.ifft
functions #1879 - Added implementation of
dpnp.isneginf
anddpnp.isposinf
functions #1888 - Added implementation of
dpnp.fft.fftfreq
anddpnp.fft.rfftfreq
functions #1898 - Added implementation of
dpnp.fft.fftshift
anddpnp.fft.ifftshift
functions #1900 - Added implementation of
dpnp.isreal
,dpnp.isrealobj
,dpnp.iscomplex
, anddpnp.iscomplexobj
functions #1916 - Added support to build
dpnp
for Nvidia GPU #1926 - Added implementation of
dpnp.fft.rfft
anddpnp.fft.irfft
functions #1928 - Added implementation of
dpnp.nextafter
function #1938 - Added implementation of
dpnp.trim_zero
function #1941 - Added implementation of
dpnp.fft.hfft
anddpnp.fft.ihfft
functions #1954 - Added implementation of
dpnp.logaddexp2
function #1955 - Added implementation of
dpnp.flatnonzero
function #1956 - Added implementation of
dpnp.float_power
function #1957 - Added implementation of
dpnp.fft.fft2
,dpnp.fft.ifft2
,dpnp.fft.fftn
, anddpnp.fft.ifftn
functions #1961 - Added implementation of
dpnp.array_equal
anddpnp.array_equiv
functions #1965 - Added implementation of
dpnp.nan_to_num
function #1966 - Added implementation of
dpnp.fix
function #1971 - Added implementation of
dpnp.fft.rfft2
,dpnp.fft.irfft2
,dpnp.fft.rfftn
, anddpnp.fft.irfftn
functions #1982 - Added implementation of
dpnp.argwhere
function #2000 - Added implementation of
dpnp.real_if_close
function #2002 - Added implementation of
dpnp.ndim
anddpnp.size
functions #2014 - Added implementation of
dpnp.append
anddpnp.asarray_chkfinite
functions #2015 - Added implementation of
dpnp.array_split
,dpnp.split
,dpnp.hsplit
,dpnp.vsplit
, anddpnp.dsplit
functions #2017 - Added runtime dependency on
intel-gpu-ocl-icd-system
package #2023 - Added implementation of
dpnp.ravel_multi_index
anddpnp.unravel_index
functions #2022 - Added implementation of
dpnp.resize
anddpnp.rot90
functions #2030 - Added implementation of
dpnp.require
function #2036
- Extended pre-commit pylint check to
dpnp.fft
module #1860 - Reworked
vm
vector math backend to reusedpctl.tensor
functions around unary and binary functions #1868 - Extended
dpnp.ndarray.astype
method to supportdevice
keyword argument #1870 - Improved performance of
dpnp.linalg.solve
by implementing a dedicated kernel for its batch implementation #1877 - Extended
dpnp.fabs
to supportorder
andout
keyword arguments by writing a dedicated kernel for it #1878 - Extended
dpnp.linalg
module to supportusm_ndarray
as input #1880 - Reworked
dpnp.mod
implementation 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.all
anddpnp.any
to supportout
keyword argument #1893 - Reworked
dpnp.repeat
to add a explicit type check of input array #1894 - Improved performance of different functions by adopting asynchronous implementation of
dpctl
#1897 - Extended
dpnp.fmax
anddpnp.fmin
to supportorder
andout
keyword arguments by writing dedicated kernels for them #1905 - Removed the legacy implementation of array creation and manipulation functions from the backend #1903
- Extended
dpnp.extract
implementation 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.take
implementation to align with NumPy #1909 - Extended
dpnp.place
implementation to align with NumPy #1912 - Reworked the implementation of indexing functions to avoid unnecessary casting to
dpnp_array
when input isusm_ndarray
#1913 - Reduced code duplication in the implementation of sorting functions #1914
- Removed the obsolete dparray interface #1915
- Improved performance of
dpnp.linalg
module for BLAS routines by adopting asynchronous implementation ofdpctl
#1919 - Relocated
dpnp.einsum
utility functions to a separate file #1920 - Improved performance of
dpnp.linalg
module for LAPACK routines by adopting asynchronous implementation ofdpctl
#1922 - Reworked
dpnp.matmul
to allow larger batch size to be used #1927 - Removed data synchronization where it is not needed #1930
- Leveraged
dpctl.tensor
implementation fordpnp.where
to support scalar as input #1932 - Improved performance of
dpnp.linalg.eigh
by implementing a dedicated kernel for its batch implementation #1936 - Reworked
dpnp.isclose
anddpnp.allclose
to comply with compute follows data approach #1937 - Extended
dpnp.deg2rad
anddpnp.radians
to supportorder
andout
keyword arguments by writing dedicated kernels for them #1943 dpnp
uses pybind11 2.13.1 #1944- Extended
dpnp.degrees
anddpnp.rad2deg
to supportorder
andout
keyword arguments by writing dedicated kernels for them #1949 - Extended
dpnp.unwrap
to support all keyword arguments provided by NumPy #1950 - Leveraged
dpctl.tensor
implementation fordpnp.count_nonzero
function #1962 - Leveraged
dpctl.tensor
implementation fordpnp.diff
function #1963 - Leveraged
dpctl.tensor
implementation fordpnp.take_along_axis
function #1969 - Reworked
dpnp.ediff1d
implementation through existing functions instead of a separate kernel #1970 - Reworked
dpnp.unique
implementation through existing functions whenaxis
is given otherwise through leveragingdpctl.tensor
implementation #1972 - Improved performance of
dpnp.linalg.svd
by implementing a dedicated kernel for its batch implementation #1936 - Leveraged
dpctl.tensor
implementation forshape.setter
method #1975 - Extended
dpnp.ndarray.copy
to support compute follow data keyword arguments #1976 - Reworked
dpnp.select
implementation through existing functions instead of a separate kernel #1977 - Leveraged
dpctl.tensor
implementation fordpnp.from_dlpack
anddpnp.ndarray.__dlpack__
functions #1980 - Reworked
dpnp.linalg
module backend implementation for BLAS rouitnes to work with OneMKL interfaces #1981 - Reworked
dpnp.ediff1d
implementation to reduce code duplication #1983 dpnp
can be used with any NumPy from 1.23 to 2.0 #1985- Reworked
dpnp.unique
implementation to properly handle NaNs values #1972 - Removed
dpnp.issubcdtype
per NumPy 2.0 recommendation #1996 - Reworked
dpnp.unique
implementation to align with NumPy 2.0 #1999 - Reworked
dpnp.linalg.solve
backend implementation to work with OneMKL Interfaces #2001 - Reworked
dpnp.trapezoid
implementation through existing functions instead of falling back on NumPy #2003 - Added
copy
keyword todpnp.array
to align with NumPy 2.0 #2006 - Extended
dpnp.heaviside
to supportorder
andout
keyword arguments by writing dedicated kernel for it #2008 dpnp
uses pybind11 2.13.5 #2010- Added
COMPILER_VERSION_2025_OR_LATER
flag to be able to rundpnp.fft
module with both 2024.2 and 2025.0 versions of the compiler #2025 - Cleaned up an implementation of
dpnp.gradient
by removing obsolete TODO which is not going to be done #2032 - Updated
Array Manipulation Routines
page in documentation to add missing functions and to remove duplicate entries #2033 dpnp
uses pybind11 2.13.6 #2041- Updated
dpnp.fft
backend to depend onINTEL_MKL_VERSION
flag to ensures that the appropriate code segment is executed based on the version of OneMKL #2035 - Use
dpctl::tensor::alloc_utils::sycl_free_noexcept
instead ofsycl::free
inhost_task
tasks associated with life-time management of temporary USM allocations #2058 - Improved implementation of
dpnp.kron
to avoid unnecessary copy for non-contiguous arrays #2059 - Updated the test suit for
dpnp.fft
module #2071 - Reworked
dpnp.clip
implementation to align with Python Array API 2023.12 specification #2048 - Skipped outdated tests for
dpnp.linalg.solve
due to compatibility issues with NumPy 2.0 #2074 - Updated installation instructions #2098
- Resolved an issue with
dpnp.matmul
when an f_contiguousout
keyword is passed to the the function #1872 - Resolved a possible race condition in
dpnp.inv
#1940 - Resolved an issue with failing tests for
dpnp.append
when running on a device without fp64 support #2034 - Resolved an issue with input array of
usm_ndarray
passed intodpnp.ix_
#2047 - Added a workaround to prevent crash in tests on Windows in internal CI/CD (when running on either Lunar Lake or Arrow Lake) #2062
- Fixed a crash in
dpnp.choose
caused by missing control of releasing temporary allocated device memory #2063 - Resolved compilation warning and error while building in debug mode #2066
- Fixed an issue with asynchronous execution in
dpnp.fft
module #2067
This release completes implementation of dpnp.linalg
module and array creation routine, adds cumulative reductions and histogram functions.
- Implemented
dpnp.frombuffer
,dpnp.fromfile
anddpnp.fromstring
functions #1727 - Implemented
dpnp.fromfunction
,dpnp.fromiter
anddpnp.loadtxt
functions #1728 - Added implementation of
dpnp.linalg.pinv
function #1704 - Added implementation of
dpnp.linalg.eigvalsh
function #1714 - Added implementation of
dpnp.linalg.tensorinv
function #1752 - Added implementation of
dpnp.linalg.tensorsolve
function #1753 - Added implementation of
dpnp.linalg.lstsq
function #1792 - Added implementation of
dpnp.einsum
anddpnp.einsum_path
functions #1779 - Added implementation of
dpnp.histogram
function #1785 - Added implementation of
dpnp.histogram_bin_edges
function #1823 - Added implementation of
dpnp.digitize
function #1847 - Extended pre-commit hooks with
pylint
configuration #1718 - Extended pre-commit hooks with
codespell
configuration #1798 - Added a Security policy page #1730
- Implemented
nin
andnout
properties fordpnp
elementwise functions #1712 - Implemented
outer
method fordpnp
elementwise functions #1813
- Added support of more number of data types and dimensions for input arrays, and all keyword arguments in
dpnp.cross
function #1715 - Added support of more number of data types and dimensions for input array, and all keyword arguments in
dpnp.linalg.matrix_rank
function #1717 - Added support of more number of data types and dimensions for input arrays in
dpnp.inner
function #1726 - Added support of more number of data types and dimensions for input arrays in
dpnp.linalg.multi_dot
function #1729 - Added support of more number of data types and dimensions for input arrays in
dpnp.kron
function #1732 - Added support of more number of data types and dimensions for input arrays in
dpnp.linalg.matrix_power
function #1748 - Added support of more number of data types and dimensions for input array, and all keyword arguments in
dpnp.norm
function #1746 - Added support of more number of data types and dimensions for input array in
dpnp.cond
function #1773 - Extended
dpnp.matmul
function to supportaxes
keyword argument #1705 - Extended
dpnp.searchsorted
function to supportside
andsorter
keyword arguments #1751 - Extended
dpnp.where
function to support scalar type byx
andy
arrays #1760 - Extended
dpnp.ndarray.transpose
method to supportaxes
keyword as a list #1770 - Extended
dpnp.nancumsum
function to supportaxis
,dtype
andout
keyword arguments #1781 - Extended
dpnp.nancumprod
function to supportaxis
,dtype
andout
keyword arguments #1812 - Extended
dpnp.put
function to support more number of data types and dimensions for input arrays #1838 - Extended
dpnp.trace
function to supportaxis1
,axis2
,dtype
andout
keyword arguments #1842 - Corrected
dpnp.ndarray.real
anddpnp.ndarray.imag
methods to return a view of the array #1719 - Corrected
dpnp.nonzero
function to raiseTypeError
exception for input array of unexpected type #1764 - Corrected
dpnp.diagonal
function to return a view of the array #1817 - Removed
dpnp.find_common_type
function as it was deprecated since NumPy 1.25.0 #1742 - Removed use of
dpctl
queue manager API #1735 - Leveraged
dpctl.tensor
implementation fordpnp.cumsum
function #1772 - Leveraged
dpctl.tensor
implementation fordpnp.cumprod
function #1811 - Leveraged
dpctl.tensor
implementation fordpnp.cumlogsumexp
function #1816 - Leveraged
dpctl.tensor
support ofout
keyword argument in reduction anddpnp.where
functions #1808 - Aligned with
dpctl
interface changes per Python Array API 2023.12 specification #1774 - Reworked
dpnp.linalg.eig
anddpnp.linalg.eigvals
implementations to fall back on on NumPy calculation due to a lack of required functionality in OneMKL LAPACK #1780 dpnp
uses pybind11 2.12.0 #1783- Improved
dpnp.matmul
implementation to use column majorgemm
layout for F-contiguous input arrays #1793 - Improved performance of
dpnp.matmul
function by call ofdpnp.kron
anddpnp.dot
for special cases #1815 - Improved performance of
dpnp.diag
function by use ofdpnp.diagonal
which 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_from
functions and added implementation ofdpnp.mask_indices
function #1814
- Changed
dpnp.linalg.solve
to use a pair ofgetrf
andgetrs
calls from OneMKL library instead ofgesv
one to mitigate an unexpectedRuntimeError
exception #1763 - Resolved a hang in batch implementation of
dpnp.linalg.solve
when computes on CPU device #1778 - Resolved an unexpected
TypeError
exception raised fromdpnp.random.vonmises
when used with a scalarkappa
argument #1799 - Changed
dpnp.flatten
to comply with compute follows data approach #1825 - Resolved a hang in batch implementation of
dpnp.linalg.eigh
when computes on CPU device #1832 - Resolved an unexpected
ValueError
exception raised fromdpnp.linalg.pinv
due to a shape issue indpnp.matmul
#1843
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 implementation of
dpnp.tensordot
function #1699 - Added implementation of
dpnp.nanmean
anddpnp.nanstd
functions #1654 - Added implementation of
dpnp.angle
function #1650 - Added implementation of
dpnp.logsumexp
anddpnp.reduce_hypot
functions #1648 - Added implementation of
dpnp.column_stack
,dpnp.dstack
anddpnp.row_stack
functions #1647 - Added implementation of
dpnp.nanargmax
,dpnp.nanargmin
,dpnp.nanmax
anddpnp.nanmin
functions #1646 - Added implementation of
dpnp.clip
function, available as well as a method of dpnp array #1645 - Added implementation of
dpnp.copysign
anddpnp.rsqrt
functions #1624 - Added implementation of
dpnp.linalg.slogdet
function #1607 - Added implementation of
dpnp.can_cast
function #1600 - Added implementation of
dpnp.linalg.solve
function #1598 - Added implementation of
dpnp.broadcast_arrays
function #1594 - Added implementation of
dpnp.tile
function #1586 - Added implementation of
dpnp.iinfo
anddpnp.finfo
functions #1582 - Added implementation of
dpnp.logaddexp
function #1561 - Added implementation of
dpnp.positive
function #1559
- Changed exception type from
ValueError
toNotImplementedError
for unsupporting keyword arguments in array creation functions #1695 - Enabled compatibility support against numpy
1.26.4
#1690 - Implemented
dpnp.true_divide
as an alias ondpnp.divide
function #1641 - Added support of more number of data types and dimensions for input array in
dpnp.vdot
function #1692 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.qr
function #1673 - Added support of more number of data types and dimensions for input array in
dpnp.dot
function #1669 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.inv
function #1665 - Added support of more number of data types for input array in
dpnp.sort
anddpnp.argsort
functions, as well as implementing support ofaxis
keyword #1660 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.cholesky
function, as well as implementing support ofupper
keyword #1638 - Added support of more number of data types and dimensions for input array in
dpnp.diff
, as well as implementing support ofprepend
andappend
keywords #1637 - Added support of more number of data types and dimensions for input array in
dpnp.matmul
function #1616 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.det
function #1607 - Added support of more number of data types and dimensions for input array in
dpnp.linalg.svd
function, as well as implementing support offull_matrices
,compute_uv
andhermitian
keywords #1604 - Accepted different data types and dimensions of input arrays in
dpnp.put_along_axis
anddpnp.take_along_axis
functions, as well as available values ofaxis
keyword #1636 - Added
keepdims
,initial
andwhere
keywords todpnp.amax
anddpnp.amin
functions #1639 - Extended
dpnp.meshgrid
function to supportsparse
andcopy
keyword arguments #1675 - Extended
dpnp.average
function to supportaxis
,weights
,returned
andkeepdims
keywords anddpnp.nansum
function withaxis
,dtype
,keepdims
andout
keyword arguments #1654 - Extended
dpnp.std
,dpnp.var
andnanvar
functions to supportaxis
,dtype
,out
andkeepdims
keyword arguments #1635 - Extended
dpnp.ogrid
anddpnp.mgrid
functions with support of device-aware keywords of compute follows data paradigm #1622 - Extended
dpnp.indices
function to supportdtype
andsparse
keyword arguments, as well as device-aware keywords of compute follows data paradigm #1622 - Extended
dpnp.count_nonzero
function to supportaxis
andkeepdims
keyword arguments #1615 - Extended
dpnp.put_along_axis
anddpnp.take_along_axis
functions to supportout
,dtype
andcasting
keyword arguments #1608 - Extended
dpnp.stack
anddpnp.concatenate
functions to supportout
,dtype
andcasting
keyword arguments #1608 - Extended
dpnp.vstack
function to supportdtype
andcasting
keyword arguments #1595 - Extended
dpnp.diag
,dpnp.diagflat
,dpnp.ptp
anddpnp.vander
functions with support of extra keywords to align with compute follows data paradigm #1579 - Extended
dpnp.tri
anddpnp.identity
functions with support of device-aware keywords of compute follows data paradigm #1577 - Added dedicated in-place kernels to
dpnp.divide
anddpnp.floor_divide
functions #1587 - Redesigned
dpnp.cbrt
anddpnp.exp2
functions through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1624 - Redesigned
dpnp.exp
,dpnp.expm1
,dpnp.log10
,dpnp.log1p
anddpnp.log2
functions through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1576 - Redesigned
dpnp.abs
function through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1575 - Redesigned
dpnp.hypot
function through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1560 - Leveraged
dpctl.tensor
implementation fordpnp.reciprocal
function #1650 - Leveraged
dpctl.tensor
implementation fordpnp.mean
function #1632 - Leveraged
dpctl.tensor
implementation fordpnp.repeat
function #1614 - Leveraged
dpctl.tensor
implementation fordpnp.argmax
anddpnp.argmin
functions #1610 - Leveraged
dpctl.tensor
implementation fordpnp.geomspace
anddpnp.logspace
functions #1603 - Leveraged
dpctl.tensor
implementation fordpnp.max
anddpnp.min
functions #1602 - Leveraged
dpctl.tensor
implementation fordpnp.astype
function #1597 - Leveraged
dpctl.tensor
implementation fordpnp.maximum
anddpnp.minimum
functions #1558
- Resolved potential raising of execution placement error from
dpnp.take_along_axis
anddpnp.put_along_axis
functions #1702 - Improved performance of
dpnp.matmul
anddpnp.dot
function whenout
keyword is passed #1694 - Completed documentation for each array creation functions #1674
- Aligned
dpnp.clip
where bothmin
andmax
keywords haveNone
value with NumPy implementation #1670 - Fixed a bug related to
out
keyword in elementwise functions #1656 - Resolved compilation warnings due to
-Wvla-extension
option enabled by default #1651 - Replaced deprecated
IntelDPCPPConfig.cmake
script with vendoredIntelSYCLConfig.cmake
#1611 - Improved coverage report to include code of pybind11 extensions #1609
- Improved performance of
dpnp.atleast_2d
anddpnp.atleast_3d
functions and fixed to return a correct shape of resulting array #1560
- Added implementation of
dpnp.imag
anddpnp.real
functions, as well as the corresponding properties and setters of dpnp array #1557 - Added implementation of flipping functions:
dpnp.flip
,dpnp.fliplr
anddpnp.flipud
#1543 - Added implementation of
dpnp.rint
function throughdpnp.round
call #1537 - Added in-place support for arithmetic operators #1530
- Dropped build and uploading the package with
python=3.8
todppy/label/dev
channel of Anaconda #1534 - Implemented build and uploading the package with
python=3.11
todppy/label/dev
channel of Anaconda #1501 - Added the versioneer to compute a product version number #1497
- Added
cython
support of3.0.0
or above version #1495
- Updated
Build from source
section inREADME.md
to state all the required prerequisite packages #1553 - Reworked
dpnp.hstack
anddpnp.atleast_1d
through existing functions to get rid of falling back on NumPy #1544 - Reworked
dpnp.asfarray
through existing functions to get rid of falling back on NumPy #1542 - Converted from
raw
tomulti_ptr
withaddress_space_cast
to adopt towards changes introduced inSYCL 2020
#1538 - Updated install instruction via
pip
#1531 - Reworked
dpnp.copyto
through existing functions instead of a separate kernel #1516 - Aligned default order value with NumPy in asarray-like functions #1526
- Created unary and binary elementwise functions at module import #1522
- Redesigned trigonometric and hyperbolic functions through pybind11 extension of OneMKL calls where possible or leveraging on
dpctl.tensor
implementation #1545 - Added
dpnp.signbit
anddpnp.proj
functions implemented through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1535 - Redesigned
dpnp.round
anddpnp.around
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1520 - Redesigned
dpnp.sign
anddpnp.negative
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1523 - Redesigned
dpnp.conjugate
anddpnp.conj
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1519 - Redesigned
dpnp.ceil
,dpnp.floor
anddpnp.trunc
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1518 - Redesigned
dpnp.remainder
anddpnp.mod
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1515 - Redesigned
dpnp.power
function through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1476 - Leveraged
dpctl.tensor
implementation fordpnp.put
function #1529 - Leveraged
dpctl.tensor
implementation fordpnp.roll
anddpnp.rollaxis
functions #1517 - Leveraged
dpctl.tensor
implementation fordpnp.copy
function #1540 - Leveraged
dpctl.tensor
implementation fordpnp.expand_dims
anddpnp.swapaxes
functions #1532 - Leveraged
dpctl.tensor
implementation for bitwise operations #1508 - Leveraged
dpctl.tensor
implementation fordpnp.all
anddpnp.any
functions #1512 - Leveraged
dpctl.tensor
implementation fordpnp.stack
function #1509 - Leveraged
dpctl.tensor
implementation fordpnp.concatenate
function #1507 - Leveraged
dpctl.tensor
implementation fordpnp.isnan
,dpnp.isinf
anddpnp.isfinite
functions #1504 - Leveraged
dpctl.tensor
implementation fordpnp.take
function #1492 - Refreshed API References block in the documentation #1490
- Refreshed documentation to reflect an actual product behavior #1485
- Upgraded the build flow to use newer
pybind11=2.11.1
version #1510 - Updated pre-commit hooks to run with
flake8=6.1.0
andblack=23.7.0
#1505 - Pinned DPC++ and OneMKL versions to `2023.2`` release #1496
- Added a specialized kernel for F-contiguous arrays to
dpnp.sum
withaxis=1
#1489 - Removed a workaround to Klockwork since it is not used anymore due to transition to Coverity tool #1493
- Resolved
Logically dead code
issue addressed by Coverity scan #1541 - Resolved
Arguments in wrong order
issue addressed by Coverity scan #1513 - Resolved
Pointer to local outside scope
issue addressed by Coverity scan #1514 - Fixed assigning a value to potentially none-valued dictionary coverage generation script #1511
- Resolved issues with running
dpnp.allclose
function on a device without fp64 support #1536 - Resolved issues with running FFT functions on a device without fp64 support #1524
- Resolved issues with running mathematical functions on a device without fp64 support #1502
- Resolved issues with running random functions on a device without fp64 support #1498
- Resolved issues with running statistics functions on a device without fp64 support #1494
- Added
classifiers metadata
to a description of dpnp package #1460 - Added
pygrep-hooks
to pre-commit config #1454 - Added
flake8
to pre-commit config #1453 - Added
isort
to pre-commit config #1451 - Added
clang
format to pre-commit config #1450 - Added
black
to pre-commit config #1449 - Added
pre-commit
hooks #1448
- Pinned to
dpctl>=0.14.5
as host and run dependencies #1481 - Pinned dependent
cython
package to a version less than3.0.0
#1480 - Added a specialized kernel for
dpnp.sum
withaxis=0
as a pybind11 extension #1479 - Redesigned
dpnp.square
function through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1473 - Redesigned
dpnp.cos
anddpnp.sin
functions through pybind11 extension of OneMKL calls where possible or leveraging ondpctl.tensor
implementation #1471 - Redesigned
dpnp.sqrt
function through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1470 - Redesigned
dpnp.log
function through pybind11 extension of OneMKL call where possible or leveraging ondpctl.tensor
implementation #1469 - Leveraged
dpctl.tensor
implementation for logical operations #1464 - Leveraged
dpctl.tensor
implementation fordpnp.floor_divide
function #1462 - Leveraged
dpctl.tensor
implementation for comparison functions #1458
- Improved
dpnp.dot
function to support OneMKL calls for input and output arrays with strides #1477 - Resolved issues with running
dpnp.linalg
functions on a device without fp64 support #1474 - Added
dtype
check of fp64 support by the resulting array incall_origin
function #1457 - Resolved a compilation warning with
std::getenv()
call on Windows #1452 - Corrected a link to OneAPI Toolkit in Installation Guide #1445
- Implemented
dpnp.broadcast_to
function #1333 - Implemented
dpnp.extract
function #1340 - Implemented
dpnp.linalg.eigh
function through pybind11 extension of OneMKL call #1383 - Implemented
dpnp.mean
function #1431 - Added support of bool types in bitwise operations #1334
- Added
out
parameter indpnp.add
function #1329 - Added
out
parameter indpnp.multiply
function #1365 - Added
out
parameter indpnp.sqrt
function #1332 - Added
rowvar
parameter indpnp.cov
function #1371 - Added
nbytes
property to dpnp array #1359 - Introduced a new github Action to control code coverage #1373
- Added change log #1439
- Leveraged
dpctl.tensor
implementation fordpnp.place
function #1337 - Leveraged
dpctl.tensor
implementation fordpnp.moveaxis
function #1382 - Leveraged
dpctl.tensor
implementation fordpnp.squeeze
function #1381 - Leveraged
dpctl.tensor
implementation fordpnp.where
function #1380 - Leveraged
dpctl.tensor
implementation fordpnp.transpose
function #1389 - Leveraged
dpctl.tensor
implementation fordpnp.reshape
function #1391 - Leveraged
dpctl.tensor
implementation fordpnp.add
,dpnp.multiply
anddpnp.subtract
functions #1430 - Leveraged
dpctl.tensor
implementation fordpnp.sum
function #1426 - Leveraged
dpctl.tensor
implementation fordpnp.result_type
function #1435 - Reused OneDPL
std::nth_element
function indpnp.partition
with 1d array #1406 - Transitioned dpnp build system to use scikit-build #1349
- Renamed included dpnp_algo_*.pyx files to *.pxi #1356
- Implemented support of key as a tuple in
dpnp.__getitem__()
anddpnp.__setitem__()
functions #1362 - Selected dpnp own kernels for elementwise functions instead of OneMKL VM calls on a device without fp64 aspect #1386
- Pinned to
sysroot>=2.28
and transitioned toconda-forge
channel #1408 - Redesigned
dpnp.divide
implementation to calldiv
from OneMKL for C-contiguous data or to usedpctl.tensor
library otherwise #1418 - Changed an engine used for random generated array on GPU device from MT19937 to MCG59 #1423
- Implemented in-place support of
dpnp.divide
#1434 - Redesigned
dpnp.outer
implementation throughdpnp.multiply
with broadcasted arrays #1436 - Pinned to
dpctl>=0.14.3
as host and run dependencies #1437 - Reimplemented
dpnp.cov
through existing dpnp function instead of a separate kernel #1396