diff --git a/CMakeLists.txt b/CMakeLists.txt index 054d1895c65c..f4caead53ddc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,6 +46,11 @@ 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) diff --git a/dpnp/backend/extensions/fft/common.hpp b/dpnp/backend/extensions/fft/common.hpp index a9534d95c71f..a288475a1834 100644 --- a/dpnp/backend/extensions/fft/common.hpp +++ b/dpnp/backend/extensions/fft/common.hpp @@ -111,8 +111,12 @@ class DescriptorWrapper const typename valT::value_type dim = get_dim(); valT fwd_strides(dim + 1); +#if COMPILER_VERSION_2025_OR_LATER + 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 return fwd_strides; } @@ -125,7 +129,11 @@ class DescriptorWrapper throw py::value_error( "Strides length does not match descriptor's dimension"); } +#if COMPILER_VERSION_2025_OR_LATER + 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 } // config_param::BWD_STRIDES @@ -135,8 +143,12 @@ class DescriptorWrapper const typename valT::value_type dim = get_dim(); valT bwd_strides(dim + 1); +#if COMPILER_COMPILER_VERSION_2025_OR_LATER + 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 return bwd_strides; } @@ -149,7 +161,11 @@ class DescriptorWrapper throw py::value_error( "Strides length does not match descriptor's dimension"); } +#if COMPILER_VERSION_2025_OR_LATER + 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 } // config_param::FWD_DISTANCE @@ -187,7 +203,7 @@ class DescriptorWrapper // config_param::PLACEMENT bool get_in_place() { -#if defined(USE_ONEMKL_INTERFACES) +#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER mkl_dft::config_value placement; descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement); return (placement == mkl_dft::config_value::INPLACE); @@ -196,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 +#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER } void set_in_place(const bool &in_place_request) { -#if defined(USE_ONEMKL_INTERFACES) +#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER descr_.set_value(mkl_dft::config_param::PLACEMENT, (in_place_request) ? mkl_dft::config_value::INPLACE @@ -212,7 +228,7 @@ class DescriptorWrapper (in_place_request) ? DFTI_CONFIG_VALUE::DFTI_INPLACE : DFTI_CONFIG_VALUE::DFTI_NOT_INPLACE); -#endif // USE_ONEMKL_INTERFACES +#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER } // config_param::PRECISION @@ -227,7 +243,7 @@ class DescriptorWrapper // config_param::COMMIT_STATUS bool is_committed() { -#if defined(USE_ONEMKL_INTERFACES) +#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER mkl_dft::config_value committed; descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed); return (committed == mkl_dft::config_value::COMMITTED); @@ -236,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 +#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER } private: