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()
68
68
option (ENABLE_CUBLAS_BACKEND "" OFF )
69
69
option (ENABLE_CURAND_BACKEND "" OFF )
70
70
option (ENABLE_NETLIB_BACKEND "" OFF )
71
+ set (ONEMKL_SYCL_IMPLEMENTATION "dpc++" CACHE STRING "Specifiy the SYCL implementation against which oneMKL should be built" )
71
72
72
73
## Domains
73
74
set (DOMAINS_LIST "" )
@@ -124,7 +125,19 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
124
125
if (WIN32 )
125
126
add_library (ONEMKL::SYCL::SYCL INTERFACE IMPORTED )
126
127
else ()
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 ()
128
141
endif ()
129
142
130
143
# 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
31
31
${CMAKE_BINARY_DIR} /bin
32
32
$< TARGET_FILE_DIR:onemkl>
33
33
)
34
-
35
34
target_compile_options (onemkl_blas PRIVATE ${ONEMKL_BUILD_COPT} )
36
35
37
36
set_target_properties (onemkl_blas PROPERTIES
38
37
POSITION_INDEPENDENT_CODE ON
39
38
)
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
+
41
45
endif ()
42
46
Original file line number Diff line number Diff line change 20
20
set (LIB_NAME onemkl_blas_cublas )
21
21
set (LIB_OBJ ${LIB_NAME} _obj )
22
22
find_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> )
24
30
add_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
+
34
33
target_include_directories (${LIB_OBJ}
35
34
PRIVATE ${PROJECT_SOURCE_DIR} /include
36
35
${PROJECT_SOURCE_DIR} /src
@@ -42,7 +41,9 @@ set_target_properties(${LIB_OBJ} PROPERTIES
42
41
POSITION_INDEPENDENT_CODE ON )
43
42
44
43
target_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 ()
46
47
# Add major version to the library
47
48
set_target_properties (${LIB_NAME} PROPERTIES
48
49
SOVERSION ${PROJECT_VERSION_MAJOR}
Original file line number Diff line number Diff line change @@ -21,13 +21,14 @@ set(LIB_NAME onemkl_blas_mklcpu)
21
21
set (LIB_OBJ ${LIB_NAME} _obj )
22
22
23
23
find_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
28
25
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 ()
31
32
32
33
target_include_directories (${LIB_OBJ}
33
34
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})
37
37
set_target_properties (onemkl_rng PROPERTIES
38
38
POSITION_INDEPENDENT_CODE ON
39
39
)
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
+
41
46
endif ()
Original file line number Diff line number Diff line change @@ -60,13 +60,14 @@ set(LIB_NAME onemkl_rng_curand)
60
60
set (LIB_OBJ ${LIB_NAME} _obj )
61
61
find_package (cuRAND REQUIRED )
62
62
63
- add_library (${LIB_NAME} )
64
- add_library (${LIB_OBJ} OBJECT
65
- philox4x32x10.cpp
63
+ set (SOURCES philox4x32x10.cpp
66
64
mrg32k3a.cpp
67
- $< $< BOOL:${BUILD_SHARED_LIBS} > : mkl_rng_curand_wrappers.cpp>
65
+ $< $< BOOL:${BUILD_SHARED_LIBS} > : mkl_rng_curand_wrappers.cpp> )
68
66
)
69
67
68
+ add_library (${LIB_NAME} )
69
+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
70
+
70
71
target_include_directories (${LIB_OBJ}
71
72
PRIVATE ${PROJECT_SOURCE_DIR} /include
72
73
${PROJECT_SOURCE_DIR} /src
@@ -81,7 +82,9 @@ set_target_properties(${LIB_OBJ} PROPERTIES
81
82
)
82
83
83
84
target_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 ()
85
88
# Add major version to the library
86
89
set_target_properties (${LIB_NAME} PROPERTIES
87
90
SOVERSION ${PROJECT_VERSION_MAJOR}
Original file line number Diff line number Diff line change @@ -22,14 +22,16 @@ set(LIB_OBJ ${LIB_NAME}_obj)
22
22
23
23
find_package (MKL REQUIRED )
24
24
25
- add_library (${LIB_NAME} )
26
- add_library (${LIB_OBJ} OBJECT
27
- cpu_common.hpp
25
+ set (SOURCES cpu_common.hpp
28
26
philox4x32x10.cpp
29
27
mrg32k3a.cpp
30
28
$< $< BOOL:${BUILD_SHARED_LIBS} > : mkl_rng_cpu_wrappers.cpp>
31
29
)
32
30
31
+ add_library (${LIB_NAME} )
32
+ add_library (${LIB_OBJ} OBJECT ${SOURCES} )
33
+
34
+
33
35
target_include_directories (${LIB_OBJ}
34
36
PRIVATE ${PROJECT_SOURCE_DIR} /include
35
37
${PROJECT_SOURCE_DIR} /src
@@ -38,7 +40,9 @@ target_include_directories(${LIB_OBJ}
38
40
)
39
41
40
42
target_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 ()
42
46
target_link_libraries (${LIB_OBJ} PUBLIC ONEMKL::SYCL::SYCL ${MKL_LINK_C} )
43
47
44
48
set_target_properties (${LIB_OBJ} PROPERTIES
Original file line number Diff line number Diff line change @@ -59,6 +59,9 @@ foreach(domain ${TARGET_DOMAINS})
59
59
add_executable (test_main_${domain}_ct main_test.cpp )
60
60
target_include_directories (test_main_${domain}_ct PUBLIC ${GTEST_INCLUDE_DIR} )
61
61
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 ()
62
65
63
66
if (BUILD_SHARED_LIBS )
64
67
add_executable (test_main_${domain}_rt main_test.cpp )
@@ -73,6 +76,9 @@ foreach(domain ${TARGET_DOMAINS})
73
76
onemkl
74
77
${${domain}_TEST_LIST_RT}
75
78
)
79
+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION )
80
+ add_sycl_to_target (TARGET test_main_${domain}_rt SOURCES main_test.cpp )
81
+ endif ()
76
82
endif ()
77
83
78
84
if (ENABLE_MKLCPU_BACKEND )
@@ -109,7 +115,6 @@ foreach(domain ${TARGET_DOMAINS})
109
115
ONEMKL::SYCL::SYCL
110
116
${${domain}_TEST_LIST_CT}
111
117
)
112
-
113
118
string (TOUPPER ${domain} DOMAIN_PREFIX )
114
119
115
120
if (BUILD_SHARED_LIBS )
@@ -130,5 +135,8 @@ foreach(domain ${TARGET_DOMAINS})
130
135
PROPERTIES TEST_PREFIX ${DOMAIN_PREFIX} /CT/
131
136
DISCOVERY_TIMEOUT 30
132
137
)
138
+ if (USE_ADD_SYCL_TO_TARGET_INTEGRATION )
139
+ add_sycl_to_target (TARGET test_main_${domain}_rt )
140
+ endif ()
133
141
134
142
endforeach ()
Original file line number Diff line number Diff line change @@ -32,6 +32,11 @@ if(BUILD_SHARED_LIBS)
32
32
PUBLIC ${CBLAS_INCLUDE}
33
33
)
34
34
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 ()
35
40
endif ()
36
41
37
42
add_library (blas_batch_ct OBJECT ${BATCH_SOURCES} )
@@ -45,3 +50,8 @@ target_include_directories(blas_batch_ct
45
50
PUBLIC ${CBLAS_INCLUDE}
46
51
)
47
52
target_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)
32
32
PUBLIC ${CBLAS_INCLUDE}
33
33
)
34
34
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 ()
35
40
endif ()
36
41
37
42
add_library (blas_extensions_ct OBJECT ${EXTENSIONS_SOURCES} )
@@ -45,3 +50,8 @@ target_include_directories(blas_extensions_ct
45
50
PUBLIC ${CBLAS_INCLUDE}
46
51
)
47
52
target_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