1
- cmake_minimum_required (VERSION 3.25 FATAL_ERROR )
1
+ cmake_minimum_required (VERSION 3.21 FATAL_ERROR )
2
2
option (BUILD_FORTRAN_EXAMPLES "Whether to build fortran examples" ON )
3
3
set (CMAKE_C_COMPILER icx )
4
4
set (CMAKE_CXX_COMPILER icpx )
5
+ set (_languages C CXX )
6
+
5
7
if (BUILD_FORTRAN_EXAMPLES )
8
+ set (_languages ${_languages} Fortran )
6
9
set (CMAKE_Fortran_COMPILER ifx )
7
10
endif ()
8
11
9
- project (GPUOptGuide )
10
- set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH )
11
-
12
- include (CheckLanguage )
13
12
enable_testing ()
14
13
14
+ project (GPUOptGuide
15
+ LANGUAGES ${_languages}
16
+ DESCRIPTION "Examples from oneAPI GPU Optimization Guide" )
17
+
18
+ set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH )
19
+
15
20
find_package (IntelSYCL REQUIRED )
16
21
17
22
if (BUILD_FOTRAN_EXAMPLES )
@@ -24,6 +29,7 @@ if (BUILD_FOTRAN_EXAMPLES)
24
29
endif ()
25
30
26
31
set (MKL_THREADING tbb_thread )
32
+ set (MKL_INTERFACE "ilp64" )
27
33
set (DPCPP_COMPILER ON )
28
34
find_package (MKL REQUIRED )
29
35
@@ -151,7 +157,7 @@ function(add_example_with_mkl_mpi name)
151
157
set (MKL_ROOT $ENV{MKLROOT} CACHE PATH "Folder contains MKL" )
152
158
endif (NOT MKL_ROOT )
153
159
target_compile_options (${name} PRIVATE -fiopenmp -fopenmp-targets=spir64 -fsycl -DMKL_LP64 -I "${MKLROOT} /include" )
154
- target_link_options (${name} PRIVATE -fiopenmp -fopenmp-targets=spir64 -fsycl -L${MKLROOT}/lib -lmkl_sycl_blas -lmkl_intel_lp64 -lmkl_tbb_thread -lmkl_core -lsycl -lpthread -lm -ldl )
160
+ target_link_options (${name} PRIVATE -fiopenmp -fopenmp-targets=spir64 -fsycl -L${MKLROOT}/lib -lmkl_sycl_blas -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_core -lsycl -lpthread -lm -ldl )
155
161
target_link_libraries (${name} PRIVATE MPI::MPI_CXX )
156
162
add_test (NAME ${name} COMMAND ${name} ${ARGN} )
157
163
endif ()
@@ -163,28 +169,35 @@ add_subdirectory(atomics)
163
169
add_subdirectory (buffer-accessors )
164
170
add_subdirectory (buffers )
165
171
add_subdirectory (composite-explicit-scaling )
172
+ add_subdirectory (composite-implicit-scaling )
166
173
add_subdirectory (conditionals )
167
174
add_subdirectory (exec-model )
168
175
add_subdirectory (flat )
169
176
add_subdirectory (fp-computations )
170
177
add_subdirectory (grf-mode-selection )
178
+ add_subdirectory (host-device-memory )
171
179
add_subdirectory (io-kernel )
172
180
add_subdirectory (jitting )
181
+ add_subdirectory (joint-matrix )
173
182
add_subdirectory (kernels )
174
183
add_subdirectory (libraries-fcorr )
175
184
add_subdirectory (libraries-kernel )
176
185
add_subdirectory (libraries-stdlib )
186
+ add_subdirectory (local-global-sync )
177
187
add_subdirectory (matrix )
178
188
add_subdirectory (memory-movement )
179
189
add_subdirectory (MPI )
180
190
add_subdirectory (multiple-devices )
181
191
add_subdirectory (multiple-kernel-execution )
182
192
add_subdirectory (multiple-queue-submission )
193
+ add_subdirectory (onemkl-scaling )
183
194
add_subdirectory (OpenMP )
184
195
add_subdirectory (optimize-data-transfers )
196
+ add_subdirectory (overlap-data-transfers )
185
197
add_subdirectory (porting-registers )
186
198
add_subdirectory (prefetch )
187
199
add_subdirectory (reduction )
200
+ add_subdirectory (redundant-queues )
188
201
add_subdirectory (registers )
189
202
add_subdirectory (restrict )
190
203
add_subdirectory (slm )
0 commit comments