Releases: IntelPython/dpnp
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.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
Changed
- 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
...
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.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
Changed
- 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
Fixed
- 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
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.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
- 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
Fixed
- 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 0.13.0
Added
- Added implementation of flipping functions:
dpnp.flip
,dpnp.fliplr
anddpnp.flipud
#1543 - Added implementation of
dpnp.rint
function throughdpnp.round
call #1537 - Added implementation of
dpnp.real
anddpnp.imag
elementwise functions #1557 - 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
Changed
- 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
Fixed
- 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
Full Changelog: 0.12.1...0.13.0
DPNP 0.12.1
Added
- 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
Changed
- 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
Fixed
- 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
Full Changelog: 0.12.0...0.12.1
DPNP 0.12.0
Added
- 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
Changed
- 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
Fixed
- Fixed
dpnp.asarray
function to accept a sequence of dpnp arrays #1355 - Fixed crash in
dpnp.sum
with an empty array #1369 - Fixed compilation error around
sycl::abs
with DPC++ 2023.2.0 #1393 - Fixed Klockwork run and enabled cmake verbose mode for conda build #1433
Full Changelog: 0.11.1...0.12.0
DPNP 0.10.0
Compatibility with dpctl version 0.12.
DPNP 0.9.0
Merge branch 'master' into gold/2021
DPNP 0.8.0
DPNP 0.8.0
Compatibility with dpctl version 0.10.
Compatibility with numba-dppy version 0.16.
Migrating to dpctl.tensor.usm_ndarray as default data container.
DPNP 0.8.0dev0
Backend library API changes