Skip to content

Commit e370466

Browse files
committed
[UR] Add Global Variable Pointer entrypoint
1 parent 7b9001e commit e370466

16 files changed

+94
-7
lines changed

sycl/include/sycl/detail/pi.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ _PI_API(piDeviceRetain)
3131
_PI_API(piDeviceRelease)
3232
_PI_API(piextDeviceSelectBinary)
3333
_PI_API(piextGetDeviceFunctionPointer)
34+
_PI_API(piextGetGlobalVariablePointer)
3435
_PI_API(piextDeviceGetNativeHandle)
3536
_PI_API(piextDeviceCreateWithNativeHandle)
3637
// Context

sycl/include/sycl/detail/pi.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,6 +1287,10 @@ __SYCL_EXPORT pi_result piextGetDeviceFunctionPointer(
12871287
pi_device device, pi_program program, const char *function_name,
12881288
pi_uint64 *function_pointer_ret);
12891289

1290+
__SYCL_EXPORT pi_result piextGetGlobalVariablePointer(
1291+
pi_device Device, pi_program Program, const char *GlobalVariableName,
1292+
size_t *GlobalVariableSize, void **GlobalVariablePointerRet);
1293+
12901294
//
12911295
// Context
12921296
//

sycl/plugins/cuda/pi_cuda.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,15 @@ pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program,
848848
FunctionPointerRet);
849849
}
850850

851+
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program,
852+
const char *GlobalVariableName,
853+
size_t *GlobalVariableSize,
854+
void **GlobalVariablePointerRet) {
855+
return pi2ur::piextGetGlobalVariablePointer(
856+
Device, Program, GlobalVariableName, GlobalVariableSize,
857+
GlobalVariablePointerRet);
858+
}
859+
851860
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
852861
pi_device Device,
853862
pi_usm_mem_properties *Properties, size_t Size,

sycl/plugins/hip/pi_hip.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,15 @@ pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program,
851851
FunctionPointerRet);
852852
}
853853

854+
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program,
855+
const char *GlobalVariableName,
856+
size_t *GlobalVariableSize,
857+
void **GlobalVariablePointerRet) {
858+
return pi2ur::piextGetGlobalVariablePointer(
859+
Device, Program, GlobalVariableName, GlobalVariableSize,
860+
GlobalVariablePointerRet);
861+
}
862+
854863
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
855864
pi_device Device,
856865
pi_usm_mem_properties *Properties, size_t Size,

sycl/plugins/level_zero/pi_level_zero.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,15 @@ pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program,
875875
FunctionPointerRet);
876876
}
877877

878+
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program,
879+
const char *GlobalVariableName,
880+
size_t *GlobalVariableSize,
881+
void **GlobalVariablePointerRet) {
882+
return pi2ur::piextGetGlobalVariablePointer(
883+
Device, Program, GlobalVariableName, GlobalVariableSize,
884+
GlobalVariablePointerRet);
885+
}
886+
878887
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
879888
pi_device Device,
880889
pi_usm_mem_properties *Properties, size_t Size,

sycl/plugins/native_cpu/pi_native_cpu.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,15 @@ pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program,
852852
FunctionPointerRet);
853853
}
854854

855+
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program,
856+
const char *GlobalVariableName,
857+
size_t *GlobalVariableSize,
858+
void **GlobalVariablePointerRet) {
859+
return pi2ur::piextGetGlobalVariablePointer(
860+
Device, Program, GlobalVariableName, GlobalVariableSize,
861+
GlobalVariablePointerRet);
862+
}
863+
855864
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
856865
pi_device Device,
857866
pi_usm_mem_properties *Properties, size_t Size,

sycl/plugins/opencl/pi_opencl.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,15 @@ pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program,
813813
FunctionPointerRet);
814814
}
815815

816+
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program,
817+
const char *GlobalVariableName,
818+
size_t *GlobalVariableSize,
819+
void **GlobalVariablePointerRet) {
820+
return pi2ur::piextGetGlobalVariablePointer(
821+
Device, Program, GlobalVariableName, GlobalVariableSize,
822+
GlobalVariablePointerRet);
823+
}
824+
816825
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
817826
pi_device Device,
818827
pi_usm_mem_properties *Properties, size_t Size,

sycl/plugins/unified_runtime/CMakeLists.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ endif()
5656
if(SYCL_PI_UR_USE_FETCH_CONTENT)
5757
include(FetchContent)
5858

59-
set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git")
60-
# commit e2ee9a4720414e0a59fa9c911e9575ab564ac57c
61-
# Merge: 7a5150cd be622e7c
59+
set(UNIFIED_RUNTIME_REPO "https://github.com/fabiomestre/unified-runtime.git")
60+
# commit 588615e90bfd2b889834120dfff172236c6b8aa8
61+
# Merge: 4e69cc60 47084751
6262
# Author: Kenneth Benzie (Benie) <[email protected]>
63-
# Date: Sun Mar 10 18:02:50 2024 +0000
64-
# Merge pull request #1340 from Bensuo/ewan/coverity_cuda_update
65-
# [HIP][CUDA][Command-Buffer] Fix Coverity issues in HIP/CUDA command-buffer code
66-
set(UNIFIED_RUNTIME_TAG e2ee9a4720414e0a59fa9c911e9575ab564ac57c)
63+
# Date: Thu Feb 22 16:10:13 2024 +0000
64+
# Merge pull request #1371 from pbalcer/l0-query-status-sync-deadlock
65+
# [L0] fix a deadlock in queue sync and event status query
66+
set(UNIFIED_RUNTIME_TAG 1bc658a97c53c093b63ee1950147813401c8fd21)
6767

6868
if(SYCL_PI_UR_OVERRIDE_FETCH_CONTENT_REPO)
6969
set(UNIFIED_RUNTIME_REPO "${SYCL_PI_UR_OVERRIDE_FETCH_CONTENT_REPO}")

sycl/plugins/unified_runtime/pi2ur.hpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2162,6 +2162,22 @@ inline pi_result piextGetDeviceFunctionPointer(pi_device Device,
21622162
return PI_SUCCESS;
21632163
}
21642164

2165+
inline pi_result piextGetGlobalVariablePointer(
2166+
pi_device Device, pi_program Program, const char *GlobalVariableName,
2167+
size_t *GlobalVariableSize, void **GlobalVariablePointerRet) {
2168+
PI_ASSERT(Program, PI_ERROR_INVALID_PROGRAM);
2169+
2170+
auto UrDevice = reinterpret_cast<ur_device_handle_t>(Device);
2171+
2172+
ur_program_handle_t UrProgram =
2173+
reinterpret_cast<ur_program_handle_t>(Program);
2174+
2175+
HANDLE_ERRORS(urProgramGetGlobalVariablePointer(
2176+
UrDevice, UrProgram, GlobalVariableName, GlobalVariableSize,
2177+
GlobalVariablePointerRet));
2178+
return PI_SUCCESS;
2179+
}
2180+
21652181
// Special version of piKernelSetArg to accept pi_mem.
21662182
inline pi_result
21672183
piextKernelSetArgMemObj(pi_kernel Kernel, pi_uint32 ArgIndex,

sycl/plugins/unified_runtime/pi_unified_runtime.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,15 @@ __SYCL_EXPORT pi_result piextGetDeviceFunctionPointer(
763763
FunctionPointerRet);
764764
}
765765

766+
__SYCL_EXPORT pi_result piextGetGlobalVariablePointer(
767+
pi_device Device, pi_program Program, const char *GlobalVariableName,
768+
size_t *GlobalVariableSize, void **GlobalVariablePointerRet) {
769+
770+
return pi2ur::piextGetGlobalVariablePointer(
771+
Device, Program, GlobalVariableName, GlobalVariableSize,
772+
GlobalVariablePointerRet);
773+
}
774+
766775
/// Hint to migrate memory to the device
767776
///
768777
/// @param Queue is the queue to submit to
@@ -1424,6 +1433,7 @@ __SYCL_EXPORT pi_result piPluginInit(pi_plugin *PluginInit) {
14241433
_PI_API(piProgramCompile)
14251434
_PI_API(piProgramGetBuildInfo)
14261435
_PI_API(piextGetDeviceFunctionPointer)
1436+
_PI_API(piextGetGlobalVariablePointer)
14271437

14281438
_PI_API(piMemBufferCreate)
14291439
_PI_API(piMemGetInfo)

sycl/test/abi/pi_cuda_symbol_check.dump

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ piextEnqueueWriteHostPipe
115115
piextEventCreateWithNativeHandle
116116
piextEventGetNativeHandle
117117
piextGetDeviceFunctionPointer
118+
piextGetGlobalVariablePointer
118119
piextImportExternalSemaphoreOpaqueFD
119120
piextKernelCreateWithNativeHandle
120121
piextKernelGetNativeHandle

sycl/test/abi/pi_hip_symbol_check.dump

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ piextEnqueueWriteHostPipe
115115
piextEventCreateWithNativeHandle
116116
piextEventGetNativeHandle
117117
piextGetDeviceFunctionPointer
118+
piextGetGlobalVariablePointer
118119
piextImportExternalSemaphoreOpaqueFD
119120
piextKernelCreateWithNativeHandle
120121
piextKernelGetNativeHandle

sycl/test/abi/pi_level_zero_symbol_check.dump

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ piextEnqueueWriteHostPipe
114114
piextEventCreateWithNativeHandle
115115
piextEventGetNativeHandle
116116
piextGetDeviceFunctionPointer
117+
piextGetGlobalVariablePointer
117118
piextImportExternalSemaphoreOpaqueFD
118119
piextKernelCreateWithNativeHandle
119120
piextKernelGetNativeHandle

sycl/test/abi/pi_nativecpu_symbol_check.dump

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ piextEnqueueWriteHostPipe
115115
piextEventCreateWithNativeHandle
116116
piextEventGetNativeHandle
117117
piextGetDeviceFunctionPointer
118+
piextGetGlobalVariablePointer
118119
piextImportExternalSemaphoreOpaqueFD
119120
piextKernelCreateWithNativeHandle
120121
piextKernelGetNativeHandle

sycl/test/abi/pi_opencl_symbol_check.dump

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ piextEnqueueWriteHostPipe
114114
piextEventCreateWithNativeHandle
115115
piextEventGetNativeHandle
116116
piextGetDeviceFunctionPointer
117+
piextGetGlobalVariablePointer
117118
piextImportExternalSemaphoreOpaqueFD
118119
piextKernelCreateWithNativeHandle
119120
piextKernelGetNativeHandle

sycl/unittests/helpers/PiMockPlugin.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,12 @@ mock_piextGetDeviceFunctionPointer(pi_device device, pi_program program,
280280
return PI_SUCCESS;
281281
}
282282

283+
inline pi_result mock_piextGetGlobalVariablePointer(
284+
pi_device device, pi_program program, const char *global_variable_name,
285+
size_t *global_variable_size, void **global_variable_size_ret) {
286+
return PI_SUCCESS;
287+
}
288+
283289
//
284290
// Context
285291
//

0 commit comments

Comments
 (0)