Skip to content

Commit c3c85db

Browse files
authored
[mklcpu][mklgpu] replace FindMKL.cmake with MKLConfig.cmake (#316)
* [mklcpu][mklgpu] replace custom FindMKL with MKLConfig from Intel oneMKL * [mklcpu][mklgpu] add Intel oneMKL 2023.1 MKLConfig to the repo * [mklcpu][mklgpu] use Intel oneMKL domains specific targets if defined
1 parent 1997349 commit c3c85db

File tree

14 files changed

+1028
-221
lines changed

14 files changed

+1028
-221
lines changed

CMakeLists.txt

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,10 @@ if(WIN32 AND ONEMKL_SYCL_IMPLEMENTATION STREQUAL "dpc++")
187187
endforeach()
188188
set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> -fsycl /nologo <DEFINES> <INCLUDES> /EHsc <FLAGS> /Fo<OBJECT> -c <SOURCE>")
189189
set(CMAKE_CXX_CREATE_STATIC_LIBRARY "lib /nologo <OBJECTS> /out:<TARGET>")
190-
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> -fsycl -fsycl-device-code-split=per_kernel /nologo <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
191-
set(MKL_SYCL_LIB "")
192-
if(ENABLE_MKLGPU_BACKEND OR ENABLE_MKLCPU_BACKEND)
193-
find_library(MKL_SYCL_LIB NAMES mkl_sycl
194-
HINTS $ENV{MKLROOT} ${MKL_ROOT}
195-
PATH_SUFFIXES lib/intel64)
190+
if(CMAKE_VERSION VERSION_LESS "3.25.2")
191+
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> -fsycl -fsycl-device-code-split=per_kernel /nologo <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
192+
set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> -fsycl -fsycl-device-code-split=per_kernel /nologo <OBJECTS> <LINK_LIBRARIES> /link /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>")
196193
endif()
197-
set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> -fsycl -fsycl-device-code-split=per_kernel /nologo <OBJECTS> ${MKL_SYCL_LIB} /link /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_FLAGS> <LINK_LIBRARIES>")
198194
endif()
199195

200196
# Temporary disable sycl 2020 deprecations warnings for cuSOLVER and rocSOLVER
@@ -223,6 +219,28 @@ else()
223219
endif()
224220
message(STATUS "TARGET_DOMAINS: ${TARGET_DOMAINS}")
225221

222+
# Include Intel oneMKL
223+
if(ENABLE_MKLGPU_BACKEND OR ENABLE_MKLCPU_BACKEND)
224+
set(MKL_ARCH intel64)
225+
set(MKL_INTERFACE ilp64)
226+
if(ENABLE_MKLCPU_THREAD_TBB)
227+
set(MKL_THREADING tbb_thread)
228+
else()
229+
set(MKL_THREADING sequential)
230+
endif()
231+
if(BUILD_SHARED_LIBS AND NOT WIN32)
232+
set(MKL_LINK dynamic)
233+
else()
234+
set(MKL_LINK static)
235+
endif()
236+
# In case Intel oneMKL package doesn't include MKLConfig,
237+
# use MKLConfig from the repo
238+
find_package(MKL REQUIRED
239+
HINTS ${MKL_ROOT}/lib/cmake
240+
${MKL_ROOT}/lib/cmake/mkl
241+
${PROJECT_SOURCE_DIR}/cmake/mkl)
242+
endif()
243+
226244
# Set output directories for the project
227245
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
228246
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

cmake/FindMKL.cmake

Lines changed: 0 additions & 115 deletions
This file was deleted.

cmake/FindTBB.cmake

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)