Skip to content

Commit b107caa

Browse files
committed
[L0] Update UR to link the Loader as static
Signed-off-by: Neil R. Spruit <[email protected]>
1 parent 95e03b4 commit b107caa

File tree

4 files changed

+50
-28
lines changed

4 files changed

+50
-28
lines changed

cmake/FetchLevelZero.cmake

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,15 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
3737
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat-extra-semi")
3838
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option")
3939
endif()
40+
if(UR_STATIC_ADAPTER_L0)
41+
set(BUILD_STATIC ON)
42+
endif()
4043

4144
if (UR_LEVEL_ZERO_LOADER_REPO STREQUAL "")
42-
set(UR_LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git")
45+
set(UR_LEVEL_ZERO_LOADER_REPO "https://github.com/nrspruit/level-zero.git")
4346
endif()
4447
if (UR_LEVEL_ZERO_LOADER_TAG STREQUAL "")
45-
set(UR_LEVEL_ZERO_LOADER_TAG v1.19.2)
48+
set(UR_LEVEL_ZERO_LOADER_TAG 57295a21ab26f1e3b3ad5e7198a6d787fcb0e71c)
4649
endif()
4750

4851
# Disable due to a bug https://github.com/oneapi-src/level-zero/issues/104

source/adapters/level_zero/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ if(UR_BUILD_ADAPTER_L0)
5757

5858
# 'utils' target from 'level-zero-loader' includes path which is prefixed
5959
# in the source directory, this breaks the installation of 'utils' target.
60-
set_target_properties(utils PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "")
61-
install(TARGETS ur_umf LevelZeroLoader LevelZeroLoader-Headers ComputeRuntimeLevelZero-Headers ze_loader utils
60+
set_target_properties(level_zero_utils PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "")
61+
install(TARGETS ur_umf LevelZeroLoader LevelZeroLoader-Headers ComputeRuntimeLevelZero-Headers ze_loader level_zero_utils
6262
EXPORT ${PROJECT_NAME}-targets
6363
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
6464
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

source/adapters/level_zero/adapter.cpp

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,12 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
335335
// Dynamically load the new L0 apis separately.
336336
// This must be done to avoid attempting to use symbols that do
337337
// not exist in older loader runtimes.
338+
#ifndef UR_STATIC_ADAPTER_LEVEL_ZERO
338339
#ifdef _WIN32
339-
HMODULE processHandle = GetModuleHandle(NULL);
340+
GlobalAdapter->processHandle = GetModuleHandle(NULL);
340341
#else
341-
HMODULE processHandle = nullptr;
342+
GlobalAdapter->processHandle = nullptr;
343+
#endif
342344
#endif
343345

344346
// initialize level zero only once.
@@ -412,9 +414,13 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
412414
}
413415

414416
if (useInitDrivers) {
417+
#ifdef UR_STATIC_ADAPTER_LEVEL_ZERO
418+
GlobalAdapter->initDriversFunctionPtr = zeInitDrivers;
419+
#else
415420
GlobalAdapter->initDriversFunctionPtr =
416421
(ze_pfnInitDrivers_t)ur_loader::LibLoader::getFunctionPtr(
417-
processHandle, "zeInitDrivers");
422+
GlobalAdapter->processHandle, "zeInitDrivers");
423+
#endif
418424
if (GlobalAdapter->initDriversFunctionPtr) {
419425
logger::debug("\nzeInitDrivers with flags value of {}\n",
420426
static_cast<int>(GlobalAdapter->InitDriversDesc.flags));
@@ -455,14 +461,6 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
455461

456462
return;
457463
}
458-
// Dynamically load the new L0 SysMan separate init and new EXP apis
459-
// separately. This must be done to avoid attempting to use symbols that do
460-
// not exist in older loader runtimes.
461-
#ifdef _WIN32
462-
GlobalAdapter->processHandle = GetModuleHandle(NULL);
463-
#else
464-
GlobalAdapter->processHandle = nullptr;
465-
#endif
466464

467465
// Check if the user has enabled the default L0 SysMan initialization.
468466
const int UrSysmanZesinitEnable = [&UserForcedSysManInit] {
@@ -484,6 +482,11 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
484482
ZesInitNeeded = true;
485483
}
486484
if (ZesInitNeeded) {
485+
#ifdef UR_STATIC_ADAPTER_LEVEL_ZERO
486+
GlobalAdapter->getDeviceByUUIdFunctionPtr = zesDriverGetDeviceByUuidExp;
487+
GlobalAdapter->getSysManDriversFunctionPtr = zesDriverGet;
488+
GlobalAdapter->sysManInitFunctionPtr = zesInit;
489+
#else
487490
GlobalAdapter->getDeviceByUUIdFunctionPtr =
488491
(zes_pfnDriverGetDeviceByUuidExp_t)
489492
ur_loader::LibLoader::getFunctionPtr(
@@ -494,6 +497,7 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
494497
GlobalAdapter->sysManInitFunctionPtr =
495498
(zes_pfnInit_t)ur_loader::LibLoader::getFunctionPtr(
496499
GlobalAdapter->processHandle, "zesInit");
500+
#endif
497501
}
498502
if (GlobalAdapter->getDeviceByUUIdFunctionPtr &&
499503
GlobalAdapter->getSysManDriversFunctionPtr &&

source/adapters/level_zero/platform.cpp

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -345,52 +345,67 @@ ur_result_t ur_platform_handle_t_::initialize() {
345345
// Check if mutable command list extension is supported and initialize
346346
// function pointers.
347347
if (MutableCommandListSpecExtensionSupported) {
348+
#ifdef UR_STATIC_ADAPTER_LEVEL_ZERO
349+
ZeMutableCmdListExt.zexCommandListGetNextCommandIdExp =
350+
zeCommandListGetNextCommandIdExp;
351+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandsExp =
352+
zeCommandListUpdateMutableCommandsExp;
353+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandSignalEventExp =
354+
zeCommandListUpdateMutableCommandSignalEventExp;
355+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandWaitEventsExp =
356+
zeCommandListUpdateMutableCommandWaitEventsExp;
357+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandKernelsExp =
358+
zeCommandListUpdateMutableCommandKernelsExp;
359+
ZeMutableCmdListExt.zexCommandListGetNextCommandIdWithKernelsExp =
360+
zeCommandListGetNextCommandIdWithKernelsExp;
361+
#else
348362
ZeMutableCmdListExt.zexCommandListGetNextCommandIdExp =
349363
(ze_pfnCommandListGetNextCommandIdExp_t)
350364
ur_loader::LibLoader::getFunctionPtr(
351365
GlobalAdapter->processHandle,
352366
"zeCommandListGetNextCommandIdExp");
353-
ZeMutableCmdListExt.Supported |=
354-
ZeMutableCmdListExt.zexCommandListGetNextCommandIdExp != nullptr;
355367
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandsExp =
356368
(ze_pfnCommandListUpdateMutableCommandsExp_t)
357369
ur_loader::LibLoader::getFunctionPtr(
358370
GlobalAdapter->processHandle,
359371
"zeCommandListUpdateMutableCommandsExp");
360-
ZeMutableCmdListExt.Supported |=
361-
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandsExp != nullptr;
362372
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandSignalEventExp =
363373
(ze_pfnCommandListUpdateMutableCommandSignalEventExp_t)
364374
ur_loader::LibLoader::getFunctionPtr(
365375
GlobalAdapter->processHandle,
366376
"zeCommandListUpdateMutableCommandSignalEventExp");
367-
ZeMutableCmdListExt.Supported |=
368-
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandSignalEventExp !=
369-
nullptr;
370377
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandWaitEventsExp =
371378
(ze_pfnCommandListUpdateMutableCommandWaitEventsExp_t)
372379
ur_loader::LibLoader::getFunctionPtr(
373380
GlobalAdapter->processHandle,
374381
"zeCommandListUpdateMutableCommandWaitEventsExp");
375-
ZeMutableCmdListExt.Supported |=
376-
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandWaitEventsExp !=
377-
nullptr;
378382
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandKernelsExp =
379383
(ze_pfnCommandListUpdateMutableCommandKernelsExp_t)
380384
ur_loader::LibLoader::getFunctionPtr(
381385
GlobalAdapter->processHandle,
382386
"zeCommandListUpdateMutableCommandKernelsExp");
383-
ZeMutableCmdListExt.Supported |=
384-
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandKernelsExp !=
385-
nullptr;
386387
ZeMutableCmdListExt.zexCommandListGetNextCommandIdWithKernelsExp =
387388
(ze_pfnCommandListGetNextCommandIdWithKernelsExp_t)
388389
ur_loader::LibLoader::getFunctionPtr(
389390
GlobalAdapter->processHandle,
390391
"zeCommandListGetNextCommandIdWithKernelsExp");
392+
#endif
393+
ZeMutableCmdListExt.Supported |=
394+
ZeMutableCmdListExt.zexCommandListGetNextCommandIdExp != nullptr;
391395
ZeMutableCmdListExt.Supported |=
392396
ZeMutableCmdListExt.zexCommandListGetNextCommandIdWithKernelsExp !=
393397
nullptr;
398+
ZeMutableCmdListExt.Supported |=
399+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandKernelsExp !=
400+
nullptr;
401+
ZeMutableCmdListExt.Supported |=
402+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandWaitEventsExp !=
403+
nullptr;
404+
ZeMutableCmdListExt.Supported |=
405+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandSignalEventExp !=
406+
nullptr;
407+
ZeMutableCmdListExt.Supported |=
408+
ZeMutableCmdListExt.zexCommandListUpdateMutableCommandsExp != nullptr;
394409
ZeMutableCmdListExt.LoaderExtension = true;
395410
} else {
396411
ZeMutableCmdListExt.Supported |=

0 commit comments

Comments
 (0)