Skip to content

Commit 47083f8

Browse files
authored
[SYCL][UR][L0] Fetch Level Zero adapter source from the Unified Runtime repo (#11252)
This is the second part of moving the Level Zero adapter to the Unified Runtime repo, after oneapi-src/unified-runtime#879
1 parent f92e432 commit 47083f8

37 files changed

+21
-15671
lines changed

sycl/plugins/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|IntelLLVM" )
22
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-covered-switch-default")
33
endif()
44

5-
foreach(plugin ${SYCL_ENABLE_PLUGINS})
6-
add_subdirectory(${plugin})
7-
endforeach()
8-
95
# level_zero plugin depends today on unified_runtime plugin
106
# and unified_runtime plugin is not an independent plugin, adding it explicitly
117
if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
128
add_subdirectory(unified_runtime)
139
endif()
10+
11+
foreach(plugin ${SYCL_ENABLE_PLUGINS})
12+
add_subdirectory(${plugin})
13+
endforeach()

sycl/plugins/level_zero/CMakeLists.txt

Lines changed: 5 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,6 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
4444
${level-zero-loader_SOURCE_DIR}/include CACHE PATH "Path to Level Zero Headers")
4545
endif()
4646

47-
add_library (LevelZeroLoader INTERFACE)
48-
# The MSVC linker does not like / at the start of a path, so to work around this
49-
# we split it into a link library and a library path, where the path is allowed
50-
# to have leading /.
51-
get_filename_component(LEVEL_ZERO_LIBRARY_SRC "${LEVEL_ZERO_LIBRARY}" DIRECTORY)
52-
get_filename_component(LEVEL_ZERO_LIB_NAME "${LEVEL_ZERO_LIBRARY}" NAME)
53-
target_link_directories(LevelZeroLoader
54-
INTERFACE "${LEVEL_ZERO_LIBRARY_SRC}"
55-
)
56-
target_link_libraries(LevelZeroLoader
57-
INTERFACE "${LEVEL_ZERO_LIB_NAME}"
58-
)
59-
60-
add_library (LevelZeroLoader-Headers INTERFACE)
61-
target_include_directories(LevelZeroLoader-Headers
62-
INTERFACE "${LEVEL_ZERO_INCLUDE_DIR}"
63-
)
64-
6547
if (SYCL_ENABLE_XPTI_TRACING)
6648
set(XPTI_PROXY_SRC "${CMAKE_SOURCE_DIR}/../xpti/src/xpti_proxy.cpp")
6749
set(XPTI_INCLUDE "${CMAKE_SOURCE_DIR}/../xpti/include")
@@ -83,6 +65,9 @@ add_custom_command(
8365

8466
find_package(Threads REQUIRED)
8567

68+
# Get the L0 adapter sources so they can be shared with the L0 PI plugin
69+
get_target_property(UR_L0_ADAPTER_SOURCES ur_adapter_level_zero SOURCES)
70+
8671
add_sycl_plugin(level_zero
8772
SOURCES
8873
# These are short-term shared with Unified Runtime
@@ -93,39 +78,7 @@ add_sycl_plugin(level_zero
9378
"ur_bindings.hpp"
9479
"../unified_runtime/pi2ur.hpp"
9580
"../unified_runtime/pi2ur.cpp"
96-
"../unified_runtime/ur/ur.hpp"
97-
"../unified_runtime/ur/ur.cpp"
98-
"../unified_runtime/ur/adapters/level_zero/ur_level_zero.hpp"
99-
"../unified_runtime/ur/adapters/level_zero/command_buffer.hpp"
100-
"../unified_runtime/ur/adapters/level_zero/adapter.hpp"
101-
"../unified_runtime/ur/adapters/level_zero/common.hpp"
102-
"../unified_runtime/ur/adapters/level_zero/context.hpp"
103-
"../unified_runtime/ur/adapters/level_zero/device.hpp"
104-
"../unified_runtime/ur/adapters/level_zero/event.hpp"
105-
"../unified_runtime/ur/adapters/level_zero/image.hpp"
106-
"../unified_runtime/ur/adapters/level_zero/kernel.hpp"
107-
"../unified_runtime/ur/adapters/level_zero/memory.hpp"
108-
"../unified_runtime/ur/adapters/level_zero/platform.hpp"
109-
"../unified_runtime/ur/adapters/level_zero/program.hpp"
110-
"../unified_runtime/ur/adapters/level_zero/queue.hpp"
111-
"../unified_runtime/ur/adapters/level_zero/sampler.hpp"
112-
"../unified_runtime/ur/adapters/level_zero/usm.hpp"
113-
"../unified_runtime/ur/adapters/level_zero/ur_level_zero.cpp"
114-
"../unified_runtime/ur/adapters/level_zero/adapter.cpp"
115-
"../unified_runtime/ur/adapters/level_zero/command_buffer.cpp"
116-
"../unified_runtime/ur/adapters/level_zero/common.cpp"
117-
"../unified_runtime/ur/adapters/level_zero/context.cpp"
118-
"../unified_runtime/ur/adapters/level_zero/device.cpp"
119-
"../unified_runtime/ur/adapters/level_zero/event.cpp"
120-
"../unified_runtime/ur/adapters/level_zero/image.cpp"
121-
"../unified_runtime/ur/adapters/level_zero/kernel.cpp"
122-
"../unified_runtime/ur/adapters/level_zero/memory.cpp"
123-
"../unified_runtime/ur/adapters/level_zero/platform.cpp"
124-
"../unified_runtime/ur/adapters/level_zero/program.cpp"
125-
"../unified_runtime/ur/adapters/level_zero/queue.cpp"
126-
"../unified_runtime/ur/adapters/level_zero/sampler.cpp"
127-
"../unified_runtime/ur/adapters/level_zero/usm.cpp"
128-
"../unified_runtime/ur/adapters/level_zero/usm_p2p.cpp"
81+
${UR_L0_ADAPTER_SOURCES}
12982
# Following are the PI Level-Zero Plugin only codes.
13083
"pi_level_zero.cpp"
13184
"pi_level_zero.hpp"
@@ -135,6 +88,7 @@ add_sycl_plugin(level_zero
13588
${CMAKE_CURRENT_BINARY_DIR} # for ze_api.def
13689
${CMAKE_CURRENT_SOURCE_DIR} # for Level-Zero Plugin "ur_bindings.hpp"
13790
${CMAKE_CURRENT_SOURCE_DIR}/../unified_runtime # for Unified Runtime
91+
${UNIFIED_RUNTIME_SOURCE_DIR}/source/ # for adapters/level_zero
13892
${XPTI_INCLUDE}
13993
LIBRARIES
14094
LevelZeroLoader-Headers

sycl/plugins/level_zero/pi_level_zero.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
_PI_PLUGIN_VERSION_STRING(_PI_LEVEL_ZERO_PLUGIN_VERSION)
2727

2828
// Share code between this PI L0 Plugin and UR L0 Adapter
29+
#include <adapters/level_zero/ur_level_zero.hpp>
2930
#include <pi2ur.hpp>
30-
#include <ur/adapters/level_zero/ur_level_zero.hpp>
3131

3232
#endif // PI_LEVEL_ZERO_HPP

sycl/plugins/unified_runtime/CMakeLists.txt

Lines changed: 4 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
if (NOT DEFINED UNIFIED_RUNTIME_LIBRARY OR NOT DEFINED UNIFIED_RUNTIME_INCLUDE_DIR)
44
include(FetchContent)
55

6+
# The UR tag should be from the 'adapters' branch
67
set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git")
7-
set(UNIFIED_RUNTIME_TAG b3cc9ae3f99ca7faff1ba765dd36652fef2cfddd)
8+
set(UNIFIED_RUNTIME_TAG c791b8bba63af1c1880ae278e9d6df90021636dd)
89

10+
set(UR_BUILD_ADAPTER_L0 ON)
911
set(UMF_ENABLE_POOL_TRACKING ON)
1012
message(STATUS "Will fetch Unified Runtime from ${UNIFIED_RUNTIME_REPO}")
1113
FetchContent_Declare(unified-runtime
@@ -76,58 +78,7 @@ add_sycl_plugin(unified_runtime
7678
LevelZeroLoader-Headers # we need for #include <ze_api.h> in common.h
7779
)
7880

79-
# Build level zero adapter
80-
add_sycl_library("ur_adapter_level_zero" SHARED
81-
SOURCES
82-
"ur/ur.hpp"
83-
"ur/ur.cpp"
84-
"ur/adapters/level_zero/ur_level_zero.hpp"
85-
"ur/adapters/level_zero/ur_level_zero.cpp"
86-
"ur/adapters/level_zero/ur_interface_loader.cpp"
87-
"ur/adapters/level_zero/adapter.hpp"
88-
"ur/adapters/level_zero/command_buffer.hpp"
89-
"ur/adapters/level_zero/common.hpp"
90-
"ur/adapters/level_zero/context.hpp"
91-
"ur/adapters/level_zero/device.hpp"
92-
"ur/adapters/level_zero/event.hpp"
93-
"ur/adapters/level_zero/image.cpp"
94-
"ur/adapters/level_zero/image.hpp"
95-
"ur/adapters/level_zero/memory.hpp"
96-
"ur/adapters/level_zero/kernel.hpp"
97-
"ur/adapters/level_zero/platform.hpp"
98-
"ur/adapters/level_zero/program.hpp"
99-
"ur/adapters/level_zero/queue.hpp"
100-
"ur/adapters/level_zero/sampler.hpp"
101-
"ur/adapters/level_zero/usm.hpp"
102-
"ur/adapters/level_zero/adapter.cpp"
103-
"ur/adapters/level_zero/command_buffer.cpp"
104-
"ur/adapters/level_zero/common.cpp"
105-
"ur/adapters/level_zero/context.cpp"
106-
"ur/adapters/level_zero/device.cpp"
107-
"ur/adapters/level_zero/event.cpp"
108-
"ur/adapters/level_zero/memory.cpp"
109-
"ur/adapters/level_zero/kernel.cpp"
110-
"ur/adapters/level_zero/platform.cpp"
111-
"ur/adapters/level_zero/program.cpp"
112-
"ur/adapters/level_zero/queue.cpp"
113-
"ur/adapters/level_zero/sampler.cpp"
114-
"ur/adapters/level_zero/usm.cpp"
115-
"ur/adapters/level_zero/usm_p2p.cpp"
116-
INCLUDE_DIRS
117-
${sycl_inc_dir}
118-
LIBRARIES
119-
UnifiedRuntime-Headers
120-
UnifiedRuntimeCommon
121-
UnifiedMallocFramework
122-
LevelZeroLoader-Headers
123-
LevelZeroLoader
124-
Threads::Threads
125-
)
126-
127-
set_target_properties("ur_adapter_level_zero" PROPERTIES
128-
VERSION "0.0.0"
129-
SOVERSION "0"
130-
)
81+
add_dependencies(sycl-runtime-libraries ur_adapter_level_zero)
13182

13283
if ("cuda" IN_LIST SYCL_ENABLE_PLUGINS)
13384
# Build CUDA adapter
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Level Zero adapter
2+
The source for the Level Zero adapter has been moved to the
3+
[adapters](https://github.com/oneapi-src/unified-runtime/tree/adapters) branch
4+
of the [Unified Runtime](https://github.com/oneapi-src/unified-runtime/) repo.
5+
Changes can be made by opening pull requests against that branch, and updating
6+
the Unified Runtime commit in the parent
7+
[CMakeLists.txt](../../../CMakeLists.txt).

sycl/plugins/unified_runtime/ur/adapters/level_zero/adapter.cpp

Lines changed: 0 additions & 206 deletions
This file was deleted.

0 commit comments

Comments
 (0)