Skip to content

Commit 89dc3a5

Browse files
authored
Merge pull request #1893 from igchor/event_no_return
[L0 v2] event improvements
2 parents b99d93b + 5a2c169 commit 89dc3a5

28 files changed

+1114
-276
lines changed

.github/workflows/build-hw-reusable.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ name: Build - Adapters on HW - Reusable
44
on:
55
workflow_call:
66
inputs:
7-
name:
7+
adapter_name:
8+
required: true
9+
type: string
10+
runner_name:
811
required: true
912
type: string
1013
platform:
@@ -33,7 +36,7 @@ jobs:
3336
strategy:
3437
matrix:
3538
adapter: [
36-
{name: "${{inputs.name}}", platform: "${{inputs.platform}}", static_Loader: "${{inputs.static_loader}}"},
39+
{name: "${{inputs.adapter_name}}", platform: "${{inputs.platform}}", static_Loader: "${{inputs.static_loader}}"},
3740
]
3841
build_type: [Debug, Release]
3942
compiler: [{c: gcc, cxx: g++}, {c: clang, cxx: clang++}]
@@ -47,7 +50,7 @@ jobs:
4750
- adapter: {static_Loader: ON}
4851
compiler: {c: clang, cxx: clang++}
4952

50-
runs-on: ${{matrix.adapter.name}}
53+
runs-on: ${{inputs.runner_name}}
5154

5255
steps:
5356
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

.github/workflows/cmake.yml

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,39 +138,52 @@ jobs:
138138
name: Level Zero
139139
uses: ./.github/workflows/build-hw-reusable.yml
140140
with:
141-
name: L0
141+
adapter_name: L0
142+
runner_name: L0
143+
144+
level-zero-v2:
145+
name: Level Zero V2
146+
uses: ./.github/workflows/build-hw-reusable.yml
147+
with:
148+
adapter_name: L0_V2
149+
runner_name: L0
142150

143151
level-zero-static:
144152
name: Level Zero static
145153
uses: ./.github/workflows/build-hw-reusable.yml
146154
with:
147-
name: L0
155+
adapter_name: L0
156+
runner_name: L0
148157
static_loader: ON
149158

150159
opencl:
151160
name: OpenCL
152161
uses: ./.github/workflows/build-hw-reusable.yml
153162
with:
154-
name: OPENCL
163+
adapter_name: OPENCL
164+
runner_name: OPENCL
155165
platform: "Intel(R) OpenCL"
156166

157167
cuda:
158168
name: CUDA
159169
uses: ./.github/workflows/build-hw-reusable.yml
160170
with:
161-
name: CUDA
171+
adapter_name: CUDA
172+
runner_name: CUDA
162173

163174
hip:
164175
name: HIP
165176
uses: ./.github/workflows/build-hw-reusable.yml
166177
with:
167-
name: HIP
178+
adapter_name: HIP
179+
runner_name: HIP
168180

169181
native-cpu:
170182
name: Native CPU
171183
uses: ./.github/workflows/build-hw-reusable.yml
172184
with:
173-
name: NATIVE_CPU
185+
adapter_name: NATIVE_CPU
186+
runner_name: NATIVE_CPU
174187

175188
e2e-level-zero:
176189
name: E2E L0
@@ -202,15 +215,20 @@ jobs:
202215
matrix:
203216
os: ['windows-2019', 'windows-2022']
204217
adapter: [
205-
{name: None, var: ''}, {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
218+
{name: None, var: ''}, {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'},
219+
{name: None, var: ''}, {name: L0_V2, var: '-DUR_BUILD_ADAPTER_L0_V2=ON'}
206220
]
207221

208222
# TODO: building level zero loader on windows-2019 and clang-cl is currently broken
209223
exclude:
210224
- os: 'windows-2019'
211225
adapter: {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
226+
- os: 'windows-2019'
227+
adapter: {name: L0_V2, var: '-DUR_BUILD_ADAPTER_L0_V2=ON'}
212228
- adapter: {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
213229
compiler: {c: clang-cl, cxx: clang-cl}
230+
- adapter: {name: L0_V2, var: '-DUR_BUILD_ADAPTER_L0_V2=ON'}
231+
compiler: {c: clang-cl, cxx: clang-cl}
214232

215233
build_type: [Debug, Release]
216234
compiler: [{c: cl, cxx: cl}, {c: clang-cl, cxx: clang-cl}]

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: 82 additions & 82 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
@@ -207,11 +207,11 @@ if(UR_BUILD_ADAPTER_L0_V2)
207207
${CMAKE_CURRENT_SOURCE_DIR}/v2/queue_immediate_in_order.cpp
208208
)
209209

210-
# api.cpp contains NOT_SUPPORTED functions-only
211-
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/v2/api.cpp
212-
PROPERTIES APPEND_STRING PROPERTY COMPILE_FLAGS "-Wno-unused-parameter")
213-
214210
if(NOT WIN32)
211+
# api.cpp contains NOT_SUPPORTED functions-only
212+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/v2/api.cpp
213+
PROPERTIES APPEND_STRING PROPERTY COMPILE_FLAGS "-Wno-unused-parameter")
214+
215215
target_sources(ur_adapter_level_zero_v2
216216
PRIVATE
217217
${CMAKE_CURRENT_SOURCE_DIR}/adapter_lib_init_linux.cpp

source/adapters/level_zero/v2/api.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -538,16 +538,6 @@ ur_result_t UR_APICALL urEventWait(uint32_t numEvents,
538538
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
539539
}
540540

541-
ur_result_t UR_APICALL urEventRetain(ur_event_handle_t hEvent) {
542-
logger::error("{} function not implemented!", __FUNCTION__);
543-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
544-
}
545-
546-
ur_result_t UR_APICALL urEventRelease(ur_event_handle_t hEvent) {
547-
logger::error("{} function not implemented!", __FUNCTION__);
548-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
549-
}
550-
551541
ur_result_t UR_APICALL urEventGetNativeHandle(
552542
ur_event_handle_t hEvent, ur_native_handle_t *phNativeEvent) {
553543
logger::error("{} function not implemented!", __FUNCTION__);

0 commit comments

Comments
 (0)