File tree Expand file tree Collapse file tree 15 files changed +141
-40
lines changed Expand file tree Collapse file tree 15 files changed +141
-40
lines changed Original file line number Diff line number Diff line change @@ -68,6 +68,7 @@ endif()
6868option (ENABLE_CUBLAS_BACKEND "" OFF )
6969option (ENABLE_CURAND_BACKEND "" OFF )
7070option (ENABLE_NETLIB_BACKEND "" OFF )
71+ set (ONEMKL_SYCL_IMPLEMENTATION "dpc++" CACHE STRING "Specifiy the SYCL implementation against which oneMKL should be built" )
7172
7273## Domains
7374set (DOMAINS_LIST "" )
@@ -124,7 +125,19 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
124125if (WIN32 )
125126 add_library (ONEMKL::SYCL::SYCL INTERFACE IMPORTED )
126127else ()
127- find_package (Compiler REQUIRED)
128+ # Find necessary packages
129+ if (ONEMKL_SYCL_IMPLEMENTATION STREQUAL "hipSYCL" )
130+ message (STATUS "Looking for hipSYCL" )
131+ find_package (hipSYCL CONFIG REQUIRED)
132+ set (USE_ADD_SYCL_TO_TARGET_INTEGRATION true )
133+ add_library (ONEMKL::SYCL::SYCL INTERFACE IMPORTED )
134+ elseif (ONEMKL_SYCL_IMPLEMENTATION STREQUAL "dpc++" )
135+ message (STATUS "Looking for dpc++" )
136+ set (USE_ADD_SYCL_TO_TARGET_INTEGRATION false )
137+ find_package (Compiler REQUIRED)
138+ else ()
139+ message (FATAL_ERROR "SYCL implementation ${ONEMKL_SYCL_IMPLEMENTATION} is not known" )
140+ endif ()
128141endif ()
129142
130143# Add source directory and output to bin/
Original file line number Diff line number Diff line change @@ -31,12 +31,16 @@ target_include_directories(onemkl_blas
3131 ${CMAKE_BINARY_DIR} /bin
3232 $<TARGET_FILE_DIR:onemkl>
3333)
34-
3534target_compile_options (onemkl_blas PRIVATE ${ONEMKL_BUILD_COPT} )
3635
3736set_target_properties (onemkl_blas PROPERTIES
3837 POSITION_INDEPENDENT_CODE ON
3938)
40- target_link_libraries (onemkl_blas PUBLIC ONEMKL::SYCL::SYCL)
39+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
40+ add_sycl_to_target(TARGET onemkl_blas SOURCES blas_loader.cpp)
41+ else ()
42+ target_link_libraries (onemkl_blas PUBLIC ONEMKL::SYCL::SYCL)
43+ endif ()
44+
4145endif ()
4246
Original file line number Diff line number Diff line change 2020set (LIB_NAME onemkl_blas_cublas)
2121set (LIB_OBJ ${LIB_NAME} _obj)
2222find_package (cuBLAS REQUIRED)
23-
23+ set (SOURCES cublas_level1.cpp
24+ cublas_level2.cpp
25+ cublas_level3.cpp
26+ cublas_batch.cpp
27+ cublas_extensions.cpp
28+ cublas_scope_handle.cpp
29+ $<$<BOOL :${BUILD_SHARED_LIBS} >: mkl_blas_cublas_wrappers.cpp>)
2430add_library (${LIB_NAME} )
25- add_library (${LIB_OBJ} OBJECT
26- cublas_level1.cpp
27- cublas_level2.cpp
28- cublas_level3.cpp
29- cublas_batch.cpp
30- cublas_extensions.cpp
31- cublas_scope_handle.cpp
32- $<$<BOOL :${BUILD_SHARED_LIBS} >: mkl_blas_cublas_wrappers.cpp>
33- )
31+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
32+
3433target_include_directories (${LIB_OBJ}
3534 PRIVATE ${PROJECT_SOURCE_DIR} /include
3635 ${PROJECT_SOURCE_DIR} /src
@@ -42,7 +41,9 @@ set_target_properties(${LIB_OBJ} PROPERTIES
4241 POSITION_INDEPENDENT_CODE ON )
4342
4443target_link_libraries (${LIB_NAME} PUBLIC ${LIB_OBJ} )
45-
44+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
45+ add_sycl_to_target(TARGET ${LIB_OBJ} SOURCES ${SOURCES} )
46+ endif ()
4647# Add major version to the library
4748set_target_properties (${LIB_NAME} PROPERTIES
4849 SOVERSION ${PROJECT_VERSION_MAJOR}
Original file line number Diff line number Diff line change @@ -21,13 +21,14 @@ set(LIB_NAME onemkl_blas_mklcpu)
2121set (LIB_OBJ ${LIB_NAME} _obj)
2222
2323find_package (MKL REQUIRED)
24-
25- add_library (${LIB_NAME} )
26- add_library (${LIB_OBJ} OBJECT
27- fp16.hpp mklcpu_common.hpp
24+ set (SOURCES fp16.hpp mklcpu_common.hpp
2825 mklcpu_level1.cpp mklcpu_level2.cpp mklcpu_level3.cpp mklcpu_batch.cpp mklcpu_extensions.cpp
29- $<$<BOOL :${BUILD_SHARED_LIBS} >: mklcpu_wrappers.cpp>
30- )
26+ $<$<BOOL :${BUILD_SHARED_LIBS} >: mklcpu_wrappers.cpp>)
27+ add_library (${LIB_NAME} )
28+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
29+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
30+ add_sycl_to_target(TARGET ${LIB_OBJ} ${SOURCES} )
31+ endif ()
3132
3233target_include_directories (${LIB_OBJ}
3334 PRIVATE ${PROJECT_SOURCE_DIR} /include
Original file line number Diff line number Diff line change @@ -37,5 +37,10 @@ target_compile_options(onemkl_rng PRIVATE ${ONEMKL_BUILD_COPT})
3737set_target_properties (onemkl_rng PROPERTIES
3838 POSITION_INDEPENDENT_CODE ON
3939)
40- target_link_libraries (onemkl_rng PUBLIC ONEMKL::SYCL::SYCL)
40+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
41+ add_sycl_to_target(TARGET onemkl_rng SOURCES rng_loader.cpp)
42+ else ()
43+ target_link_libraries (onemkl_rng PUBLIC ONEMKL::SYCL::SYCL)
44+ endif ()
45+
4146endif ()
Original file line number Diff line number Diff line change @@ -60,13 +60,14 @@ set(LIB_NAME onemkl_rng_curand)
6060set (LIB_OBJ ${LIB_NAME} _obj)
6161find_package (cuRAND REQUIRED)
6262
63- add_library (${LIB_NAME} )
64- add_library (${LIB_OBJ} OBJECT
65- philox4x32x10.cpp
63+ set (SOURCES philox4x32x10.cpp
6664 mrg32k3a.cpp
67- $<$<BOOL :${BUILD_SHARED_LIBS} >: mkl_rng_curand_wrappers.cpp>
65+ $<$<BOOL :${BUILD_SHARED_LIBS} >: mkl_rng_curand_wrappers.cpp>)
6866)
6967
68+ add_library (${LIB_NAME} )
69+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
70+
7071target_include_directories (${LIB_OBJ}
7172 PRIVATE ${PROJECT_SOURCE_DIR} /include
7273 ${PROJECT_SOURCE_DIR} /src
@@ -81,7 +82,9 @@ set_target_properties(${LIB_OBJ} PROPERTIES
8182)
8283
8384target_link_libraries (${LIB_NAME} PUBLIC ${LIB_OBJ} )
84-
85+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
86+ add_sycl_to_target(TARGET ${LIB_OBJ} SOURCES ${SOURCES} )
87+ endif ()
8588# Add major version to the library
8689set_target_properties (${LIB_NAME} PROPERTIES
8790 SOVERSION ${PROJECT_VERSION_MAJOR}
Original file line number Diff line number Diff line change @@ -22,14 +22,16 @@ set(LIB_OBJ ${LIB_NAME}_obj)
2222
2323find_package (MKL REQUIRED)
2424
25- add_library (${LIB_NAME} )
26- add_library (${LIB_OBJ} OBJECT
27- cpu_common.hpp
25+ set (SOURCES cpu_common.hpp
2826 philox4x32x10.cpp
2927 mrg32k3a.cpp
3028 $<$<BOOL :${BUILD_SHARED_LIBS} >: mkl_rng_cpu_wrappers.cpp>
3129)
3230
31+ add_library (${LIB_NAME} )
32+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
33+
34+
3335target_include_directories (${LIB_OBJ}
3436 PRIVATE ${PROJECT_SOURCE_DIR} /include
3537 ${PROJECT_SOURCE_DIR} /src
@@ -38,7 +40,9 @@ target_include_directories(${LIB_OBJ}
3840)
3941
4042target_compile_options (${LIB_OBJ} PRIVATE ${ONEMKL_BUILD_COPT} ${MKL_COPT} )
41-
43+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
44+ add_sycl_to_target(TARGET ${LIB_OBJ} SOURCES ${SOURCES} )
45+ endif ()
4246target_link_libraries (${LIB_OBJ} PUBLIC ONEMKL::SYCL::SYCL ${MKL_LINK_C} )
4347
4448set_target_properties (${LIB_OBJ} PROPERTIES
Original file line number Diff line number Diff line change @@ -59,6 +59,9 @@ foreach(domain ${TARGET_DOMAINS})
5959 add_executable (test_main_${domain} _ct main_test.cpp)
6060 target_include_directories (test_main_${domain} _ct PUBLIC ${GTEST_INCLUDE_DIR} )
6161 target_compile_options (test_main_${domain} _ct PRIVATE -fsycl)
62+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
63+ add_sycl_to_target(TARGET test_main_${domain} _ct SOURCES t main_test.cpp)
64+ endif ()
6265
6366 if (BUILD_SHARED_LIBS )
6467 add_executable (test_main_${domain} _rt main_test.cpp)
@@ -73,6 +76,9 @@ foreach(domain ${TARGET_DOMAINS})
7376 onemkl
7477 ${${domain} _TEST_LIST_RT}
7578 )
79+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
80+ add_sycl_to_target(TARGET test_main_${domain} _rt SOURCES main_test.cpp)
81+ endif ()
7682 endif ()
7783
7884 if (ENABLE_MKLCPU_BACKEND)
@@ -109,7 +115,6 @@ foreach(domain ${TARGET_DOMAINS})
109115 ONEMKL::SYCL::SYCL
110116 ${${domain} _TEST_LIST_CT}
111117 )
112-
113118 string (TOUPPER ${domain} DOMAIN_PREFIX)
114119
115120 if (BUILD_SHARED_LIBS )
@@ -130,5 +135,8 @@ foreach(domain ${TARGET_DOMAINS})
130135 PROPERTIES TEST_PREFIX ${DOMAIN_PREFIX} /CT/
131136 DISCOVERY_TIMEOUT 30
132137 )
138+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
139+ add_sycl_to_target(TARGET test_main_${domain} _rt)
140+ endif ()
133141
134142endforeach ()
Original file line number Diff line number Diff line change @@ -32,6 +32,11 @@ if(BUILD_SHARED_LIBS)
3232 PUBLIC ${CBLAS_INCLUDE}
3333 )
3434 target_link_libraries (blas_batch_rt PUBLIC ONEMKL::SYCL::SYCL)
35+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
36+ add_sycl_to_target(TARGET blas_batch_rt SOURCES ${BATCH_SOURCES} )
37+ else ()
38+ target_link_libraries (blas_batch_rt PUBLIC ONEMKL::SYCL::SYCL)
39+ endif ()
3540endif ()
3641
3742add_library (blas_batch_ct OBJECT ${BATCH_SOURCES} )
@@ -45,3 +50,8 @@ target_include_directories(blas_batch_ct
4550 PUBLIC ${CBLAS_INCLUDE}
4651)
4752target_link_libraries (blas_batch_ct PUBLIC ONEMKL::SYCL::SYCL)
53+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
54+ add_sycl_to_target(TARGET blas_batch_ct SOURCES ${BATCH_SOURCES} )
55+ else ()
56+ target_link_libraries (blas_batch_ct PUBLIC ONEMKL::SYCL::SYCL)
57+ endif ()
Original file line number Diff line number Diff line change @@ -32,6 +32,11 @@ if(BUILD_SHARED_LIBS)
3232 PUBLIC ${CBLAS_INCLUDE}
3333 )
3434 target_link_libraries (blas_extensions_rt PUBLIC ONEMKL::SYCL::SYCL)
35+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
36+ add_sycl_to_target(TARGET blas_extensions_rt SOURCES ${EXTENSIONS_SOURCES} )
37+ else ()
38+ target_link_libraries (blas_extensions_rt PUBLIC ONEMKL::SYCL::SYCL)
39+ endif ()
3540endif ()
3641
3742add_library (blas_extensions_ct OBJECT ${EXTENSIONS_SOURCES} )
@@ -45,3 +50,8 @@ target_include_directories(blas_extensions_ct
4550 PUBLIC ${CBLAS_INCLUDE}
4651)
4752target_link_libraries (blas_extensions_ct PUBLIC ONEMKL::SYCL::SYCL)
53+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION)
54+ add_sycl_to_target(TARGET blas_extensions_ct SOURCES ${EXTENSIONS_SOURCES} )
55+ else ()
56+ target_link_libraries (blas_extensions_ct PUBLIC ONEMKL::SYCL::SYCL)
57+ endif ()
You can’t perform that action at this time.
0 commit comments