1- cmake_minimum_required (VERSION 3.25 FATAL_ERROR )
1+ cmake_minimum_required (VERSION 3.21 FATAL_ERROR )
22option (BUILD_FORTRAN_EXAMPLES "Whether to build fortran examples" ON )
33set (CMAKE_C_COMPILER icx)
44set (CMAKE_CXX_COMPILER icpx)
5+ set (_languages C CXX)
6+
57if (BUILD_FORTRAN_EXAMPLES)
8+ set (_languages ${_languages} Fortran)
69 set (CMAKE_Fortran_COMPILER ifx)
710endif ()
811
9- project (GPUOptGuide)
10- set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
11-
12- include (CheckLanguage )
1312enable_testing ()
1413
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+
1520find_package (IntelSYCL REQUIRED )
1621
1722if (BUILD_FOTRAN_EXAMPLES)
@@ -24,6 +29,7 @@ if (BUILD_FOTRAN_EXAMPLES)
2429endif ()
2530
2631set (MKL_THREADING tbb_thread)
32+ set (MKL_INTERFACE "ilp64" )
2733set (DPCPP_COMPILER ON )
2834find_package (MKL REQUIRED )
2935
@@ -151,7 +157,7 @@ function(add_example_with_mkl_mpi name)
151157 set (MKL_ROOT $ENV{MKLROOT} CACHE PATH "Folder contains MKL" )
152158 endif (NOT MKL_ROOT )
153159 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 )
155161 target_link_libraries (${name} PRIVATE MPI::MPI_CXX )
156162 add_test (NAME ${name} COMMAND ${name} ${ARGN} )
157163 endif ()
@@ -163,28 +169,35 @@ add_subdirectory(atomics)
163169add_subdirectory (buffer-accessors )
164170add_subdirectory (buffers )
165171add_subdirectory (composite-explicit-scaling )
172+ add_subdirectory (composite-implicit-scaling )
166173add_subdirectory (conditionals )
167174add_subdirectory (exec-model )
168175add_subdirectory (flat )
169176add_subdirectory (fp-computations )
170177add_subdirectory (grf-mode-selection )
178+ add_subdirectory (host-device-memory )
171179add_subdirectory (io-kernel )
172180add_subdirectory (jitting )
181+ add_subdirectory (joint-matrix )
173182add_subdirectory (kernels )
174183add_subdirectory (libraries-fcorr )
175184add_subdirectory (libraries-kernel )
176185add_subdirectory (libraries-stdlib )
186+ add_subdirectory (local-global-sync )
177187add_subdirectory (matrix )
178188add_subdirectory (memory-movement )
179189add_subdirectory (MPI )
180190add_subdirectory (multiple-devices )
181191add_subdirectory (multiple-kernel-execution )
182192add_subdirectory (multiple-queue-submission )
193+ add_subdirectory (onemkl-scaling )
183194add_subdirectory (OpenMP )
184195add_subdirectory (optimize-data-transfers )
196+ add_subdirectory (overlap-data-transfers )
185197add_subdirectory (porting-registers )
186198add_subdirectory (prefetch )
187199add_subdirectory (reduction )
200+ add_subdirectory (redundant-queues )
188201add_subdirectory (registers )
189202add_subdirectory (restrict )
190203add_subdirectory (slm )
0 commit comments