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