From ad8010b7ac975bcd0520b9a0bd802d8e39eb647e Mon Sep 17 00:00:00 2001 From: Igor Chorazewicz Date: Mon, 18 Aug 2025 20:22:57 +0000 Subject: [PATCH 1/6] [SYCL][UR][L0 v2] use counter based provider for immediate queue It offers better performance (no need to create event pools) --- .../source/adapters/level_zero/v2/context.cpp | 11 +++-- .../adapters/level_zero/v2/event_provider.hpp | 5 +++ .../level_zero/v2/event_provider_counter.cpp | 43 ++++++++++++++----- .../level_zero/v2/event_provider_counter.hpp | 11 +++-- .../level_zero/v2/event_provider_normal.cpp | 3 +- .../level_zero/v2/event_provider_normal.hpp | 6 +-- 6 files changed, 54 insertions(+), 25 deletions(-) diff --git a/unified-runtime/source/adapters/level_zero/v2/context.cpp b/unified-runtime/source/adapters/level_zero/v2/context.cpp index 3d2a7758d6be4..acd84bf36015e 100644 --- a/unified-runtime/source/adapters/level_zero/v2/context.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/context.cpp @@ -80,11 +80,14 @@ ur_context_handle_t_::ur_context_handle_t_(ze_context_handle_t hContext, phDevices[0]->Platform->ZeMutableCmdListExt.Supported}), eventPoolCacheImmediate( this, phDevices[0]->Platform->getNumDevices(), - [context = this](DeviceId /* deviceId*/, v2::event_flags_t flags) - -> std::unique_ptr { + [context = this, platform = phDevices[0]->Platform]( + DeviceId deviceId, + v2::event_flags_t flags) -> std::unique_ptr { + auto device = platform->getDeviceById(deviceId); + // TODO: just use per-context id? - return std::make_unique( - context, v2::QUEUE_IMMEDIATE, flags); + return std::make_unique( + platform, context, v2::QUEUE_IMMEDIATE, device, flags); }), eventPoolCacheRegular(this, phDevices[0]->Platform->getNumDevices(), [context = this, platform = phDevices[0]->Platform]( diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider.hpp b/unified-runtime/source/adapters/level_zero/v2/event_provider.hpp index c6bedb8fc1cf8..2c7529d6cb288 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider.hpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider.hpp @@ -28,6 +28,11 @@ enum event_flag_t { }; static constexpr size_t EVENT_FLAGS_USED_BITS = 2; +enum queue_type { + QUEUE_REGULAR, + QUEUE_IMMEDIATE, +}; + class event_provider; namespace raii { diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp index 886fd53db4b4c..8a94a3131c12d 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp @@ -22,9 +22,14 @@ namespace v2 { provider_counter::provider_counter(ur_platform_handle_t platform, ur_context_handle_t context, - ur_device_handle_t device) { + queue_type queueType, + ur_device_handle_t device, + event_flags_t flags) + : queueType(queueType), flags(flags) { + assert(flags & EVENT_FLAGS_COUNTER); + ZE2UR_CALL_THROWS(zeDriverGetExtensionFunctionAddress, - (platform->ZeDriver, "zexCounterBasedEventCreate", + (platform->ZeDriver, "zexCounterBasedEventCreate2", (void **)&this->eventCreateFunc)); ZE2UR_CALL_THROWS(zelLoaderTranslateHandle, (ZEL_HANDLE_CONTEXT, context->getZeHandle(), @@ -34,17 +39,35 @@ provider_counter::provider_counter(ur_platform_handle_t platform, (ZEL_HANDLE_DEVICE, device->ZeDevice, (void **)&translatedDevice)); } +static zex_counter_based_event_exp_flags_t createZeFlags(queue_type queueType, + event_flags_t flags) { + zex_counter_based_event_exp_flags_t zeFlags = + ZEX_COUNTER_BASED_EVENT_FLAG_HOST_VISIBLE; + if (flags & EVENT_FLAGS_PROFILING_ENABLED) { + zeFlags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; + } + + if (queueType == QUEUE_IMMEDIATE) { + zeFlags |= ZEX_COUNTER_BASED_EVENT_FLAG_IMMEDIATE; + } else { + zeFlags |= ZEX_COUNTER_BASED_EVENT_FLAG_NON_IMMEDIATE; + } + + return zeFlags; +} + raii::cache_borrowed_event provider_counter::allocate() { if (freelist.empty()) { - ZeStruct desc; - desc.index = 0; - desc.signal = ZE_EVENT_SCOPE_FLAG_HOST; - desc.wait = 0; + zex_counter_based_event_desc_t desc = {}; + desc.stype = ZEX_STRUCTURE_COUNTER_BASED_EVENT_DESC; + desc.flags = createZeFlags(queueType, flags); + desc.signalScope = ZE_EVENT_SCOPE_FLAG_HOST; + ze_event_handle_t handle; // TODO: allocate host and device buffers to use here - ZE2UR_CALL_THROWS(eventCreateFunc, (translatedContext, translatedDevice, - nullptr, nullptr, 0, &desc, &handle)); + ZE2UR_CALL_THROWS(eventCreateFunc, + (translatedContext, translatedDevice, &desc, &handle)); freelist.emplace_back(handle); } @@ -57,8 +80,6 @@ raii::cache_borrowed_event provider_counter::allocate() { [this](ze_event_handle_t handle) { freelist.push_back(handle); }); } -event_flags_t provider_counter::eventFlags() const { - return EVENT_FLAGS_COUNTER; -} +event_flags_t provider_counter::eventFlags() const { return flags; } } // namespace v2 diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.hpp b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.hpp index bb46cb5daf42b..baa4d5875507a 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.hpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.hpp @@ -25,22 +25,27 @@ #include "../device.hpp" +#include +#include + namespace v2 { typedef ze_result_t (*zexCounterBasedEventCreate)( ze_context_handle_t hContext, ze_device_handle_t hDevice, - uint64_t *deviceAddress, uint64_t *hostAddress, uint64_t completionValue, - const ze_event_desc_t *desc, ze_event_handle_t *phEvent); + const zex_counter_based_event_desc_t *desc, ze_event_handle_t *phEvent); class provider_counter : public event_provider { public: provider_counter(ur_platform_handle_t platform, ur_context_handle_t, - ur_device_handle_t); + queue_type, ur_device_handle_t, event_flags_t); raii::cache_borrowed_event allocate() override; event_flags_t eventFlags() const override; private: + queue_type queueType; + event_flags_t flags; + ze_context_handle_t translatedContext; ze_device_handle_t translatedDevice; diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.cpp b/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.cpp index 6239f3f5f7412..06267059dc91b 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.cpp @@ -17,9 +17,8 @@ #include "event_provider.hpp" #include "event_provider_normal.hpp" -#include "../common/latency_tracker.hpp" - #include "../common.hpp" +#include "../common/latency_tracker.hpp" namespace v2 { static constexpr int EVENTS_BURST = 64; diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.hpp b/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.hpp index 811b32f2e23f8..df6946e7ac580 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.hpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider_normal.hpp @@ -21,17 +21,13 @@ #include "common.hpp" #include "event.hpp" +#include "event_provider.hpp" #include "../device.hpp" #include "../ur_interface_loader.hpp" namespace v2 { -enum queue_type { - QUEUE_REGULAR, - QUEUE_IMMEDIATE, -}; - class provider_pool { public: provider_pool(ur_context_handle_t, queue_type, event_flags_t flags); From 38bd4133e615e79291511bb5ac1204bdeacdb13b Mon Sep 17 00:00:00 2001 From: luszczewskakasia1 Date: Tue, 21 Oct 2025 10:31:54 +0200 Subject: [PATCH 2/6] Modify files to enable installing L0 from .sh file --- devops/scripts/install_drivers.sh | 143 ++++++++++++++++++--- unified-runtime/cmake/FetchLevelZero.cmake | 7 +- 2 files changed, 131 insertions(+), 19 deletions(-) diff --git a/devops/scripts/install_drivers.sh b/devops/scripts/install_drivers.sh index 5aef43582d219..50ac82aeed485 100755 --- a/devops/scripts/install_drivers.sh +++ b/devops/scripts/install_drivers.sh @@ -1,5 +1,4 @@ #!/bin/bash - set -e set -x set -o pipefail @@ -52,8 +51,62 @@ function get_pre_release_igfx() { if [ "$GITHUB_TOKEN" != "" ]; then HEADER="Authorization: Bearer $GITHUB_TOKEN" fi - curl -L -H "$HEADER" -H "Accept: application/vnd.github.v3+json" $URL -o $HASH.zip - unzip $HASH.zip && rm $HASH.zip + + WORK_DIR="/tmp/igc-download" + mkdir -p "$WORK_DIR" + cd "$WORK_DIR" + + curl -L -H "$HEADER" -H "Accept: application/vnd.github.v3+json" "$URL" -o "$HASH.zip" + + unzip "$HASH.zip" + rm "$HASH.zip" + + # Move deb files back to the calling directory if any exist + if ls *.deb 1> /dev/null 2>&1; then + mv *.deb /tmp/ + cd /tmp/ + fi + + # Clean up work directory + rm -rf "$WORK_DIR" +} + +function build_level_zero_from_source() { + COMMIT=$1 + + apt-get update -qq + apt-get install -y build-essential cmake git libc6-dev linux-libc-dev + + BUILD_DIR="/tmp/level-zero-build" + INSTALL_DIR="/tmp/level-zero-install" + rm -rf $BUILD_DIR $INSTALL_DIR + mkdir -p $BUILD_DIR $INSTALL_DIR + cd $BUILD_DIR + + git clone https://github.com/oneapi-src/level-zero.git + + cd level-zero + git checkout $COMMIT + + mkdir build + cd build + + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DLEVEL_ZERO_BUILD_TESTS=OFF \ + -DLEVEL_ZERO_BUILD_SAMPLES=OFF + + make -j$(nproc) + make install DESTDIR=$INSTALL_DIR + + cp -r $INSTALL_DIR/usr/local/* /usr/local/ + + ldconfig + + rm -rf $BUILD_DIR $INSTALL_DIR + + echo "Level Zero built and installed successfully from commit $COMMIT" } TBB_INSTALLED=false @@ -96,6 +149,15 @@ CheckIGCdevTag() { fi } +CheckIfCommitHash() { + local arg="$1" + if [[ $arg =~ ^[a-f0-9]{40}$ ]]; then + echo "Yes" + else + echo "No" + fi +} + InstallIGFX () { echo "Installing Intel Graphics driver..." echo "Compute Runtime version $CR_TAG" @@ -122,10 +184,28 @@ InstallIGFX () { | grep ".*deb" \ | grep -v "u18" \ | wget -qi - - get_release oneapi-src/level-zero $L0_TAG \ - | grep ".*$UBUNTU_VER.*deb$" \ - | wget -qi - - dpkg -i --force-all *.deb && rm *.deb *.sum + + # Check if L0_TAG is a commit hash or a regular tag + IS_L0_COMMIT=$(CheckIfCommitHash $L0_TAG) + if [ "$IS_L0_COMMIT" == "Yes" ]; then + echo "Level Zero is using commit hash, building from source..." + if ! build_level_zero_from_source $L0_TAG; then + exit 1 + fi + # Install other packages (Level Zero was already installed from source) + if ls *.deb 1> /dev/null 2>&1; then + dpkg -i --force-all *.deb && rm *.deb + fi + if ls *.sum 1> /dev/null 2>&1; then + rm *.sum + fi + else + get_release oneapi-src/level-zero $L0_TAG \ + | grep ".*$UBUNTU_VER.*deb$" \ + | wget -qi - + # Install all packages including Level Zero + dpkg -i --force-all *.deb && rm *.deb *.sum + fi mkdir -p /usr/local/lib/igc/ echo "$IGC_TAG" > /usr/local/lib/igc/IGCTAG.txt if [ "$IS_IGC_DEV" == "Yes" ]; then @@ -134,22 +214,50 @@ InstallIGFX () { # Backup and install it from release igc as a temporarily workaround # while we working to resolve the issue. echo "Backup libopencl-clang" - cp -d /usr/local/lib/libopencl-clang2.so.15* . - echo "Download IGC dev git hash $IGC_DEV_VER" + + # Ensure we're in a writable directory for backup operations + BACKUP_DIR="/tmp/igc-backup" + mkdir -p "$BACKUP_DIR" + cd "$BACKUP_DIR" + echo "Working in backup directory: $BACKUP_DIR" + + if ls /usr/local/lib/libopencl-clang2.so.15* 1> /dev/null 2>&1; then + cp -d /usr/local/lib/libopencl-clang2.so.15* . + LIBOPENCL_BACKED_UP=true + echo "Successfully backed up libopencl-clang files" + else + echo "Warning: libopencl-clang2.so.15* not found, skipping backup" + LIBOPENCL_BACKED_UP=false + fi get_pre_release_igfx $IGC_DEV_URL $IGC_DEV_VER echo "Install IGC dev git hash $IGC_DEV_VER" # New dev IGC packaged iga64 conflicting with iga64 from intel-igc-media # force overwrite to workaround it first. - dpkg -i --force-all *.deb - echo "Install libopencl-clang" - # Workaround only, will download deb and install with dpkg once fixed. - cp -d libopencl-clang2.so.15* /usr/local/lib/ - rm /usr/local/lib/libigc.so /usr/local/lib/libigc.so.1* && \ - ln -s /usr/local/lib/libigc.so.2 /usr/local/lib/libigc.so && \ - ln -s /usr/local/lib/libigc.so.2 /usr/local/lib/libigc.so.1 + if ls *.deb 1> /dev/null 2>&1; then + dpkg -i --force-all *.deb + fi + if [ "$LIBOPENCL_BACKED_UP" == "true" ]; then + echo "Install libopencl-clang" + # Workaround only, will download deb and install with dpkg once fixed. + echo "Copying backed up libopencl-clang files from $BACKUP_DIR" + cp -d "$BACKUP_DIR"/libopencl-clang2.so.15* /usr/local/lib/ + fi + if [ -f /usr/local/lib/libigc.so.2 ]; then + rm -f /usr/local/lib/libigc.so /usr/local/lib/libigc.so.1* && \ + ln -s /usr/local/lib/libigc.so.2 /usr/local/lib/libigc.so && \ + ln -s /usr/local/lib/libigc.so.2 /usr/local/lib/libigc.so.1 + fi echo "Clean up" - rm *.deb libopencl-clang2.so.15* + if ls *.deb 1> /dev/null 2>&1; then + rm *.deb + fi echo "$IGC_DEV_TAG" > /usr/local/lib/igc/IGCTAG.txt + + # Clean up backup directory (this also removes the backed up libopencl-clang files) + if [ -d "$BACKUP_DIR" ]; then + echo "Cleaning up backup directory: $BACKUP_DIR" + rm -rf "$BACKUP_DIR" + fi fi } @@ -169,6 +277,7 @@ InstallCPURT () { if [ -e $INSTALL_LOCATION/oclcpu/install.sh ]; then \ bash -x $INSTALL_LOCATION/oclcpu/install.sh else + mkdir -p /etc/OpenCL/vendors echo $INSTALL_LOCATION/oclcpu/x64/libintelocl.so > /etc/OpenCL/vendors/intel_oclcpu.icd fi } diff --git a/unified-runtime/cmake/FetchLevelZero.cmake b/unified-runtime/cmake/FetchLevelZero.cmake index 7997e99c6964f..81025ce057eb3 100644 --- a/unified-runtime/cmake/FetchLevelZero.cmake +++ b/unified-runtime/cmake/FetchLevelZero.cmake @@ -12,8 +12,11 @@ find_package(PkgConfig QUIET) # LevelZero doesn't install a CMake config target, just PkgConfig, # so try using that to find the install and if it's not available # just try to search for the path. -if(PkgConfig_FOUND) - pkg_check_modules(level-zero level-zero>=1.24.3) +string(LENGTH "${UR_LEVEL_ZERO_LOADER_TAG}" TAG_LENGTH) +string(REGEX MATCH "^[0-9a-fA-F]+$" IS_HEX "${UR_LEVEL_ZERO_LOADER_TAG}") + +if(PkgConfig_FOUND AND NOT (TAG_LENGTH EQUAL 40 AND IS_HEX)) + pkg_check_modules(level-zero level-zero>1.24.3) if(level-zero_FOUND) set(LEVEL_ZERO_INCLUDE_DIR "${level-zero_INCLUDEDIR}/level_zero") set(LEVEL_ZERO_LIBRARY_SRC "${level-zero_LIBDIR}") From 7e844795e240a0440b505051fb24ff6e9b7ebddc Mon Sep 17 00:00:00 2001 From: "Mateusz P. Nowak" Date: Mon, 27 Oct 2025 09:02:17 +0000 Subject: [PATCH 3/6] bump l0 version Signed-off-by: Mateusz P. Nowak --- devops/dependencies.json | 8 ++++---- unified-runtime/cmake/FetchLevelZero.cmake | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/devops/dependencies.json b/devops/dependencies.json index 47cf5c9335792..09d336b58f639 100644 --- a/devops/dependencies.json +++ b/devops/dependencies.json @@ -19,9 +19,9 @@ "root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu" }, "level_zero": { - "github_tag": "v1.24.3", - "version": "v1.24.3", - "url": "https://github.com/oneapi-src/level-zero/releases/tag/v1.24.3", + "github_tag": "v1.25.1", + "version": "v1.25.1", + "url": "https://github.com/oneapi-src/level-zero/releases/tag/v1.25.1", "root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu" }, "tbb": { @@ -56,4 +56,4 @@ "root": "{DEPS_ROOT}/opencl/runtime/linux/oclcpu" } } -} +} \ No newline at end of file diff --git a/unified-runtime/cmake/FetchLevelZero.cmake b/unified-runtime/cmake/FetchLevelZero.cmake index 476e3214e9bb8..5a2ffd93aeedc 100644 --- a/unified-runtime/cmake/FetchLevelZero.cmake +++ b/unified-runtime/cmake/FetchLevelZero.cmake @@ -45,12 +45,11 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat-extra-semi") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option") endif() - set(BUILD_STATIC ON) set(UR_LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git") # Remember to update the pkg_check_modules minimum version above when updating the # clone tag - set(UR_LEVEL_ZERO_LOADER_TAG v1.25.0) + set(UR_LEVEL_ZERO_LOADER_TAG v1.25.1) # Disable due to a bug https://github.com/oneapi-src/level-zero/issues/104 set(CMAKE_INCLUDE_CURRENT_DIR OFF) @@ -60,6 +59,11 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) set(CMAKE_MSVC_RUNTIME_LIBRARY_BAK "${CMAKE_MSVC_RUNTIME_LIBRARY}") # UMF has not yet been able to build as static set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") + + # Force building validation layer by setting BUILD_STATIC to OFF + # This must be set before FetchContent to override Level Zero's default + set(BUILD_STATIC OFF CACHE BOOL "Build Level Zero as dynamic library to enable validation layer" FORCE) + message(STATUS "Level Zero Adapter: Will fetch Level Zero Loader from ${UR_LEVEL_ZERO_LOADER_REPO}") include(FetchContent) FetchContent_Declare(level-zero-loader @@ -72,6 +76,13 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) FetchContent_MakeAvailable(level-zero-loader) FetchContent_GetProperties(level-zero-loader) + # Ensure validation layer is built as part of the default target + # This is needed for leak debugging with UR_L0_LEAKS_DEBUG=1 + if(TARGET ze_validation_layer) + add_dependencies(ze_loader ze_validation_layer) + message(STATUS "Level Zero validation layer will be built with loader") + endif() + # Restore original flags set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BAK}") set(CMAKE_MSVC_RUNTIME_LIBRARY "${CMAKE_MSVC_RUNTIME_LIBRARY_BAK}") From e5fb118c401d158da72250b7376d86510930da96 Mon Sep 17 00:00:00 2001 From: "Mateusz P. Nowak" Date: Mon, 17 Nov 2025 14:57:00 +0000 Subject: [PATCH 4/6] fix for profiling tests --- .../adapters/level_zero/v2/event_provider_counter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp index 8a94a3131c12d..1bf2a5b11dade 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_provider_counter.cpp @@ -44,7 +44,7 @@ static zex_counter_based_event_exp_flags_t createZeFlags(queue_type queueType, zex_counter_based_event_exp_flags_t zeFlags = ZEX_COUNTER_BASED_EVENT_FLAG_HOST_VISIBLE; if (flags & EVENT_FLAGS_PROFILING_ENABLED) { - zeFlags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; + zeFlags |= ZEX_COUNTER_BASED_EVENT_FLAG_KERNEL_TIMESTAMP; } if (queueType == QUEUE_IMMEDIATE) { @@ -63,6 +63,12 @@ raii::cache_borrowed_event provider_counter::allocate() { desc.flags = createZeFlags(queueType, flags); desc.signalScope = ZE_EVENT_SCOPE_FLAG_HOST; + uint32_t equivalentFlags = ZE_EVENT_POOL_FLAG_HOST_VISIBLE; + if (flags & EVENT_FLAGS_PROFILING_ENABLED) { + equivalentFlags |= ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; + } + UR_LOG(DEBUG, "ze_event_pool_desc_t flags set to: {}", equivalentFlags); + ze_event_handle_t handle; // TODO: allocate host and device buffers to use here From 11d09ae704534701d6befa03e58350298f72b107 Mon Sep 17 00:00:00 2001 From: "Mateusz P. Nowak" Date: Tue, 18 Nov 2025 10:29:33 +0000 Subject: [PATCH 5/6] fix for some CI compiler Signed-off-by: Mateusz P. Nowak --- .../test/adapters/level_zero/v2/event_pool_test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unified-runtime/test/adapters/level_zero/v2/event_pool_test.cpp b/unified-runtime/test/adapters/level_zero/v2/event_pool_test.cpp index 2de31b830895a..d23fd61727e92 100644 --- a/unified-runtime/test/adapters/level_zero/v2/event_pool_test.cpp +++ b/unified-runtime/test/adapters/level_zero/v2/event_pool_test.cpp @@ -136,8 +136,8 @@ struct EventPoolTest : public uur::urQueueTestWithParam { // the provider switch (params.provider) { case TEST_PROVIDER_COUNTER: - return std::make_unique(platform, context, - device); + return std::make_unique( + platform, context, params.queue, device, params.flags); case TEST_PROVIDER_NORMAL: return std::make_unique(context, params.queue, flags); From 827a4e36a6550ab8e0b79f353f23fb50d8538813 Mon Sep 17 00:00:00 2001 From: "Mateusz P. Nowak" Date: Tue, 18 Nov 2025 11:58:26 +0000 Subject: [PATCH 6/6] revert changes in cmake file Signed-off-by: Mateusz P. Nowak --- devops/dependencies.json | 3 ++- unified-runtime/cmake/FetchLevelZero.cmake | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/devops/dependencies.json b/devops/dependencies.json index 4861d68539cd7..a495fbe14ce6a 100644 --- a/devops/dependencies.json +++ b/devops/dependencies.json @@ -56,4 +56,5 @@ "root": "{DEPS_ROOT}/opencl/runtime/linux/oclcpu" } } -} \ No newline at end of file +} + diff --git a/unified-runtime/cmake/FetchLevelZero.cmake b/unified-runtime/cmake/FetchLevelZero.cmake index fd0763dd1ec73..198adeeb11d47 100644 --- a/unified-runtime/cmake/FetchLevelZero.cmake +++ b/unified-runtime/cmake/FetchLevelZero.cmake @@ -45,6 +45,7 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat-extra-semi") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option") endif() + set(BUILD_STATIC ON) set(UR_LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git") # Remember to update the pkg_check_modules minimum version above when updating the @@ -59,11 +60,6 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) set(CMAKE_MSVC_RUNTIME_LIBRARY_BAK "${CMAKE_MSVC_RUNTIME_LIBRARY}") # UMF has not yet been able to build as static set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") - - # Force building validation layer by setting BUILD_STATIC to OFF - # This must be set before FetchContent to override Level Zero's default - set(BUILD_STATIC OFF CACHE BOOL "Build Level Zero as dynamic library to enable validation layer" FORCE) - message(STATUS "Level Zero Adapter: Will fetch Level Zero Loader from ${UR_LEVEL_ZERO_LOADER_REPO}") include(FetchContent) FetchContent_Declare(level-zero-loader @@ -76,13 +72,6 @@ if(NOT LEVEL_ZERO_LIB_NAME AND NOT LEVEL_ZERO_LIBRARY) FetchContent_MakeAvailable(level-zero-loader) FetchContent_GetProperties(level-zero-loader) - # Ensure validation layer is built as part of the default target - # This is needed for leak debugging with UR_L0_LEAKS_DEBUG=1 - if(TARGET ze_validation_layer) - add_dependencies(ze_loader ze_validation_layer) - message(STATUS "Level Zero validation layer will be built with loader") - endif() - # Restore original flags set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BAK}") set(CMAKE_MSVC_RUNTIME_LIBRARY "${CMAKE_MSVC_RUNTIME_LIBRARY_BAK}")