Skip to content

Commit 2b4a234

Browse files
committed
Build L0 V2 adapter event if L0 adapters is disabled
1 parent a2468dc commit 2b4a234

File tree

4 files changed

+145
-143
lines changed

4 files changed

+145
-143
lines changed

source/adapters/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ function(add_ur_adapter_subdirectory name)
4646
endif()
4747
endfunction()
4848

49-
if(UR_BUILD_ADAPTER_L0 OR UR_BUILD_ADAPTER_ALL)
49+
if(UR_BUILD_ADAPTER_L0 OR UR_BUILD_ADAPTER_L0_V2 OR UR_BUILD_ADAPTER_ALL)
5050
add_ur_adapter_subdirectory(level_zero)
5151
endif()
5252

source/adapters/level_zero/CMakeLists.txt

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
# See LICENSE.TXT
44
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
7-
set(TARGET_NAME ur_adapter_level_zero)
86
set(UR_LEVEL_ZERO_LOADER_LIBRARY "" CACHE FILEPATH "Path of the Level Zero Loader library")
97
set(UR_LEVEL_ZERO_INCLUDE_DIR "" CACHE FILEPATH "Directory containing the Level Zero Headers")
108
set(UR_LEVEL_ZERO_LOADER_REPO "" CACHE STRING "Github repo to get the Level Zero loader sources from")
@@ -13,15 +11,15 @@ set(UR_LEVEL_ZERO_LOADER_TAG "" CACHE STRING " GIT tag of the Level Loader taken
1311
# Copy Level Zero loader/headers locally to the build to avoid leaking their path.
1412
set(LEVEL_ZERO_COPY_DIR ${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader)
1513
if (NOT UR_LEVEL_ZERO_LOADER_LIBRARY STREQUAL "")
16-
get_filename_component(LEVEL_ZERO_LIB_NAME "${UR_LEVEL_ZERO_LOADER_LIBRARY}" NAME)
17-
set(LEVEL_ZERO_LIBRARY ${LEVEL_ZERO_COPY_DIR}/${LEVEL_ZERO_LIB_NAME})
18-
message(STATUS "Level Zero Adapter: Copying Level Zero loader to local build tree")
19-
file(COPY ${UR_LEVEL_ZERO_LOADER_LIBRARY} DESTINATION ${LEVEL_ZERO_COPY_DIR} FOLLOW_SYMLINK_CHAIN)
14+
get_filename_component(LEVEL_ZERO_LIB_NAME "${UR_LEVEL_ZERO_LOADER_LIBRARY}" NAME)
15+
set(LEVEL_ZERO_LIBRARY ${LEVEL_ZERO_COPY_DIR}/${LEVEL_ZERO_LIB_NAME})
16+
message(STATUS "Level Zero Adapter: Copying Level Zero loader to local build tree")
17+
file(COPY ${UR_LEVEL_ZERO_LOADER_LIBRARY} DESTINATION ${LEVEL_ZERO_COPY_DIR} FOLLOW_SYMLINK_CHAIN)
2018
endif()
2119
if (NOT UR_LEVEL_ZERO_INCLUDE_DIR STREQUAL "")
22-
set(LEVEL_ZERO_INCLUDE_DIR ${LEVEL_ZERO_COPY_DIR})
23-
message(STATUS "Level Zero Adapter: Copying Level Zero headers to local build tree")
24-
file(COPY ${UR_LEVEL_ZERO_INCLUDE_DIR}/ DESTINATION ${LEVEL_ZERO_COPY_DIR})
20+
set(LEVEL_ZERO_INCLUDE_DIR ${LEVEL_ZERO_COPY_DIR})
21+
message(STATUS "Level Zero Adapter: Copying Level Zero headers to local build tree")
22+
file(COPY ${UR_LEVEL_ZERO_INCLUDE_DIR}/ DESTINATION ${LEVEL_ZERO_COPY_DIR})
2523
endif()
2624

2725
if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
@@ -93,81 +91,83 @@ target_include_directories(LevelZeroLoader-Headers
9391
INTERFACE "${LEVEL_ZERO_INCLUDE_DIR}"
9492
)
9593

96-
add_ur_adapter(${TARGET_NAME}
97-
SHARED
98-
${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp
99-
${CMAKE_CURRENT_SOURCE_DIR}/adapter.hpp
100-
${CMAKE_CURRENT_SOURCE_DIR}/adapter.cpp
101-
${CMAKE_CURRENT_SOURCE_DIR}/command_buffer.hpp
102-
${CMAKE_CURRENT_SOURCE_DIR}/command_buffer.cpp
103-
${CMAKE_CURRENT_SOURCE_DIR}/common.hpp
104-
${CMAKE_CURRENT_SOURCE_DIR}/context.hpp
105-
${CMAKE_CURRENT_SOURCE_DIR}/device.hpp
106-
${CMAKE_CURRENT_SOURCE_DIR}/event.hpp
107-
${CMAKE_CURRENT_SOURCE_DIR}/usm.hpp
108-
${CMAKE_CURRENT_SOURCE_DIR}/memory.hpp
109-
${CMAKE_CURRENT_SOURCE_DIR}/kernel.hpp
110-
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.hpp
111-
${CMAKE_CURRENT_SOURCE_DIR}/platform.hpp
112-
${CMAKE_CURRENT_SOURCE_DIR}/program.hpp
113-
${CMAKE_CURRENT_SOURCE_DIR}/queue_api.hpp
114-
${CMAKE_CURRENT_SOURCE_DIR}/queue.hpp
115-
${CMAKE_CURRENT_SOURCE_DIR}/sampler.hpp
116-
${CMAKE_CURRENT_SOURCE_DIR}/ur_level_zero.cpp
117-
${CMAKE_CURRENT_SOURCE_DIR}/common.cpp
118-
${CMAKE_CURRENT_SOURCE_DIR}/context.cpp
119-
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
120-
${CMAKE_CURRENT_SOURCE_DIR}/enqueue_native.cpp
121-
${CMAKE_CURRENT_SOURCE_DIR}/event.cpp
122-
${CMAKE_CURRENT_SOURCE_DIR}/usm.cpp
123-
${CMAKE_CURRENT_SOURCE_DIR}/usm_p2p.cpp
124-
${CMAKE_CURRENT_SOURCE_DIR}/virtual_mem.cpp
125-
${CMAKE_CURRENT_SOURCE_DIR}/memory.cpp
126-
${CMAKE_CURRENT_SOURCE_DIR}/kernel.cpp
127-
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.cpp
128-
${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp
129-
${CMAKE_CURRENT_SOURCE_DIR}/program.cpp
130-
${CMAKE_CURRENT_SOURCE_DIR}/queue_api.cpp
131-
${CMAKE_CURRENT_SOURCE_DIR}/queue.cpp
132-
${CMAKE_CURRENT_SOURCE_DIR}/sampler.cpp
133-
${CMAKE_CURRENT_SOURCE_DIR}/image.cpp
134-
${CMAKE_CURRENT_SOURCE_DIR}/../../ur/ur.cpp
135-
)
136-
137-
if(NOT WIN32)
138-
target_sources(ur_adapter_level_zero
139-
PRIVATE
140-
${CMAKE_CURRENT_SOURCE_DIR}/adapter_lib_init_linux.cpp
94+
if(UR_BUILD_ADAPTER_L0)
95+
add_ur_adapter(ur_adapter_level_zero
96+
SHARED
97+
${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp
98+
${CMAKE_CURRENT_SOURCE_DIR}/adapter.hpp
99+
${CMAKE_CURRENT_SOURCE_DIR}/adapter.cpp
100+
${CMAKE_CURRENT_SOURCE_DIR}/command_buffer.hpp
101+
${CMAKE_CURRENT_SOURCE_DIR}/command_buffer.cpp
102+
${CMAKE_CURRENT_SOURCE_DIR}/common.hpp
103+
${CMAKE_CURRENT_SOURCE_DIR}/context.hpp
104+
${CMAKE_CURRENT_SOURCE_DIR}/device.hpp
105+
${CMAKE_CURRENT_SOURCE_DIR}/event.hpp
106+
${CMAKE_CURRENT_SOURCE_DIR}/usm.hpp
107+
${CMAKE_CURRENT_SOURCE_DIR}/memory.hpp
108+
${CMAKE_CURRENT_SOURCE_DIR}/kernel.hpp
109+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.hpp
110+
${CMAKE_CURRENT_SOURCE_DIR}/platform.hpp
111+
${CMAKE_CURRENT_SOURCE_DIR}/program.hpp
112+
${CMAKE_CURRENT_SOURCE_DIR}/queue_api.hpp
113+
${CMAKE_CURRENT_SOURCE_DIR}/queue.hpp
114+
${CMAKE_CURRENT_SOURCE_DIR}/sampler.hpp
115+
${CMAKE_CURRENT_SOURCE_DIR}/ur_level_zero.cpp
116+
${CMAKE_CURRENT_SOURCE_DIR}/common.cpp
117+
${CMAKE_CURRENT_SOURCE_DIR}/context.cpp
118+
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
119+
${CMAKE_CURRENT_SOURCE_DIR}/enqueue_native.cpp
120+
${CMAKE_CURRENT_SOURCE_DIR}/event.cpp
121+
${CMAKE_CURRENT_SOURCE_DIR}/usm.cpp
122+
${CMAKE_CURRENT_SOURCE_DIR}/usm_p2p.cpp
123+
${CMAKE_CURRENT_SOURCE_DIR}/virtual_mem.cpp
124+
${CMAKE_CURRENT_SOURCE_DIR}/memory.cpp
125+
${CMAKE_CURRENT_SOURCE_DIR}/kernel.cpp
126+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.cpp
127+
${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp
128+
${CMAKE_CURRENT_SOURCE_DIR}/program.cpp
129+
${CMAKE_CURRENT_SOURCE_DIR}/queue_api.cpp
130+
${CMAKE_CURRENT_SOURCE_DIR}/queue.cpp
131+
${CMAKE_CURRENT_SOURCE_DIR}/sampler.cpp
132+
${CMAKE_CURRENT_SOURCE_DIR}/image.cpp
133+
${CMAKE_CURRENT_SOURCE_DIR}/../../ur/ur.cpp
141134
)
142-
endif()
143135

144-
# TODO: fix level_zero adapter conversion warnings
145-
target_compile_options(${TARGET_NAME} PRIVATE
146-
$<$<CXX_COMPILER_ID:MSVC>:/wd4805 /wd4244>
147-
)
136+
if(NOT WIN32)
137+
target_sources(ur_adapter_level_zero
138+
PRIVATE
139+
${CMAKE_CURRENT_SOURCE_DIR}/adapter_lib_init_linux.cpp
140+
)
141+
endif()
148142

149-
set_target_properties(${TARGET_NAME} PROPERTIES
150-
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
151-
SOVERSION "${PROJECT_VERSION_MAJOR}"
152-
)
143+
# TODO: fix level_zero adapter conversion warnings
144+
target_compile_options(ur_adapter_level_zero PRIVATE
145+
$<$<CXX_COMPILER_ID:MSVC>:/wd4805 /wd4244>
146+
)
153147

154-
if (WIN32)
155-
# 0x800: Search for the DLL only in the System32 folder
156-
target_link_options(ur_adapter_level_zero PUBLIC /DEPENDENTLOADFLAG:0x800)
157-
endif()
148+
set_target_properties(ur_adapter_level_zero PROPERTIES
149+
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
150+
SOVERSION "${PROJECT_VERSION_MAJOR}"
151+
)
158152

159-
target_link_libraries(${TARGET_NAME} PRIVATE
160-
${PROJECT_NAME}::headers
161-
${PROJECT_NAME}::common
162-
${PROJECT_NAME}::umf
163-
LevelZeroLoader
164-
LevelZeroLoader-Headers
165-
)
153+
if (WIN32)
154+
# 0x800: Search for the DLL only in the System32 folder
155+
target_link_options(ur_adapter_level_zero PUBLIC /DEPENDENTLOADFLAG:0x800)
156+
endif()
166157

167-
target_include_directories(${TARGET_NAME} PRIVATE
168-
"${CMAKE_CURRENT_SOURCE_DIR}/../../"
169-
LevelZeroLoader-Headers
170-
)
158+
target_link_libraries(ur_adapter_level_zero PRIVATE
159+
${PROJECT_NAME}::headers
160+
${PROJECT_NAME}::common
161+
${PROJECT_NAME}::umf
162+
LevelZeroLoader
163+
LevelZeroLoader-Headers
164+
)
165+
166+
target_include_directories(ur_adapter_level_zero PRIVATE
167+
"${CMAKE_CURRENT_SOURCE_DIR}/../../"
168+
LevelZeroLoader-Headers
169+
)
170+
endif()
171171

172172
if(UR_BUILD_ADAPTER_L0_V2)
173173
add_ur_adapter(ur_adapter_level_zero_v2

test/adapters/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,6 @@ if(UR_BUILD_ADAPTER_HIP OR UR_BUILD_ADAPTER_ALL)
8585
add_subdirectory(hip)
8686
endif()
8787

88-
if(UR_BUILD_ADAPTER_L0 OR UR_BUILD_ADAPTER_ALL)
88+
if(UR_BUILD_ADAPTER_L0 OR UR_BUILD_ADAPTER_L0_V2 OR UR_BUILD_ADAPTER_ALL)
8989
add_subdirectory(level_zero)
9090
endif()

test/adapters/level_zero/CMakeLists.txt

Lines changed: 65 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -3,84 +3,86 @@
33
# See LICENSE.TXT
44
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
if(NOT UR_DPCXX)
7-
# Tests that require kernels can't be used if we aren't generating
8-
# device binaries
9-
message(WARNING
10-
"UR_DPCXX is not defined, skipping some adapter tests for level_zero")
11-
else()
12-
add_adapter_test(level_zero
13-
FIXTURE KERNELS
14-
SOURCES
15-
urProgramLink.cpp
16-
urKernelCreateWithNativeHandle.cpp
17-
ENVIRONMENT
18-
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
19-
)
20-
# TODO: valgrind tests require very new environment.
21-
# Enable once all L0 runners are updated.
22-
# add_adapter_memcheck_test(level_zero
23-
# ENVIRONMENT
24-
# "UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
25-
# )
6+
if(UR_BUILD_ADAPTER_L0)
7+
if(NOT UR_DPCXX)
8+
# Tests that require kernels can't be used if we aren't generating
9+
# device binaries
10+
message(WARNING
11+
"UR_DPCXX is not defined, skipping some adapter tests for level_zero")
12+
else()
13+
add_adapter_test(level_zero
14+
FIXTURE KERNELS
15+
SOURCES
16+
urProgramLink.cpp
17+
urKernelCreateWithNativeHandle.cpp
18+
ENVIRONMENT
19+
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
20+
)
21+
# TODO: valgrind tests require very new environment.
22+
# Enable once all L0 runners are updated.
23+
# add_adapter_memcheck_test(level_zero
24+
# ENVIRONMENT
25+
# "UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
26+
# )
2627

27-
target_link_libraries(test-adapter-level_zero PRIVATE
28-
LevelZeroLoader
29-
LevelZeroLoader-Headers
30-
)
28+
target_link_libraries(test-adapter-level_zero PRIVATE
29+
LevelZeroLoader
30+
LevelZeroLoader-Headers
31+
)
3132

32-
target_include_directories(test-adapter-level_zero PRIVATE
33-
${PROJECT_SOURCE_DIR}/source
34-
${PROJECT_SOURCE_DIR}/source/adapters/level_zero
35-
LevelZeroLoader-Headers
36-
)
33+
target_include_directories(test-adapter-level_zero PRIVATE
34+
${PROJECT_SOURCE_DIR}/source
35+
${PROJECT_SOURCE_DIR}/source/adapters/level_zero
36+
LevelZeroLoader-Headers
37+
)
3738

38-
add_dependencies(test-adapter-level_zero
39-
generate_device_binaries kernel_names_header)
40-
endif()
39+
add_dependencies(test-adapter-level_zero
40+
generate_device_binaries kernel_names_header)
41+
endif()
4142

42-
if(NOT WIN32)
43-
# Make L0 use CallMap from a seprate shared lib so that we can access the map
44-
# from the tests. This only seems to work on linux
45-
add_library(zeCallMap SHARED zeCallMap.cpp)
46-
target_compile_definitions(ur_adapter_level_zero PRIVATE UR_L0_CALL_COUNT_IN_TESTS)
47-
target_link_libraries(ur_adapter_level_zero PRIVATE zeCallMap)
43+
if(NOT WIN32)
44+
# Make L0 use CallMap from a seprate shared lib so that we can access the map
45+
# from the tests. This only seems to work on linux
46+
add_library(zeCallMap SHARED zeCallMap.cpp)
47+
target_compile_definitions(ur_adapter_level_zero PRIVATE UR_L0_CALL_COUNT_IN_TESTS)
48+
target_link_libraries(ur_adapter_level_zero PRIVATE zeCallMap)
4849

49-
add_adapter_test(level_zero_ze_calls
50-
FIXTURE DEVICES
51-
SOURCES
52-
event_cache_tests.cpp
53-
ENVIRONMENT
54-
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
55-
"UR_L0_LEAKS_DEBUG=1"
56-
)
50+
add_adapter_test(level_zero_ze_calls
51+
FIXTURE DEVICES
52+
SOURCES
53+
event_cache_tests.cpp
54+
ENVIRONMENT
55+
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
56+
"UR_L0_LEAKS_DEBUG=1"
57+
)
58+
59+
target_link_libraries(test-adapter-level_zero_ze_calls PRIVATE zeCallMap)
5760

58-
target_link_libraries(test-adapter-level_zero_ze_calls PRIVATE zeCallMap)
61+
add_adapter_test(level_zero_multi_queue
62+
FIXTURE DEVICES
63+
SOURCES
64+
multi_device_event_cache_tests.cpp
65+
ENVIRONMENT
66+
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
67+
"UR_L0_LEAKS_DEBUG=1"
68+
)
5969

60-
add_adapter_test(level_zero_multi_queue
70+
target_link_libraries(test-adapter-level_zero_multi_queue PRIVATE zeCallMap)
71+
endif()
72+
73+
add_adapter_test(level_zero_ipc
6174
FIXTURE DEVICES
6275
SOURCES
63-
multi_device_event_cache_tests.cpp
76+
ipc.cpp
6477
ENVIRONMENT
6578
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
66-
"UR_L0_LEAKS_DEBUG=1"
6779
)
6880

69-
target_link_libraries(test-adapter-level_zero_multi_queue PRIVATE zeCallMap)
81+
target_link_libraries(test-adapter-level_zero_ipc PRIVATE
82+
ur_umf
83+
)
7084
endif()
7185

72-
add_adapter_test(level_zero_ipc
73-
FIXTURE DEVICES
74-
SOURCES
75-
ipc.cpp
76-
ENVIRONMENT
77-
"UR_ADAPTERS_FORCE_LOAD=\"$<TARGET_FILE:ur_adapter_level_zero>\""
78-
)
79-
80-
target_link_libraries(test-adapter-level_zero_ipc PRIVATE
81-
ur_umf
82-
)
83-
8486
if(UR_BUILD_ADAPTER_L0_V2)
8587
add_subdirectory(v2)
8688
endif()

0 commit comments

Comments
 (0)