Skip to content

Commit a7b8960

Browse files
vtavananpolina4
andauthored
Add a COMPILER_VERSION_2025_OR_LATER to be able to run dpnp with both 2024.2 and 2025.0 versions of the compiler/MKL (#2025)
* conditional compiler version * address comments * Update dpnp/backend/extensions/fft/common.hpp Co-authored-by: Natalia Polina <[email protected]> --------- Co-authored-by: Natalia Polina <[email protected]>
1 parent e9eeca7 commit a7b8960

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ else()
4646
find_package(oneDPL REQUIRED PATHS ${CMAKE_SOURCE_DIR}/dpnp/backend/cmake/Modules NO_DEFAULT_PATH)
4747
endif()
4848

49+
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "2025.0.0")
50+
add_definitions(-DCOMPILER_VERSION_2025_OR_LATER=1)
51+
else()
52+
add_definitions(-DCOMPILER_VERSION_2025_OR_LATER=0)
53+
endif()
4954

5055
include(GNUInstallDirs)
5156

dpnp/backend/extensions/fft/common.hpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,12 @@ class DescriptorWrapper
111111
const typename valT::value_type dim = get_dim();
112112

113113
valT fwd_strides(dim + 1);
114+
#if COMPILER_VERSION_2025_OR_LATER
115+
descr_.get_value(mkl_dft::config_param::FWD_STRIDES, &fwd_strides);
116+
#else
114117
descr_.get_value(mkl_dft::config_param::FWD_STRIDES,
115118
fwd_strides.data());
119+
#endif // COMPILER_VERSION_2025_OR_LATER
116120
return fwd_strides;
117121
}
118122

@@ -125,7 +129,11 @@ class DescriptorWrapper
125129
throw py::value_error(
126130
"Strides length does not match descriptor's dimension");
127131
}
132+
#if COMPILER_VERSION_2025_OR_LATER
133+
descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides);
134+
#else
128135
descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides.data());
136+
#endif // COMPILER_VERSION_2025_OR_LATER
129137
}
130138

131139
// config_param::BWD_STRIDES
@@ -135,8 +143,12 @@ class DescriptorWrapper
135143
const typename valT::value_type dim = get_dim();
136144

137145
valT bwd_strides(dim + 1);
146+
#if COMPILER_COMPILER_VERSION_2025_OR_LATER
147+
descr_.get_value(mkl_dft::config_param::BWD_STRIDES, &bwd_strides);
148+
#else
138149
descr_.get_value(mkl_dft::config_param::BWD_STRIDES,
139150
bwd_strides.data());
151+
#endif // COMPILER_VERSION_2025_OR_LATER
140152
return bwd_strides;
141153
}
142154

@@ -149,7 +161,11 @@ class DescriptorWrapper
149161
throw py::value_error(
150162
"Strides length does not match descriptor's dimension");
151163
}
164+
#if COMPILER_VERSION_2025_OR_LATER
165+
descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides);
166+
#else
152167
descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides.data());
168+
#endif // COMPILER_VERSION_2025_OR_LATER
153169
}
154170

155171
// config_param::FWD_DISTANCE
@@ -187,7 +203,7 @@ class DescriptorWrapper
187203
// config_param::PLACEMENT
188204
bool get_in_place()
189205
{
190-
#if defined(USE_ONEMKL_INTERFACES)
206+
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
191207
mkl_dft::config_value placement;
192208
descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
193209
return (placement == mkl_dft::config_value::INPLACE);
@@ -196,12 +212,12 @@ class DescriptorWrapper
196212
DFTI_CONFIG_VALUE placement;
197213
descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
198214
return (placement == DFTI_CONFIG_VALUE::DFTI_INPLACE);
199-
#endif // USE_ONEMKL_INTERFACES
215+
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
200216
}
201217

202218
void set_in_place(const bool &in_place_request)
203219
{
204-
#if defined(USE_ONEMKL_INTERFACES)
220+
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
205221
descr_.set_value(mkl_dft::config_param::PLACEMENT,
206222
(in_place_request)
207223
? mkl_dft::config_value::INPLACE
@@ -212,7 +228,7 @@ class DescriptorWrapper
212228
(in_place_request)
213229
? DFTI_CONFIG_VALUE::DFTI_INPLACE
214230
: DFTI_CONFIG_VALUE::DFTI_NOT_INPLACE);
215-
#endif // USE_ONEMKL_INTERFACES
231+
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
216232
}
217233

218234
// config_param::PRECISION
@@ -227,7 +243,7 @@ class DescriptorWrapper
227243
// config_param::COMMIT_STATUS
228244
bool is_committed()
229245
{
230-
#if defined(USE_ONEMKL_INTERFACES)
246+
#if defined(USE_ONEMKL_INTERFACES) || COMPILER_VERSION_2025_OR_LATER
231247
mkl_dft::config_value committed;
232248
descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
233249
return (committed == mkl_dft::config_value::COMMITTED);
@@ -236,7 +252,7 @@ class DescriptorWrapper
236252
DFTI_CONFIG_VALUE committed;
237253
descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
238254
return (committed == DFTI_CONFIG_VALUE::DFTI_COMMITTED);
239-
#endif // USE_ONEMKL_INTERFACES
255+
#endif // USE_ONEMKL_INTERFACES or COMPILER_VERSION_2025_OR_LATER
240256
}
241257

242258
private:

0 commit comments

Comments
 (0)