Skip to content

Commit 959dc50

Browse files
mshahneoakroviakovnbpatel
committed
[mlir][ExecutionEngine] Add LevelZeroRuntimeWrapper.
Adds LevelZeroRuntime wrapper and tests. Co-authored-by: Artem Kroviakov <[email protected]> Co-authored-by: Nishant Patel <[email protected]>
1 parent 381623e commit 959dc50

File tree

8 files changed

+878
-87
lines changed

8 files changed

+878
-87
lines changed

mlir/cmake/modules/FindLevelZero.cmake renamed to mlir/cmake/modules/FindLevelZeroRuntime.cmake

Lines changed: 60 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -20,40 +20,39 @@ include(FindPackageHandleStandardArgs)
2020
# Search path priority
2121
# 1. CMake Variable LEVEL_ZERO_DIR
2222
# 2. Environment Variable LEVEL_ZERO_DIR
23-
2423
if(NOT LEVEL_ZERO_DIR)
2524
if(DEFINED ENV{LEVEL_ZERO_DIR})
2625
set(LEVEL_ZERO_DIR "$ENV{LEVEL_ZERO_DIR}")
2726
endif()
2827
endif()
2928

3029
if(LEVEL_ZERO_DIR)
31-
find_path(LevelZero_INCLUDE_DIR
30+
find_path(LevelZeroRuntime_INCLUDE_DIR
3231
NAMES level_zero/ze_api.h
3332
PATHS ${LEVEL_ZERO_DIR}/include
3433
NO_DEFAULT_PATH
3534
)
3635

3736
if(LINUX)
38-
find_library(LevelZero_LIBRARY
37+
find_library(LevelZeroRuntime_LIBRARY
3938
NAMES ze_loader
4039
PATHS ${LEVEL_ZERO_DIR}/lib
41-
${LEVEL_ZERO_DIR}/lib/x86_64-linux-gnu
40+
${LEVEL_ZERO_DIR}/lib/x86_64-linux-gnu
4241
NO_DEFAULT_PATH
4342
)
4443
else()
45-
find_library(LevelZero_LIBRARY
44+
find_library(LevelZeroRuntime_LIBRARY
4645
NAMES ze_loader
4746
PATHS ${LEVEL_ZERO_DIR}/lib
4847
NO_DEFAULT_PATH
4948
)
5049
endif()
5150
else()
52-
find_path(LevelZero_INCLUDE_DIR
51+
find_path(LevelZeroRuntime_INCLUDE_DIR
5352
NAMES level_zero/ze_api.h
5453
)
5554

56-
find_library(LevelZero_LIBRARY
55+
find_library(LevelZeroRuntime_LIBRARY
5756
NAMES ze_loader
5857
)
5958
endif()
@@ -64,26 +63,33 @@ endif()
6463
# lists of equal lengths, with the shorter string getting zero-padded.
6564
function(compare_versions VERSION_STR1 VERSION_STR2 OUTPUT)
6665
# Convert the strings to list
67-
string(REPLACE "." ";" VL1 ${VERSION_STR1})
68-
string(REPLACE "." ";" VL2 ${VERSION_STR2})
66+
string(REPLACE "." ";" VL1 ${VERSION_STR1})
67+
string(REPLACE "." ";" VL2 ${VERSION_STR2})
68+
6969
# get lengths of both lists
7070
list(LENGTH VL1 VL1_LEN)
7171
list(LENGTH VL2 VL2_LEN)
7272
set(LEN ${VL1_LEN})
73+
7374
# If they differ in size pad the shorter list with 0s
7475
if(VL1_LEN GREATER VL2_LEN)
7576
math(EXPR DIFF "${VL1_LEN} - ${VL2_LEN}" OUTPUT_FORMAT DECIMAL)
77+
7678
foreach(IDX RANGE 1 ${DIFF} 1)
7779
list(APPEND VL2 "0")
7880
endforeach()
7981
elseif(VL2_LEN GREATER VL2_LEN)
8082
math(EXPR DIFF "${VL1_LEN} - ${VL2_LEN}" OUTPUT_FORMAT DECIMAL)
83+
8184
foreach(IDX RANGE 1 ${DIFF} 1)
8285
list(APPEND VL2 "0")
8386
endforeach()
87+
8488
set(LEN ${VL2_LEN})
8589
endif()
90+
8691
math(EXPR LEN_SUB_ONE "${LEN}-1")
92+
8793
foreach(IDX RANGE 0 ${LEN_SUB_ONE} 1)
8894
list(GET VL1 ${IDX} VAL1)
8995
list(GET VL2 ${IDX} VAL2)
@@ -98,12 +104,10 @@ function(compare_versions VERSION_STR1 VERSION_STR2 OUTPUT)
98104
set(${OUTPUT} TRUE PARENT_SCOPE)
99105
endif()
100106
endforeach()
101-
102-
endfunction(compare_versions)
107+
endfunction(compare_versions)
103108

104109
# Creates a small function to run and extract the LevelZero loader version.
105110
function(get_l0_loader_version)
106-
107111
set(L0_VERSIONEER_SRC
108112
[====[
109113
#include <iostream>
@@ -142,19 +146,20 @@ function(get_l0_loader_version)
142146

143147
# We need both the directories in the include path as ze_loader.h
144148
# includes "ze_api.h" and not "level_zero/ze_api.h".
145-
list(APPEND INCLUDE_DIRS ${LevelZero_INCLUDE_DIR})
146-
list(APPEND INCLUDE_DIRS ${LevelZero_INCLUDE_DIR}/level_zero)
149+
list(APPEND INCLUDE_DIRS ${LevelZeroRuntime_INCLUDE_DIR})
150+
list(APPEND INCLUDE_DIRS ${LevelZeroRuntime_INCLUDE_DIR}/level_zero)
147151
list(JOIN INCLUDE_DIRS ";" INCLUDE_DIRS_STR)
148152
try_run(L0_VERSIONEER_RUN L0_VERSIONEER_COMPILE
149-
"${CMAKE_BINARY_DIR}"
150-
"${L0_VERSIONEER_FILE}"
151-
LINK_LIBRARIES ${LevelZero_LIBRARY}
152-
CMAKE_FLAGS
153-
"-DINCLUDE_DIRECTORIES=${INCLUDE_DIRS_STR}"
154-
RUN_OUTPUT_VARIABLE L0_VERSION
153+
"${CMAKE_BINARY_DIR}"
154+
"${L0_VERSIONEER_FILE}"
155+
LINK_LIBRARIES ${LevelZeroRuntime_LIBRARY}
156+
CMAKE_FLAGS
157+
"-DINCLUDE_DIRECTORIES=${INCLUDE_DIRS_STR}"
158+
RUN_OUTPUT_VARIABLE L0_VERSION
155159
)
156-
if(${L0_VERSIONEER_COMPILE} AND (DEFINED L0_VERSIONEER_RUN))
157-
set(LevelZero_VERSION ${L0_VERSION} PARENT_SCOPE)
160+
161+
if(${L0_VERSIONEER_COMPILE} AND(DEFINED L0_VERSIONEER_RUN))
162+
set(LevelZeroRuntime_VERSION ${L0_VERSION} PARENT_SCOPE)
158163
message(STATUS "Found Level Zero of version: ${L0_VERSION}")
159164
else()
160165
message(FATAL_ERROR
@@ -163,59 +168,61 @@ function(get_l0_loader_version)
163168
endif()
164169
endfunction(get_l0_loader_version)
165170

166-
if(LevelZero_INCLUDE_DIR AND LevelZero_LIBRARY)
167-
list(APPEND LevelZero_LIBRARIES "${LevelZero_LIBRARY}")
168-
list(APPEND LevelZero_INCLUDE_DIRS ${LevelZero_INCLUDE_DIR})
171+
if(LevelZeroRuntime_INCLUDE_DIR AND LevelZeroRuntime_LIBRARY)
172+
list(APPEND LevelZeroRuntime_LIBRARIES "${LevelZeroRuntime_LIBRARY}")
173+
list(APPEND LevelZeroRuntime_INCLUDE_DIRS ${LevelZeroRuntime_INCLUDE_DIR})
174+
169175
if(OpenCL_FOUND)
170-
list(APPEND LevelZero_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
176+
list(APPEND LevelZeroRuntime_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
171177
endif()
172178

173-
cmake_path(GET LevelZero_LIBRARY PARENT_PATH LevelZero_LIBRARIES_PATH)
174-
set(LevelZero_LIBRARIES_DIR ${LevelZero_LIBRARIES_PATH})
175-
176-
if(NOT TARGET LevelZero::LevelZero)
177-
add_library(LevelZero::LevelZero INTERFACE IMPORTED)
178-
set_target_properties(LevelZero::LevelZero
179-
PROPERTIES INTERFACE_LINK_LIBRARIES "${LevelZero_LIBRARIES}"
180-
)
181-
set_target_properties(LevelZero::LevelZero
182-
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LevelZero_INCLUDE_DIRS}"
183-
)
179+
cmake_path(GET LevelZeroRuntime_LIBRARY PARENT_PATH LevelZeroRuntime_LIBRARIES_PATH)
180+
set(LevelZeroRuntime_LIBRARIES_DIR ${LevelZeroRuntime_LIBRARIES_PATH})
181+
182+
if(NOT TARGET LevelZeroRuntime::LevelZeroRuntime)
183+
add_library(LevelZeroRuntime::LevelZeroRuntime INTERFACE IMPORTED)
184+
set_target_properties(LevelZeroRuntime::LevelZeroRuntime
185+
PROPERTIES INTERFACE_LINK_LIBRARIES "${LevelZeroRuntime_LIBRARIES}"
186+
)
187+
set_target_properties(LevelZeroRuntime::LevelZeroRuntime
188+
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LevelZeroRuntime_INCLUDE_DIRS}"
189+
)
184190
endif()
185191
endif()
186192

187193
# Check if a specific version of Level Zero is required
188-
if(LevelZero_FIND_VERSION)
194+
if(LevelZeroRuntime_FIND_VERSION)
189195
get_l0_loader_version()
190196
set(VERSION_GT_FIND_VERSION FALSE)
191197
compare_versions(
192-
${LevelZero_VERSION}
193-
${LevelZero_FIND_VERSION}
198+
${LevelZeroRuntime_VERSION}
199+
${LevelZeroRuntime_FIND_VERSION}
194200
VERSION_GT_FIND_VERSION
195201
)
202+
196203
if(${VERSION_GT_FIND_VERSION})
197-
set(LevelZero_FOUND TRUE)
204+
set(LevelZeroRuntime_FOUND TRUE)
198205
else()
199-
set(LevelZero_FOUND FALSE)
206+
set(LevelZeroRuntime_FOUND FALSE)
200207
endif()
201208
else()
202-
set(LevelZero_FOUND TRUE)
209+
set(LevelZeroRuntime_FOUND TRUE)
203210
endif()
204211

205-
find_package_handle_standard_args(LevelZero
212+
find_package_handle_standard_args(LevelZeroRuntime
206213
REQUIRED_VARS
207-
LevelZero_FOUND
208-
LevelZero_INCLUDE_DIRS
209-
LevelZero_LIBRARY
210-
LevelZero_LIBRARIES_DIR
214+
LevelZeroRuntime_FOUND
215+
LevelZeroRuntime_INCLUDE_DIRS
216+
LevelZeroRuntime_LIBRARY
217+
LevelZeroRuntime_LIBRARIES_DIR
211218
HANDLE_COMPONENTS
212219
)
213-
mark_as_advanced(LevelZero_LIBRARY LevelZero_INCLUDE_DIRS)
220+
mark_as_advanced(LevelZeroRuntime_LIBRARY LevelZeroRuntime_INCLUDE_DIRS)
214221

215-
if(LevelZero_FOUND)
216-
find_package_message(LevelZero "Found LevelZero: ${LevelZero_LIBRARY}"
217-
"(found version ${LevelZero_VERSION})"
222+
if(LevelZeroRuntime_FOUND)
223+
find_package_message(LevelZeroRuntime "Found LevelZero: ${LevelZeroRuntime_LIBRARY}"
224+
"(found version ${LevelZeroRuntime_VERSION})"
218225
)
219226
else()
220-
find_package_message(LevelZero "Could not find LevelZero" "")
227+
find_package_message(LevelZeroRuntime "Could not find LevelZero" "")
221228
endif()

0 commit comments

Comments
 (0)