Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,15 @@ This release drops support for Python 3.10, making Python 3.11 the minimum requi
* Deprecated the upcast of `arr` by a Python numeric scalar in `dpnp.append` with `axis=None` (e.g. `int8` array and `1` giving `int64`) [#3125](https://github.com/IntelPython/dpnp/pull/3125)
* Deprecated `dpnp.isfortran`; use `a.flags.fnc` instead [#3140](https://github.com/IntelPython/dpnp/pull/3140)
* Deprecated omitting `axis` in `dpnp.tensor.top_k` for an input that is not 1-D, which searches the flattened array; the default will change to `axis=-1` as in the Array API standard, so pass `axis=None` to keep the current behavior [#3133](https://github.com/IntelPython/dpnp/pull/3133)
* Deprecated `dpnp.config.__DPNP_RAISE_EXCEPION_ON_NUMPY_FALLBACK__`, set by the `DPNP_RAISE_EXCEPION_ON_NUMPY_FALLBACK` environment variable, which has no effect without the NumPy fallback; reading or setting it now emits a `DeprecationWarning` [#3163](https://github.com/IntelPython/dpnp/pull/3163)

### Removed

* Removed the unused `FourZeroOffsets_Indexer`, `FixedDimStridedIndexer` and `ThreeOffsets_FixedDimStridedIndexer` from the libtensor header `utils/offset_utils.hpp` [#3131](https://github.com/IntelPython/dpnp/pull/3131)
* Dropped support for Python 3.10 [#3173](https://github.com/IntelPython/dpnp/pull/3173)
* Removed the `USE_GROUP_LOAD_STORE` macro from the libtensor header `utils/sycl_utils.hpp`, so `sub_group_load` and `sub_group_store` always use the `sycl_ext_oneapi_group_load_store` extension; the `sycl::sub_group` member load/store fallback it selected does not compile with DPC++ 2026.0, the minimum supported compiler [#3174](https://github.com/IntelPython/dpnp/pull/3174)
* Removed the legacy backend implementation of `dpnp.random`, which no longer needs `onemkl-sycl-rng` [#3163](https://github.com/IntelPython/dpnp/pull/3163)
* Removed the unused parts of the legacy `dpnp_backend_c` library, including its empty GTest suite, the `DPNP_BACKEND_TESTS` CMake option and the NumPy fallback helper `call_origin` [#3163](https://github.com/IntelPython/dpnp/pull/3163)
Comment thread
ndgrigorian marked this conversation as resolved.
Resolved

### Fixed

Expand Down
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ option(
"Build dpnp tensor pybind11 offloading extensions with coverage instrumentation"
OFF
)
option(DPNP_BACKEND_TESTS "Enable building of DPNP backend test suite" OFF)
option(
DPNP_WITH_REDIST
"Build DPNP assuming DPC++ redistributable is installed into Python prefix"
Expand Down
3 changes: 2 additions & 1 deletion conda-recipe-cf/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ build:
- dpctl
- numpy
- python
# leaked from mkl-devel-dpcpp; drags in unused onemkl-sycl-{datafitting,rng,stats}
- mkl-dpcpp
# building with Intel DPC++ and do not import the MSVC runtime DLLs
- vc14_runtime # [win]
- ucrt # [win]
Expand Down Expand Up @@ -54,7 +56,6 @@ requirements:
- {{ pin_compatible('onemkl-sycl-blas', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-dft', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-lapack', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-rng', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-vm', min_pin='x.x', max_pin='x') }}
Comment thread
ndgrigorian marked this conversation as resolved.
Resolved
- numpy
- ocl-icd-system # [linux]
Expand Down
3 changes: 2 additions & 1 deletion conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ requirements:
- {{ pin_compatible('onemkl-sycl-blas', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-dft', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-lapack', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-rng', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-vm', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('onemkl-sycl-sparse', min_pin='x.x', max_pin='x') }}
- numpy
Expand All @@ -88,6 +87,8 @@ build:
- dpctl
- numpy
- python
# leaked from mkl-devel-dpcpp; drags in unused onemkl-sycl-{datafitting,rng,stats}
- mkl-dpcpp
# building with Intel DPC++ and do not import the MSVC runtime DLLs
- vc14_runtime # [win]
- ucrt # [win]
Expand Down
3 changes: 1 addition & 2 deletions conda-recipe/rattler_recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ requirements:
- ${{ pin_compatible('onemkl-sycl-blas', lower_bound='x.x', upper_bound='x') }}
- ${{ pin_compatible('onemkl-sycl-dft', lower_bound='x.x', upper_bound='x') }}
- ${{ pin_compatible('onemkl-sycl-lapack', lower_bound='x.x', upper_bound='x') }}
- ${{ pin_compatible('onemkl-sycl-rng', lower_bound='x.x', upper_bound='x') }}
- ${{ pin_compatible('onemkl-sycl-vm', lower_bound='x.x', upper_bound='x') }}
- ${{ pin_compatible('onemkl-sycl-sparse', lower_bound='x.x', upper_bound='x') }}
- numpy
Expand All @@ -80,7 +79,7 @@ requirements:
- dpctl
- numpy
- python
# leaked from mkl-devel-dpcpp; drags in unused onemkl-sycl-{datafitting,stats}
# leaked from mkl-devel-dpcpp; drags in unused onemkl-sycl-{datafitting,rng,stats}
- mkl-dpcpp
# building with Intel DPC++ and do not import the MSVC runtime DLLs
- if: win
Expand Down
2 changes: 1 addition & 1 deletion dpnp/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- `dpnp_utils/`: shared helpers (`get_usm_allocations`, `map_dtype_to_device`, reduction wrappers)
- `linalg/`, `fft/`, `random/`, `scipy/`, `lib/`: subpackages, each exporting through its own `__init__.py`
- `random/`: `_bit_generator.py` (`BitGenerator`, `Philox4x3210`, `PCG64DXSM`, `MRG32k3a`; `SeedSequence` is NumPy's), `_generator.py` (`Generator`, which implements every distribution), `dpnp_random_state.py` (`RandomState`, the same samplers with NumPy's legacy checks) and `dpnp_iface_random.py` (module functions, one `RandomState` per queue). The kernels are in `dpnp.libtensor._rng_impl`.
- Legacy, don't extend: the Cython `dpnp_algo` path and `dpnp_backend_c` (still used by `dpnp.partition` and `dpnp.random`), and the NumPy fallback `call_origin`. New kernels go into `dpnp/libtensor` (see `dpnp/libtensor/AGENTS.md`).
- Legacy, don't extend: the Cython `dpnp_algo` path and `dpnp_backend_c` (still used by `dpnp.partition`). New kernels go into `dpnp/libtensor` (see `dpnp/libtensor/AGENTS.md`).

## Adding a Public Function
1. Implement it in the matching `dpnp_iface_*.py` or subpackage module. Iface modules have no `__all__`.
Expand Down
1 change: 0 additions & 1 deletion dpnp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -235,4 +235,3 @@ add_subdirectory(libtensor/extensions/sparse)

add_subdirectory(dpnp_algo)
add_subdirectory(dpnp_utils)
add_subdirectory(random)
2 changes: 1 addition & 1 deletion dpnp/backend/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
Legacy, don't extend: new kernels and bindings go into `dpnp/libtensor` (see `dpnp/libtensor/AGENTS.md`, which also holds the C++ rules and build options).

## Layout
- `src/`, `include/` and `kernels/dpnp_krnl_*.cpp` build `dpnp_backend_c` (still used by `dpnp.partition` and `dpnp.random`); `tests/` (GTest, `-DDPNP_BACKEND_TESTS=ON`) and `examples/` are not built in CI
- `src/`, `include/` and `kernels/dpnp_krnl_*.cpp` build `dpnp_backend_c` (still used by `dpnp.partition`)
- `cmake/Modules/`: vendored `IntelSYCL`, `MKL`, `TBB` and `oneDPL` config modules, used by the whole build
22 changes: 1 addition & 21 deletions dpnp/backend/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,7 @@
# THE POSSIBILITY OF SUCH DAMAGE.
# *****************************************************************************

set(DPNP_SRC
kernels/dpnp_krnl_arraycreation.cpp
kernels/dpnp_krnl_common.cpp
kernels/dpnp_krnl_random.cpp
kernels/dpnp_krnl_sorting.cpp
src/dpnp_iface_fptr.cpp
src/memory_sycl.cpp
src/queue_sycl.cpp
src/verbose.cpp
src/dpnp_random_state.cpp
)
set(DPNP_SRC kernels/dpnp_krnl_sorting.cpp src/dpnp_iface_fptr.cpp)

set(_trgt "dpnp_backend_c")

Expand Down Expand Up @@ -69,12 +59,6 @@ if(DPNP_GENERATE_COVERAGE)
target_link_options(${_trgt} PRIVATE -fprofile-instr-generate -fcoverage-mapping)
endif()

# Link only the MKL SYCL domains actually used by the backend sources
# (BLAS: mkl_blas::scal; RNG: engines/distributions; VM: vector math ops)
target_link_libraries(
${_trgt}
PUBLIC MKL::MKL_SYCL::BLAS MKL::MKL_SYCL::RNG MKL::MKL_SYCL::VM
)
target_link_libraries(${_trgt} PUBLIC oneDPL)

if(UNIX)
Expand Down Expand Up @@ -103,10 +87,6 @@ if(DPNP_WITH_REDIST)
set_target_properties(${_trgt} PROPERTIES INSTALL_RPATH "$ORIGIN/../../../")
endif()

if(DPNP_BACKEND_TESTS)
add_subdirectory(tests)
endif()

set(_lib_destination dpnp)
set(_include_destination dpnp/backend/include)
install(
Expand Down
137 changes: 0 additions & 137 deletions dpnp/backend/examples/example10.cpp

This file was deleted.

88 changes: 0 additions & 88 deletions dpnp/backend/examples/example5.cpp

This file was deleted.

Loading
Loading