From 58ccaa9781af27192bb4dcab6b71193f7b016f50 Mon Sep 17 00:00:00 2001 From: omarahmed1111 Date: Thu, 16 Jan 2025 00:46:40 +0000 Subject: [PATCH] Enable the registry of level_zero_v2 --- scripts/core/INTRO.rst | 4 ++++ source/loader/ur_adapter_registry.hpp | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/core/INTRO.rst b/scripts/core/INTRO.rst index f0458c538b..953c4593ba 100644 --- a/scripts/core/INTRO.rst +++ b/scripts/core/INTRO.rst @@ -404,6 +404,10 @@ Specific environment variables can be set to control the behavior of unified run This environment variable is default enabled on Linux, but default disabled on Windows. +.. envvar:: UR_ADAPTER_LEVEL_ZERO_V2 + + If set, UR will use level_zero_v2 instead of the default level_zero. + CTS Environment Variables ------------------------- diff --git a/source/loader/ur_adapter_registry.hpp b/source/loader/ur_adapter_registry.hpp index e59c71fb23..6ed20fe563 100644 --- a/source/loader/ur_adapter_registry.hpp +++ b/source/loader/ur_adapter_registry.hpp @@ -121,7 +121,7 @@ class AdapterRegistry { // to load the adapter. std::vector> adaptersLoadPaths; - static constexpr std::array knownAdapterNames{ + std::vector knownAdapterNames{ MAKE_LIBRARY_NAME("ur_adapter_level_zero", "0"), MAKE_LIBRARY_NAME("ur_adapter_opencl", "0"), MAKE_LIBRARY_NAME("ur_adapter_cuda", "0"), @@ -263,6 +263,15 @@ class AdapterRegistry { #else bool loaderPreFilter = getenv_tobool("UR_LOADER_PRELOAD_FILTER", true); #endif + + if (getenv_tobool("UR_ADAPTER_LEVEL_ZERO_V2")) { + knownAdapterNames.push_back( + MAKE_LIBRARY_NAME("ur_adapter_level_zero_v2", "0")); + } else { + knownAdapterNames.push_back( + MAKE_LIBRARY_NAME("ur_adapter_level_zero", "0")); + } + for (const auto &adapterName : knownAdapterNames) { if (loaderPreFilter) {