Skip to content

Commit 60ffdc3

Browse files
authored
[UR][L0] fix external semaphore with updated headers and report device info support (#17286)
Signed-off-by: Neil R. Spruit <[email protected]>
1 parent 2d610d1 commit 60ffdc3

File tree

7 files changed

+7
-82
lines changed

7 files changed

+7
-82
lines changed

unified-runtime/cmake/FetchLevelZero.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ if (UR_COMPUTE_RUNTIME_REPO STREQUAL "")
102102
set(UR_COMPUTE_RUNTIME_REPO "https://github.com/intel/compute-runtime.git")
103103
endif()
104104
if (UR_COMPUTE_RUNTIME_TAG STREQUAL "")
105-
set(UR_COMPUTE_RUNTIME_TAG 24.39.31294.12)
105+
set(UR_COMPUTE_RUNTIME_TAG 25.05.32567.17)
106106
endif()
107107
include(FetchContent)
108108
# Sparse fetch only the dir with level zero headers for experimental features to avoid pulling in the entire compute-runtime.

unified-runtime/source/adapters/level_zero/common.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include "common.hpp"
1212
#include "logger/ur_logger.hpp"
1313
#include "usm.hpp"
14-
#include <level_zero/include/ze_intel_gpu.h>
1514

1615
ur_result_t ze2urResult(ze_result_t ZeResult) {
1716
if (ZeResult == ZE_RESULT_SUCCESS)

unified-runtime/source/adapters/level_zero/common.hpp

Lines changed: 1 addition & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <ze_api.h>
2424
#include <zes_api.h>
2525

26+
#include <level_zero/include/level_zero/ze_intel_gpu.h>
2627
#include <umf_pools/disjoint_pool_config_parser.hpp>
2728

2829
#include "logger/ur_logger.hpp"
@@ -537,76 +538,3 @@ extern thread_local int32_t ErrorAdapterNativeCode;
537538
int32_t AdapterErrorCode);
538539

539540
#define L0_DRIVER_INORDER_MIN_VERSION 29534
540-
541-
// Definitions for the External Semaphore Extension
542-
543-
#ifndef ZE_INTEL_EXTERNAL_SEMAPHORE_EXP_NAME
544-
/// @brief Event sync mode extension name
545-
#define ZE_INTEL_EXTERNAL_SEMAPHORE_EXP_NAME \
546-
"ZE_intel_experimental_external_semaphore"
547-
#endif // ZE_INTEL_EXTERNAL_SEMAPHORE_EXP_NAME
548-
549-
typedef enum _ze_intel_external_semaphore_exp_version_t {
550-
ZE_EXTERNAL_SEMAPHORE_EXP_VERSION_1_0 =
551-
ZE_MAKE_VERSION(1, 0), ///< version 1.0
552-
ZE_EXTERNAL_SEMAPHORE_EXP_VERSION_CURRENT =
553-
ZE_MAKE_VERSION(1, 0), ///< latest known version
554-
ZE_EXTERNAL_SEMAPHORE_EXP_VERSION_FORCE_UINT32 = 0x7fffffff
555-
} ze_intel_external_semaphore_exp_version_t;
556-
typedef enum _ze_intel_external_semaphore_exp_flags_t {
557-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD,
558-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32,
559-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32_KMT,
560-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D12_FENCE,
561-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D11_FENCE,
562-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_KEYED_MUTEX,
563-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_KEYED_MUTEX_KMT,
564-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_FD,
565-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_WIN32
566-
} ze_intel_external_semaphore_exp_flags_t;
567-
568-
typedef struct _ze_intel_external_semaphore_exp_desc_t {
569-
ze_structure_type_t stype;
570-
const void *pNext;
571-
ze_intel_external_semaphore_exp_flags_t flags;
572-
} ze_intel_external_semaphore_exp_desc_t;
573-
574-
typedef struct _ze_intel_external_semaphore_win32_exp_desc_t {
575-
ze_structure_type_t stype;
576-
const void *pNext;
577-
void *handle;
578-
const char *name;
579-
} ze_intel_external_semaphore_win32_exp_desc_t;
580-
581-
typedef struct _ze_intel_external_semaphore_fd_exp_desc_t {
582-
ze_structure_type_t stype;
583-
const void *pNext;
584-
int fd;
585-
} ze_intel_external_semaphore_desc_fd_exp_desc_t;
586-
587-
typedef struct _ze_intel_external_semaphore_signal_exp_params_t {
588-
ze_structure_type_t stype;
589-
const void *pNext;
590-
uint64_t value;
591-
} ze_intel_external_semaphore_signal_exp_params_t;
592-
593-
typedef struct _ze_intel_external_semaphore_wait_exp_params_t {
594-
ze_structure_type_t stype;
595-
const void *pNext;
596-
597-
uint64_t value;
598-
} ze_intel_external_semaphore_wait_exp_params_t;
599-
600-
typedef struct _ze_intel_external_semaphore_exp_handle_t
601-
*ze_intel_external_semaphore_exp_handle_t;
602-
603-
#define ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_EXP_DESC \
604-
(ze_structure_type_t)0x0003001E
605-
#define ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC \
606-
(ze_structure_type_t)0x0003001F
607-
#define ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXP_DESC \
608-
(ze_structure_type_t)0x00030023
609-
#define ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXP \
610-
(ze_structure_type_t)0x00030024
611-
#define ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXP \
612-
(ze_structure_type_t)0x00030025

unified-runtime/source/adapters/level_zero/device.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,8 +1127,7 @@ ur_result_t urDeviceGetInfo(
11271127
return ReturnValue(false);
11281128
}
11291129
case UR_DEVICE_INFO_EXTERNAL_SEMAPHORE_IMPORT_SUPPORT_EXP: {
1130-
// L0 does not support importing external semaphores.
1131-
return ReturnValue(false);
1130+
return ReturnValue(Device->Platform->ZeExternalSemaphoreExt.Supported);
11321131
}
11331132
case UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP: {
11341133
// L0 does not support cubemaps.

unified-runtime/source/adapters/level_zero/device.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
#include "adapters/level_zero/platform.hpp"
2222
#include "common.hpp"
23-
#include <level_zero/include/ze_intel_gpu.h>
2423
#include <ur/ur.hpp>
2524
#include <ur_ddi.h>
2625
#include <ze_api.h>

unified-runtime/source/adapters/level_zero/image.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -888,7 +888,7 @@ ur_result_t urBindlessImagesWaitExternalSemaphoreExp(
888888
const auto &ZeCommandList = CommandList->first;
889889
const auto &WaitList = (*Event)->WaitList;
890890

891-
ze_intel_external_semaphore_wait_exp_params_t WaitParams = {
891+
ze_intel_external_semaphore_wait_params_exp_t WaitParams = {
892892
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXP, nullptr, 0};
893893
WaitParams.value = hasValue ? waitValue : 0;
894894
const ze_intel_external_semaphore_exp_handle_t hExtSemaphore =
@@ -950,7 +950,7 @@ ur_result_t urBindlessImagesSignalExternalSemaphoreExp(
950950
const auto &ZeCommandList = CommandList->first;
951951
const auto &WaitList = (*Event)->WaitList;
952952

953-
ze_intel_external_semaphore_signal_exp_params_t SignalParams = {
953+
ze_intel_external_semaphore_signal_params_exp_t SignalParams = {
954954
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXP, nullptr, 0};
955955
SignalParams.value = hasValue ? signalValue : 0;
956956
const ze_intel_external_semaphore_exp_handle_t hExtSemaphore =

unified-runtime/source/adapters/level_zero/platform.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ struct ur_platform_handle_t_ : public _ur_platform {
132132
ze_result_t (*zexCommandListAppendWaitExternalSemaphoresExp)(
133133
ze_command_list_handle_t, unsigned int,
134134
const ze_intel_external_semaphore_exp_handle_t *,
135-
const ze_intel_external_semaphore_wait_exp_params_t *,
135+
const ze_intel_external_semaphore_wait_params_exp_t *,
136136
ze_event_handle_t, uint32_t, ze_event_handle_t *);
137137
ze_result_t (*zexCommandListAppendSignalExternalSemaphoresExp)(
138138
ze_command_list_handle_t, size_t,
139139
const ze_intel_external_semaphore_exp_handle_t *,
140-
const ze_intel_external_semaphore_signal_exp_params_t *,
140+
const ze_intel_external_semaphore_signal_params_exp_t *,
141141
ze_event_handle_t, uint32_t, ze_event_handle_t *);
142142
ze_result_t (*zexDeviceReleaseExternalSemaphoreExp)(
143143
ze_intel_external_semaphore_exp_handle_t);

0 commit comments

Comments
 (0)