Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ In addition, this release completes implementation of `dpnp.fft` module and adds
* Added implementation of `dpnp.array_split`, `dpnp.split`, `dpnp.hsplit`, `dpnp.vsplit`, and `dpnp.dsplit` functions [#2017](https://github.com/IntelPython/dpnp/pull/2017)
* Added runtime dependency on `intel-gpu-ocl-icd-system` package [#2023](https://github.com/IntelPython/dpnp/pull/2023)
* Added implementation of `dpnp.ravel_multi_index` and `dpnp.unravel_index` functions [#2022](https://github.com/IntelPython/dpnp/pull/2022)
* Added implementation of `dpnp.resize` and `dpnp.rot90` functions [#2030](https://github.com/IntelPython/dpnp/pull/2030)

### Change

Expand Down Expand Up @@ -96,12 +97,18 @@ In addition, this release completes implementation of `dpnp.fft` module and adds
* Added `copy` keyword to `dpnp.array` to align with NumPy 2.0 [#2006](https://github.com/IntelPython/dpnp/pull/2006)
* Extended `dpnp.heaviside` to support `order` and `out` keyword arguments by writing dedicated kernel for it [#2008](https://github.com/IntelPython/dpnp/pull/2008)
* `dpnp` uses pybind11 2.13.5 [#2010](https://github.com/IntelPython/dpnp/pull/2010)
* Add `COMPILER_VERSION_2025_OR_LATER` flag to be able to run `dpnp.fft` module with both 2024.2 and 2025.0 versions of the compiler [#2025](https://github.com/IntelPython/dpnp/pull/2025)
* Added `COMPILER_VERSION_2025_OR_LATER` flag to be able to run `dpnp.fft` module with both 2024.2 and 2025.0 versions of the compiler [#2025](https://github.com/IntelPython/dpnp/pull/2025)
* Cleaned up an implementation of `dpnp.gradient` by removing obsolete TODO which is not going to be done [#2032](https://github.com/IntelPython/dpnp/pull/2032)
* Updated `Array Manipulation Routines` page in documentation to add missing functions and to remove duplicate entries [#2033](https://github.com/IntelPython/dpnp/pull/2033)
* `dpnp` uses pybind11 2.13.6 [#2041](https://github.com/IntelPython/dpnp/pull/2041)
* Updated `dpnp.fft` backend to depend on `INTEL_MKL_VERSION` flag to ensures that the appropriate code segment is executed based on the version of OneMKL [#2035](https://github.com/IntelPython/dpnp/pull/2035)

### Fixed

* Resolved an issue with `dpnp.matmul` when an f_contiguous `out` keyword is passed to the the function [#1872](https://github.com/IntelPython/dpnp/pull/1872)
* Resolved a possible race condition in `dpnp.inv` [#1940](https://github.com/IntelPython/dpnp/pull/1940)
* Resolved an issue with failing tests for `dpnp.append` when running on a device without fp64 support [#2034](https://github.com/IntelPython/dpnp/pull/2034)


## [0.15.0] - 05/25/2024

Expand Down
10 changes: 2 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,14 @@ else()
find_package(oneDPL REQUIRED PATHS ${CMAKE_SOURCE_DIR}/dpnp/backend/cmake/Modules NO_DEFAULT_PATH)
endif()

if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "2025.0.0")
add_definitions(-DCOMPILER_VERSION_2025_OR_LATER=1)
else()
add_definitions(-DCOMPILER_VERSION_2025_OR_LATER=0)
endif()

include(GNUInstallDirs)

# Fetch pybind11
include(FetchContent)
FetchContent_Declare(
pybind11
URL https://github.com/pybind/pybind11/archive/refs/tags/v2.13.5.tar.gz
URL_HASH SHA256=b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252
URL https://github.com/pybind/pybind11/archive/refs/tags/v2.13.6.tar.gz
URL_HASH SHA256=e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20
)
FetchContent_MakeAvailable(pybind11)

Expand Down
28 changes: 14 additions & 14 deletions dpnp/backend/extensions/fft/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,12 @@ class DescriptorWrapper
const typename valT::value_type dim = get_dim();

valT fwd_strides(dim + 1);
#if COMPILER_VERSION_2025_OR_LATER
#if INTEL_MKL_VERSION >= 20250000
descr_.get_value(mkl_dft::config_param::FWD_STRIDES, &fwd_strides);
#else
descr_.get_value(mkl_dft::config_param::FWD_STRIDES,
fwd_strides.data());
#endif // COMPILER_VERSION_2025_OR_LATER
#endif // INTEL_MKL_VERSION
return fwd_strides;
}

Expand All @@ -129,11 +129,11 @@ class DescriptorWrapper
throw py::value_error(
"Strides length does not match descriptor's dimension");
}
#if COMPILER_VERSION_2025_OR_LATER
#if INTEL_MKL_VERSION >= 20250000
descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides);
#else
descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides.data());
#endif // COMPILER_VERSION_2025_OR_LATER
#endif // INTEL_MKL_VERSION
}

// config_param::BWD_STRIDES
Expand All @@ -143,12 +143,12 @@ class DescriptorWrapper
const typename valT::value_type dim = get_dim();

valT bwd_strides(dim + 1);
#if COMPILER_COMPILER_VERSION_2025_OR_LATER
#if INTEL_MKL_VERSION >= 20250000
descr_.get_value(mkl_dft::config_param::BWD_STRIDES, &bwd_strides);
#else
descr_.get_value(mkl_dft::config_param::BWD_STRIDES,
bwd_strides.data());
#endif // COMPILER_VERSION_2025_OR_LATER
#endif // INTEL_MKL_VERSION
return bwd_strides;
}

Expand All @@ -161,11 +161,11 @@ class DescriptorWrapper
throw py::value_error(
"Strides length does not match descriptor's dimension");
}
#if COMPILER_VERSION_2025_OR_LATER
#if INTEL_MKL_VERSION >= 20250000
descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides);
#else
descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides.data());
#endif // COMPILER_VERSION_2025_OR_LATER
#endif // INTEL_MKL_VERSION
}

// config_param::FWD_DISTANCE
Expand Down Expand Up @@ -203,7 +203,7 @@ class DescriptorWrapper
// config_param::PLACEMENT
bool get_in_place()
{
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
mkl_dft::config_value placement;
descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
return (placement == mkl_dft::config_value::INPLACE);
Expand All @@ -212,12 +212,12 @@ class DescriptorWrapper
DFTI_CONFIG_VALUE placement;
descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
return (placement == DFTI_CONFIG_VALUE::DFTI_INPLACE);
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
}

void set_in_place(const bool &in_place_request)
{
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
descr_.set_value(mkl_dft::config_param::PLACEMENT,
(in_place_request)
? mkl_dft::config_value::INPLACE
Expand All @@ -228,7 +228,7 @@ class DescriptorWrapper
(in_place_request)
? DFTI_CONFIG_VALUE::DFTI_INPLACE
: DFTI_CONFIG_VALUE::DFTI_NOT_INPLACE);
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
}

// config_param::PRECISION
Expand All @@ -243,7 +243,7 @@ class DescriptorWrapper
// config_param::COMMIT_STATUS
bool is_committed()
{
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
mkl_dft::config_value committed;
descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
return (committed == mkl_dft::config_value::COMMITTED);
Expand All @@ -252,7 +252,7 @@ class DescriptorWrapper
DFTI_CONFIG_VALUE committed;
descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
return (committed == DFTI_CONFIG_VALUE::DFTI_COMMITTED);
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
}

private:
Expand Down
Loading
Loading