Skip to content

Commit 4483591

Browse files
committed
[svm][SYCL] Use oneMKL interface instead of oneMKL library
Using oneMKL interface instead of the oneMKL library when building this benchmarks adds flexibility, as oneMKL can use different backends, including the oneMKL library itself. Signed-off-by: Victor Perez <[email protected]>
1 parent a357dbd commit 4483591

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

svm/SYCL/CMakeLists.txt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ set(SOURCES
7676
#infrastructure/SYCL.cpp
7777
)
7878

79+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
80+
7981
include_directories(${CMAKE_SOURCE_DIR}
8082
${CMAKE_SOURCE_DIR}/libSVM
8183
${CMAKE_SOURCE_DIR}/cuSVM
@@ -86,7 +88,7 @@ include_directories(${CMAKE_SOURCE_DIR}
8688
# Use either default or user defined CXX flags
8789
# -DCMAKE_CXX_FLAGS=" -blah -blah " overrides the default flags
8890

89-
set(INTEL_GPU_CXX_FLAGS " -O3 -fsycl -DMKL_ILP64")
91+
set(INTEL_GPU_CXX_FLAGS " -O3 -fsycl")
9092
set(NVIDIA_GPU_CXX_FLAGS " -O3 -fsycl -DUSE_CUBLAS")
9193
set(AMD_GPU_CXX_FLAGS " -O3 -fsycl -DUSE_HIPBLAS -D__HIP_PLATFORM_AMD__")
9294

@@ -110,8 +112,9 @@ elseif(USE_AMD_BACKEND)
110112
target_link_libraries(${PROJECT_NAME} -lhipblas)
111113
else()
112114
message(STATUS "Enabling INTEL backend")
113-
link_directories(${MKLROOT}/lib/intel64)
114-
target_link_libraries(${PROJECT_NAME} mkl_sycl mkl_intel_ilp64 mkl_tbb_thread mkl_core pthread dl m)
115+
find_package(oneMKL REQUIRED CONFIG HINTS ${oneMKLROOT})
116+
message(STATUS "Found oneMKL: ${oneMKL_DIR}")
117+
target_link_libraries(${PROJECT_NAME} PRIVATE MKL::onemkl)
115118
endif()
116119

117120
if(GPU_AOT)
@@ -141,4 +144,4 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/a9a
141144
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
142145

143146
#add_executable(${PROJECT_NAME} ${SOURCES})
144-
target_link_libraries(${PROJECT_NAME} sycl stdc++fs)
147+
target_link_libraries(${PROJECT_NAME} PRIVATE sycl stdc++fs)

svm/SYCL/cmake/FindSYCL.cmake

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Copyright (C) 2023 Intel Corporation
2+
#
3+
# Permission is hereby granted, free of charge, to any person obtaining a copy
4+
# of this software and associated documentation files (the "Software"),
5+
# to deal in the Software without restriction, including without limitation
6+
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7+
# and/or sell copies of the Software, and to permit persons to whom
8+
# the Software is furnished to do so, subject to the following conditions:
9+
#
10+
# The above copyright notice and this permission notice shall be included
11+
# in all copies or substantial portions of the Software.
12+
#
13+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16+
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
17+
# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18+
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
19+
# OR OTHER DEALINGS IN THE SOFTWARE.
20+
#
21+
# SPDX-License-Identifier: MIT
22+
#
23+
################################################################################
24+
# oneMKL provides a FindCompiler.cmake file which can be reused to handle calls
25+
# to find_package(SYCL ...) (found in oneMKLConfig.cmake). Reuse that and set
26+
# SYCL_Found to true on success.
27+
################################################################################
28+
29+
include(FindCompiler)
30+
31+
find_package(Compiler REQUIRED)
32+
find_package_handle_standard_args(SYCL REQUIRED_VARS SYCL_LIBRARY)

0 commit comments

Comments
 (0)