Releases: IntelPython/dpnp
Releases · IntelPython/dpnp
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
0.7.0: Merge pull request #814 from IntelPython/gold/2021
Gold/2021