Skip to content

Commit 7464a25

Browse files
Merge master into impl_lu_solve_batch
2 parents eb8c58a + a4edd9b commit 7464a25

File tree

99 files changed

+1818
-1443
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+1818
-1443
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @antonwolfy @AlexanderKalistratov @vlad-perevezentsev @vtavana @ndgrigorian
1+
* @antonwolfy @vlad-perevezentsev @ndgrigorian

.github/workflows/cron-run-tests.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ jobs:
4949
test-packages: "pytest scipy"
5050
- python: 3.12
5151
test-packages: "pytest scipy"
52+
- python: 3.13
53+
test-packages: "pytest scipy"
5254

5355
steps:
5456
- name: Cancel Previous Runs

.github/workflows/openssf-scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
persist-credentials: false
4343

4444
- name: "Run analysis"
45-
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
45+
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
4646
with:
4747
results_file: results.sarif
4848
results_format: sarif
@@ -72,6 +72,6 @@ jobs:
7272

7373
# Upload the results to GitHub's code scanning dashboard.
7474
- name: "Upload to code-scanning"
75-
uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
75+
uses: github/codeql-action/upload-sarif@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6
7676
with:
7777
sarif_file: results.sarif

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ repos:
6565
- id: black
6666
exclude: "dpnp/_version.py"
6767
- repo: https://github.com/pycqa/isort
68-
rev: 6.0.1
68+
rev: 6.1.0
6969
hooks:
7070
- id: isort
7171
name: isort (python)
@@ -113,7 +113,7 @@ repos:
113113
"--disable=redefined-builtin",
114114
"--disable=unused-wildcard-import"
115115
]
116-
files: '^dpnp/(dpnp_iface.*|fft|linalg|special|dpnp_array)'
116+
files: '^dpnp/(dpnp_iface.*|fft|linalg|scipy|dpnp_array)'
117117
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
118118
rev: v2.15.0
119119
hooks:

CHANGELOG.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,31 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [0.19.0] - 2025-MM-DD
7+
## [0.20.0] - MM/DD/2026
8+
9+
### Added
10+
11+
* Added the docstrings to `dpnp.linalg.LinAlgError` exception [#2613](https://github.com/IntelPython/dpnp/pull/2613)
12+
13+
### Changed
14+
15+
* Silenced `pybind11` CMake message due to using compatibility mode for Python [#2614](https://github.com/IntelPython/dpnp/pull/2614)
16+
17+
### Deprecated
18+
19+
### Removed
20+
21+
### Fixed
22+
23+
### Security
24+
25+
26+
## [0.19.0] - 2025-10-06
27+
28+
This release introduces a set of new `dpnp.ndarray` methods and SciPy-compatible functions to improve CuPy compatibility.
29+
It also enhances the performance of existing functions and improves documentation completeness.
30+
Additionally, it extends support for building `dpnp` from the source for NVIDIA GPUs, with optional architecture selection.
31+
This release is compatible with NumPy 2.3.3.
832

933
### Added
1034

@@ -18,6 +42,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1842
* Added implementation of `dpnp.linalg.lu_factor` (SciPy-compatible) [#2557](https://github.com/IntelPython/dpnp/pull/2557), [#2565](https://github.com/IntelPython/dpnp/pull/2565)
1943
* Added implementation of `dpnp.piecewise` [#2550](https://github.com/IntelPython/dpnp/pull/2550)
2044
* Added implementation of `dpnp.linalg.lu_solve` for 2D inputs (SciPy-compatible) [#2575](https://github.com/IntelPython/dpnp/pull/2575)
45+
* Added implementation of `dpnp.special.erfc` [#2588](https://github.com/IntelPython/dpnp/pull/2588)
46+
* Added `dpnp.scipy` submodule to aggregate new SciPy-compatible functions from `linalg` and `special` namespaces [#2603](https://github.com/IntelPython/dpnp/pull/2603)
2147

2248
### Changed
2349

@@ -45,6 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4571
* Redesigned `dpnp.erf` function through pybind11 extension of OneMKL call or dedicated kernel in `ufunc` namespace [#2551](https://github.com/IntelPython/dpnp/pull/2551)
4672
* Improved performance of batched implementation of `dpnp.linalg.det` and `dpnp.linalg.slogdet` [#2572](https://github.com/IntelPython/dpnp/pull/2572)
4773
* Improved documentations of `dpnp.tril_indices` and `dpnp.triu_indices` to clarify the returned order of indices [#2586](https://github.com/IntelPython/dpnp/pull/2586)
74+
* `dpnp` uses pybind11 3.0.1 [#2594](https://github.com/IntelPython/dpnp/pull/2594)
4875

4976
### Deprecated
5077

@@ -67,8 +94,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6794
* Fixed tests for the rounding functions to depend on minimum required numpy version [#2589](https://github.com/IntelPython/dpnp/pull/2589)
6895
* Fixed tests for the ufuncs to depend on minimum required numpy version [#2590](https://github.com/IntelPython/dpnp/pull/2590)
6996
* Added missing permission definition in `Autoupdate pre-commit` GitHub workflow [#2591](https://github.com/IntelPython/dpnp/pull/2591)
97+
* Resolved issue with the cyclic import in `linalg` submodule [#2608](https://github.com/IntelPython/dpnp/pull/2608)
7098

71-
### Security
7299

73100
## [0.18.1] - 2025-06-24
74101

CMakeLists.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.21...3.27 FATAL_ERROR)
22

33
project(dpnp
4-
VERSION 0.19
4+
VERSION 0.20
55
LANGUAGES CXX
66
DESCRIPTION "NumPy-like API accelerated by SYCL."
77
)
@@ -49,18 +49,19 @@ endif()
4949

5050
include(GNUInstallDirs)
5151

52+
# find Python before enabling pybind11
53+
find_package(Python REQUIRED COMPONENTS Development.Module NumPy)
54+
5255
# Fetch pybind11
5356
include(FetchContent)
5457
FetchContent_Declare(
5558
pybind11
56-
URL https://github.com/pybind/pybind11/archive/refs/tags/v2.13.6.tar.gz
57-
URL_HASH SHA256=e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20
59+
URL https://github.com/pybind/pybind11/archive/refs/tags/v3.0.1.tar.gz
60+
URL_HASH SHA256=741633da746b7c738bb71f1854f957b9da660bcd2dce68d71949037f0969d0ca
5861
FIND_PACKAGE_ARGS NAMES pybind11
5962
)
6063
FetchContent_MakeAvailable(pybind11)
6164

62-
find_package(Python REQUIRED COMPONENTS Development.Module NumPy)
63-
6465
set(CYTHON_FLAGS "-t -w \"${CMAKE_SOURCE_DIR}\"")
6566
find_package(Cython REQUIRED)
6667

conda-recipe/conda_build_config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
numpy:
2-
- '1.25'
2+
- '1.26'
33
c_compiler: # [linux]
44
- gcc # [linux]
55
cxx_compiler: # [linux]

conda-recipe/meta.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% set max_compiler_and_mkl_version = environ.get("MAX_BUILD_CMPL_MKL_VERSION", "2026.0a0") %}
22
{% set required_compiler_and_mkl_version = "2025.0" %}
3-
{% set required_dpctl_version = "0.21.0*" %}
3+
{% set required_dpctl_version = "0.21.0" %}
44

55
{% set pyproject = load_file_data('pyproject.toml') %}
66
{% set py_build_deps = pyproject.get('build-system', {}).get('requires', []) %}
@@ -83,7 +83,5 @@ about:
8383
extra:
8484
recipe-maintainers:
8585
- antonwolfy
86-
- AlexanderKalistratov
87-
- vtavana
8886
- vlad-perevezentsev
8987
- ndgrigorian

doc/reference/linalg.rst

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,20 @@ Exceptions
107107
:toctree: generated/
108108
:nosignatures:
109109

110-
dpnp.linalg.linAlgError
110+
dpnp.linalg.LinAlgError
111+
112+
Linear algebra on several matrices at once
113+
------------------------------------------
114+
115+
Several of the linear algebra routines listed above are able to compute results
116+
for several matrices at once, if they are stacked into the same array.
117+
118+
This is indicated in the documentation via input parameter specifications such
119+
as ``a : (..., M, M) {dpnp.ndarray, usm_ndarray}``. This means that if for
120+
instance given an input array ``a.shape == (N, M, M)``, it is interpreted as a
121+
"stack" of N matrices, each of size M-by-M. Similar specification applies to
122+
return values, for instance the determinant has ``det : (...)`` and will in
123+
this case return an array of shape ``det(a).shape == (N,)``. This generalizes
124+
to linear algebra operations on higher-dimensional arrays: the last 1 or 2
125+
dimensions of a multidimensional array are interpreted as vectors or matrices,
126+
as appropriate for each operation.

doc/reference/routines.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
--------
2-
Routines
3-
--------
1+
Routines (NumPy)
2+
================
43

54
The following pages describe NumPy-compatible routines.
65
These functions cover a subset of

0 commit comments

Comments
 (0)