Skip to content

Commit e564a89

Browse files
committed
update build system to add pi_unified_runtime
Signed-off-by: Sergey V Maslov <[email protected]>
1 parent a578c81 commit e564a89

File tree

2 files changed

+49
-106
lines changed

2 files changed

+49
-106
lines changed

sycl/plugins/level_zero/CMakeLists.txt

Lines changed: 33 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -8,87 +8,43 @@ else()
88
"${LLVM_LIBRARY_OUTPUT_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}ze_loader${CMAKE_SHARED_LIBRARY_SUFFIX}")
99
endif()
1010

11-
if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
12-
message(STATUS "Download Level Zero loader and headers from github.com")
13-
if (CMAKE_C_COMPILER)
14-
list(APPEND AUX_CMAKE_FLAGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
15-
endif()
16-
if (CMAKE_CXX_COMPILER)
17-
list(APPEND AUX_CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
18-
endif()
19-
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_build)
20-
set(LEVEL_ZERO_LOADER_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/level_zero/level_zero_loader")
21-
if (NOT DEFINED SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE)
22-
set(SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE ${SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE})
23-
endif()
24-
set(LEVEL_ZERO_LOADER_SOURCE_VERSION v1.8.8)
25-
26-
#TODO: Replace ExternalProject with FetchContent for better maintainance and
27-
# cmake files simplification
28-
include(ExternalProject)
29-
ExternalProject_Add(level-zero-loader
30-
GIT_REPOSITORY https://github.com/oneapi-src/level-zero.git
31-
GIT_TAG ${LEVEL_ZERO_LOADER_SOURCE_VERSION}
32-
UPDATE_DISCONNECTED ${SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE}
33-
SOURCE_DIR ${LEVEL_ZERO_LOADER_SOURCE_DIR}
34-
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_build"
35-
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_install"
36-
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
37-
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
38-
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
39-
-DCMAKE_INSTALL_LIBDIR:PATH=lib${LLVM_LIBDIR_SUFFIX}
40-
${AUX_CMAKE_FLAGS}
41-
LOG_DOWNLOAD 1
42-
LOG_UPDATE 1
43-
LOG_CONFIGURE 1
44-
LOG_BUILD 1
45-
LOG_INSTALL 1
46-
STEP_TARGETS configure,build,install
47-
DEPENDS OpenCL-Headers
48-
BUILD_BYPRODUCTS ${LEVEL_ZERO_LOADER}
49-
)
50-
ExternalProject_Add_Step(level-zero-loader llvminstall
51-
COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/lib/ ${LLVM_BINARY_DIR}/lib
52-
COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/include/ ${LLVM_BINARY_DIR}/include/sycl
53-
COMMENT "Installing level-zero-loader into the LLVM binary directory"
54-
DEPENDEES install
55-
)
56-
57-
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_install/"
58-
DESTINATION "."
59-
COMPONENT level-zero-loader
60-
)
61-
62-
set(LEVEL_ZERO_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_install/include/
63-
CACHE INTERNAL "Path containing Level_Zero header files.")
11+
set(LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git")
12+
if (WIN32)
13+
set(LEVEL_ZERO_LOADER_TAG v1.2.3)
6414
else()
65-
file(GLOB LEVEL_ZERO_LIBRARY_SRC "${LEVEL_ZERO_LIBRARY}*")
66-
get_filename_component(LEVEL_ZERO_LIB_NAME ${LEVEL_ZERO_LIBRARY} NAME)
67-
add_custom_target(level-zero-loader
68-
DEPENDS
69-
${LLVM_LIBRARY_OUTPUT_INTDIR}/${LEVEL_ZERO_LIB_NAME}
70-
${LLVM_BINARY_DIR}/include/sycl/level_zero
71-
)
72-
add_custom_command(
73-
OUTPUT
74-
${LLVM_LIBRARY_OUTPUT_INTDIR}/${LEVEL_ZERO_LIB_NAME}
75-
${LLVM_BINARY_DIR}/include/sycl/level_zero
76-
COMMENT
77-
"Copying Level Zero loader and headers"
78-
COMMAND
79-
${CMAKE_COMMAND} -E copy ${LEVEL_ZERO_LIBRARY_SRC} ${LLVM_LIBRARY_OUTPUT_INTDIR}
80-
COMMAND
81-
${CMAKE_COMMAND} -E copy_directory ${LEVEL_ZERO_INCLUDE_DIR} ${LLVM_BINARY_DIR}/include/sycl
82-
DEPENDS
83-
${LEVEL_ZERO_LIBRARY}
84-
${LEVEL_ZERO_INCLUDE_DIR}
85-
)
15+
set(LEVEL_ZERO_LOADER_TAG v1.8.8)
8616
endif()
8717

18+
message(STATUS "Will fetch Level Zero Loader from ${LEVEL_ZERO_LOADER_REPO}")
19+
include(FetchContent)
20+
FetchContent_Declare(level-zero-loader
21+
GIT_REPOSITORY ${LEVEL_ZERO_LOADER_REPO}
22+
GIT_TAG ${LEVEL_ZERO_LOADER_TAG}
23+
)
24+
25+
FetchContent_MakeAvailable(level-zero-loader)
26+
FetchContent_GetProperties(level-zero-loader)
27+
28+
set(LEVEL_ZERO_INCLUDE_DIR
29+
${level-zero-loader_SOURCE_DIR}/include CACHE PATH "Path to Level Zero Headers")
30+
set(LEVEL_ZERO_LOADER_LIBRARY ${level-zero-loader_TARGET_LOADER_NAME})
31+
32+
#ExternalProject_Add_Step(level-zero-loader llvminstall
33+
#COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/lib/ ${LLVM_BINARY_DIR}/lib
34+
#COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/include/ ${LLVM_BINARY_DIR}/include/sycl
35+
#COMMENT "Installing level-zero-loader into the LLVM binary directory"
36+
#DEPENDEES install
37+
#)
38+
8839
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS level-zero-loader level-zero-headers)
8940

9041
include_directories("${LEVEL_ZERO_INCLUDE_DIR}")
9142

43+
add_library (LevelZeroLoader INTERFACE)
44+
target_link_libraries(LevelZeroLoader
45+
INTERFACE ${LEVEL_ZERO_LOADER_LIBRARY}
46+
)
47+
9248
add_library (LevelZeroLoader-Headers INTERFACE)
9349
add_library (LevelZeroLoader::Headers ALIAS LevelZeroLoader-Headers)
9450
target_include_directories(LevelZeroLoader-Headers
@@ -111,17 +67,17 @@ add_sycl_plugin(level_zero
11167
"${CMAKE_CURRENT_SOURCE_DIR}/tracing.cpp"
11268
${XPTI_PROXY_SRC}
11369
LIBRARIES
114-
"${LEVEL_ZERO_LOADER}"
70+
${LEVEL_ZERO_LOADER_LIBRARY}
11571
Threads::Threads
116-
unified_runtime
72+
pi_unified_runtime
11773
)
11874

11975
find_package(Python3 REQUIRED)
12076

12177
add_custom_target(ze-api
12278
COMMAND ${Python3_EXECUTABLE}
12379
${CMAKE_CURRENT_SOURCE_DIR}/ze_api_generator.py
124-
${LEVEL_ZERO_INCLUDE_DIR}/level_zero/ze_api.h
80+
${LEVEL_ZERO_INCLUDE_DIR}/ze_api.h
12581
BYPRODUCTS
12682
${CMAKE_CURRENT_BINARY_DIR}/ze_api.def
12783
)

sycl/plugins/unified_runtime/CMakeLists.txt

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -37,42 +37,29 @@ find_package(Threads REQUIRED)
3737
# So what we really build is the Unified Runtime with Level Zero Adapter
3838
# together.
3939
#
40-
# TODO: begin
41-
# Unified Runtime today is not a plugin yet. It's experimental static
42-
# library that's linked into level_zero plugin. As soon as it's ready to
43-
# become a plugin code below should be replaced with the following:
44-
#add_sycl_plugin(unified_runtime
45-
# SOURCES
46-
# "${sycl_inc_dir}/sycl/detail/pi.h"
47-
# "${CMAKE_CURRENT_SOURCE_DIR}/pi2ur.cpp"
48-
# "${CMAKE_CURRENT_SOURCE_DIR}/pi2ur.hpp"
49-
# "${CMAKE_CURRENT_SOURCE_DIR}/ur.hpp"
50-
# "${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.hpp"
51-
# "${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.cpp"
52-
# LIBRARIES
53-
# Threads::Threads
54-
# UnifiedRuntime-Headers
55-
# LevelZeroLoader-Headers
56-
#)
57-
58-
add_library(unified_runtime STATIC
59-
"${sycl_inc_dir}/sycl/detail/pi.h"
60-
"${CMAKE_CURRENT_SOURCE_DIR}/ur.hpp"
61-
"${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.hpp"
62-
"${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.cpp"
40+
add_sycl_plugin(unified_runtime
41+
SOURCES
42+
"${sycl_inc_dir}/sycl/detail/pi.h"
43+
"${CMAKE_CURRENT_SOURCE_DIR}/pi2ur.cpp"
44+
"${CMAKE_CURRENT_SOURCE_DIR}/pi2ur.hpp"
45+
"${CMAKE_CURRENT_SOURCE_DIR}/ur.hpp"
46+
"${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.hpp"
47+
"${CMAKE_CURRENT_SOURCE_DIR}/adapters/level_zero/ur_level_zero.cpp"
48+
LIBRARIES
49+
Threads::Threads
50+
UnifiedRuntime-Headers
51+
LevelZeroLoader-Headers
52+
LevelZeroLoader
6353
)
6454

65-
target_include_directories(unified_runtime INTERFACE
55+
target_include_directories(pi_unified_runtime INTERFACE
6656
"${UNIFIED_RUNTIME_INCLUDE_DIR}"
6757
"${CMAKE_CURRENT_SOURCE_DIR}"
6858
)
6959

70-
target_link_libraries(unified_runtime PRIVATE
60+
target_link_libraries(pi_unified_runtime PRIVATE
7161
UnifiedRuntime-Headers
7262
LevelZeroLoader-Headers
7363
)
7464

75-
# TODO: end
76-
77-
add_dependencies(unified_runtime ze-api)
78-
65+
add_dependencies(pi_unified_runtime ze-api)

0 commit comments

Comments
 (0)