Skip to content

Commit d666edb

Browse files
[UR] Add a CMake option to allow overriding L0 include directory to use (#17922)
After this change, you can use `-DUR_COMPUTE_RUNTIME_FETCH_REPO=OFF -DUR_COMPUTE_RUNTIME_REPO=<path_to_l0_repo>` to disable fetching the compute runtime repo for L0 include headers and ask cmake to use a local compute runtime repo instead.
1 parent 72bbe64 commit d666edb

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

unified-runtime/cmake/FetchLevelZero.cmake

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ set(UR_LEVEL_ZERO_LOADER_TAG "" CACHE STRING " GIT tag of the Level Loader taken
1010
set(UR_COMPUTE_RUNTIME_REPO "" CACHE STRING "Github repo to get the compute runtime sources from")
1111
set(UR_COMPUTE_RUNTIME_TAG "" CACHE STRING " GIT tag of the compute runtime taken from github repo")
1212

13+
# If UR_COMPUTE_RUNTIME_FETCH_REPO is set to OFF, then UR_COMPUTE_RUNTIME_REPO should be defined and
14+
# should point to the compute runtime repo.
15+
set(UR_COMPUTE_RUNTIME_FETCH_REPO ON CACHE BOOL "Flag to indicate wheather to fetch the compute runtime repo")
16+
1317
# Copy Level Zero loader/headers locally to the build to avoid leaking their path.
1418
set(LEVEL_ZERO_COPY_DIR ${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader)
1519
if (NOT UR_LEVEL_ZERO_LOADER_LIBRARY STREQUAL "")
@@ -102,23 +106,45 @@ target_include_directories(LevelZeroLoader-Headers
102106
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
103107
)
104108

105-
if (UR_COMPUTE_RUNTIME_REPO STREQUAL "")
106-
set(UR_COMPUTE_RUNTIME_REPO "https://github.com/intel/compute-runtime.git")
107-
endif()
108-
if (UR_COMPUTE_RUNTIME_TAG STREQUAL "")
109-
set(UR_COMPUTE_RUNTIME_TAG 25.05.32567.17)
110-
endif()
111-
include(FetchContent)
112-
# Sparse fetch only the dir with level zero headers for experimental features to avoid pulling in the entire compute-runtime.
113-
FetchContentSparse_Declare(exp-headers ${UR_COMPUTE_RUNTIME_REPO} "${UR_COMPUTE_RUNTIME_TAG}" "level_zero/include")
114-
FetchContent_GetProperties(exp-headers)
115-
if(NOT exp-headers_POPULATED)
116-
FetchContent_Populate(exp-headers)
109+
# Fetch only if UR_COMPUTE_RUNTIME_FETCH_REPO is set to ON.
110+
if (UR_COMPUTE_RUNTIME_FETCH_REPO)
111+
112+
if (UR_COMPUTE_RUNTIME_REPO STREQUAL "")
113+
set(UR_COMPUTE_RUNTIME_REPO "https://github.com/intel/compute-runtime.git")
114+
endif()
115+
if (UR_COMPUTE_RUNTIME_TAG STREQUAL "")
116+
set(UR_COMPUTE_RUNTIME_TAG 25.05.32567.17)
117+
endif()
118+
119+
include(FetchContent)
120+
# Sparse fetch only the dir with level zero headers for experimental features to avoid pulling in the entire compute-runtime.
121+
FetchContentSparse_Declare(exp-headers ${UR_COMPUTE_RUNTIME_REPO} "${UR_COMPUTE_RUNTIME_TAG}" "level_zero/include")
122+
FetchContent_GetProperties(exp-headers)
123+
if(NOT exp-headers_POPULATED)
124+
FetchContent_Populate(exp-headers)
125+
endif()
126+
127+
set(COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE "${exp-headers_SOURCE_DIR}")
128+
set(COMPUTE_RUNTIME_REPO_PATH "${exp-headers_SOURCE_DIR}/../..")
129+
130+
# When UR_COMPUTE_RUNTIME_FETCH_REPO is OFF, use UR_COMPUTE_RUNTIME_REPO as repo.
131+
else()
132+
133+
# Check if UR_COMPUTE_RUNTIME_REPO is set. Throw if not.
134+
if (UR_COMPUTE_RUNTIME_REPO STREQUAL "")
135+
message(FATAL_ERROR "UR_COMPUTE_RUNTIME_FETCH_REPO is set to OFF but UR_COMPUTE_RUNTIME_REPO is not set. Please set it to the compute runtime repo.")
136+
endif()
137+
138+
set(COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE "${UR_COMPUTE_RUNTIME_REPO}/level_zero/include")
139+
set(COMPUTE_RUNTIME_REPO_PATH "${UR_COMPUTE_RUNTIME_REPO}")
117140
endif()
141+
142+
message(STATUS "Using Level Zero include headers from ${COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE}")
143+
118144
add_library(ComputeRuntimeLevelZero-Headers INTERFACE)
119-
set(COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE "${exp-headers_SOURCE_DIR}/../..")
120145
message(STATUS "Level Zero Adapter: Using Level Zero headers from ${COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE}")
121146
target_include_directories(ComputeRuntimeLevelZero-Headers
122147
INTERFACE "$<BUILD_INTERFACE:${COMPUTE_RUNTIME_LEVEL_ZERO_INCLUDE}>"
148+
"$<BUILD_INTERFACE:${COMPUTE_RUNTIME_REPO_PATH}>"
123149
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
124150
)

0 commit comments

Comments
 (0)