From 49a1fa041e16e2fbe0d38163a6f15927e0bdd64f Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Tue, 19 Sep 2023 00:09:24 +0200 Subject: [PATCH 1/3] [CMake] Enable UR plugin when building dependant plugins Previously, only level_zero was adding unified_runtime, but now cuda, hip, and native_cpu require it as well. --- sycl/plugins/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sycl/plugins/CMakeLists.txt b/sycl/plugins/CMakeLists.txt index 0ed738b3a8de4..ce0d0c8ec9fe5 100644 --- a/sycl/plugins/CMakeLists.txt +++ b/sycl/plugins/CMakeLists.txt @@ -6,8 +6,11 @@ foreach(plugin ${SYCL_ENABLE_PLUGINS}) add_subdirectory(${plugin}) endforeach() -# level_zero plugin depends today on unified_runtime plugin +# level_zero, cuda, hip, and native_cpu plugins depends today on unified_runtime plugin # and unified_runtime plugin is not an independent plugin, adding it explicitly -if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS) +if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS OR + "hip" IN_LIST SYCL_ENABLE_PLUGINS OR + "cuda" IN_LIST SYCL_ENABLE_PLUGINS OR + "native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) add_subdirectory(unified_runtime) endif() From 411cf09ead1e7b1ad89a2db8a9331cda35cf9f43 Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Tue, 19 Sep 2023 00:30:59 +0200 Subject: [PATCH 2/3] Remove false dependency of UR on L0 --- sycl/plugins/unified_runtime/CMakeLists.txt | 118 ++++++++++---------- 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/sycl/plugins/unified_runtime/CMakeLists.txt b/sycl/plugins/unified_runtime/CMakeLists.txt index 02a3e2f60693f..c27ecfba01393 100644 --- a/sycl/plugins/unified_runtime/CMakeLists.txt +++ b/sycl/plugins/unified_runtime/CMakeLists.txt @@ -73,61 +73,69 @@ add_sycl_plugin(unified_runtime Threads::Threads UnifiedRuntimeLoader UnifiedRuntime-Headers - LevelZeroLoader-Headers # we need for #include in common.h ) -# Build level zero adapter -add_sycl_library("ur_adapter_level_zero" SHARED - SOURCES - "ur/ur.hpp" - "ur/ur.cpp" - "ur/adapters/level_zero/ur_level_zero.hpp" - "ur/adapters/level_zero/ur_level_zero.cpp" - "ur/adapters/level_zero/ur_interface_loader.cpp" - "ur/adapters/level_zero/adapter.hpp" - "ur/adapters/level_zero/command_buffer.hpp" - "ur/adapters/level_zero/common.hpp" - "ur/adapters/level_zero/context.hpp" - "ur/adapters/level_zero/device.hpp" - "ur/adapters/level_zero/event.hpp" - "ur/adapters/level_zero/image.cpp" - "ur/adapters/level_zero/image.hpp" - "ur/adapters/level_zero/memory.hpp" - "ur/adapters/level_zero/kernel.hpp" - "ur/adapters/level_zero/platform.hpp" - "ur/adapters/level_zero/program.hpp" - "ur/adapters/level_zero/queue.hpp" - "ur/adapters/level_zero/sampler.hpp" - "ur/adapters/level_zero/usm.hpp" - "ur/adapters/level_zero/adapter.cpp" - "ur/adapters/level_zero/command_buffer.cpp" - "ur/adapters/level_zero/common.cpp" - "ur/adapters/level_zero/context.cpp" - "ur/adapters/level_zero/device.cpp" - "ur/adapters/level_zero/event.cpp" - "ur/adapters/level_zero/memory.cpp" - "ur/adapters/level_zero/kernel.cpp" - "ur/adapters/level_zero/platform.cpp" - "ur/adapters/level_zero/program.cpp" - "ur/adapters/level_zero/queue.cpp" - "ur/adapters/level_zero/sampler.cpp" - "ur/adapters/level_zero/usm.cpp" - "ur/adapters/level_zero/usm_p2p.cpp" - INCLUDE_DIRS - ${sycl_inc_dir} - LIBRARIES - UnifiedRuntime-Headers - UnifiedRuntimeCommon - UnifiedMallocFramework - LevelZeroLoader-Headers - LevelZeroLoader - Threads::Threads -) +if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS) + # Build level zero adapter + add_sycl_library("ur_adapter_level_zero" SHARED + SOURCES + "ur/ur.hpp" + "ur/ur.cpp" + "ur/adapters/level_zero/ur_level_zero.hpp" + "ur/adapters/level_zero/ur_level_zero.cpp" + "ur/adapters/level_zero/ur_interface_loader.cpp" + "ur/adapters/level_zero/adapter.hpp" + "ur/adapters/level_zero/command_buffer.hpp" + "ur/adapters/level_zero/common.hpp" + "ur/adapters/level_zero/context.hpp" + "ur/adapters/level_zero/device.hpp" + "ur/adapters/level_zero/event.hpp" + "ur/adapters/level_zero/image.cpp" + "ur/adapters/level_zero/image.hpp" + "ur/adapters/level_zero/memory.hpp" + "ur/adapters/level_zero/kernel.hpp" + "ur/adapters/level_zero/platform.hpp" + "ur/adapters/level_zero/program.hpp" + "ur/adapters/level_zero/queue.hpp" + "ur/adapters/level_zero/sampler.hpp" + "ur/adapters/level_zero/usm.hpp" + "ur/adapters/level_zero/adapter.cpp" + "ur/adapters/level_zero/command_buffer.cpp" + "ur/adapters/level_zero/common.cpp" + "ur/adapters/level_zero/context.cpp" + "ur/adapters/level_zero/device.cpp" + "ur/adapters/level_zero/event.cpp" + "ur/adapters/level_zero/memory.cpp" + "ur/adapters/level_zero/kernel.cpp" + "ur/adapters/level_zero/platform.cpp" + "ur/adapters/level_zero/program.cpp" + "ur/adapters/level_zero/queue.cpp" + "ur/adapters/level_zero/sampler.cpp" + "ur/adapters/level_zero/usm.cpp" + "ur/adapters/level_zero/usm_p2p.cpp" + INCLUDE_DIRS + ${sycl_inc_dir} + LIBRARIES + UnifiedRuntime-Headers + UnifiedRuntimeCommon + UnifiedMallocFramework + LevelZeroLoader-Headers + LevelZeroLoader + Threads::Threads + ) -set_target_properties("ur_adapter_level_zero" PROPERTIES - VERSION "0.0.0" - SOVERSION "0" -) + set_target_properties("ur_adapter_level_zero" PROPERTIES + VERSION "0.0.0" + SOVERSION "0" + ) + + # Install the UR adapters too + install(TARGETS ur_adapter_level_zero + LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev + ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev + RUNTIME DESTINATION "bin" COMPONENT level-zero-sycl-dev + ) +endif() if ("cuda" IN_LIST SYCL_ENABLE_PLUGINS) # Build CUDA adapter @@ -317,9 +325,3 @@ if (TARGET UnifiedRuntimeLoader) ) endif() -# Install the UR adapters too -install(TARGETS ur_adapter_level_zero - LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev - ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev - RUNTIME DESTINATION "bin" COMPONENT level-zero-sycl-dev -) From 0c888350a1cc169106fb177f01c074b24c9898e7 Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Wed, 27 Sep 2023 12:20:54 +0200 Subject: [PATCH 3/3] Avoid including the directory twice --- sycl/plugins/CMakeLists.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sycl/plugins/CMakeLists.txt b/sycl/plugins/CMakeLists.txt index ce0d0c8ec9fe5..dfcf954e2eed5 100644 --- a/sycl/plugins/CMakeLists.txt +++ b/sycl/plugins/CMakeLists.txt @@ -8,9 +8,11 @@ endforeach() # level_zero, cuda, hip, and native_cpu plugins depends today on unified_runtime plugin # and unified_runtime plugin is not an independent plugin, adding it explicitly -if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS OR - "hip" IN_LIST SYCL_ENABLE_PLUGINS OR - "cuda" IN_LIST SYCL_ENABLE_PLUGINS OR - "native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) - add_subdirectory(unified_runtime) +if (NOT "unified_runtime" IN_LIST SYCL_ENABLE_PLUGINS) + if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS OR + "hip" IN_LIST SYCL_ENABLE_PLUGINS OR + "cuda" IN_LIST SYCL_ENABLE_PLUGINS OR + "native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) + add_subdirectory(unified_runtime) + endif() endif()