Skip to content

Commit 242eb3a

Browse files
added DPPLUSM_GetPointerDevice
1 parent 5a2bcf4 commit 242eb3a

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

backends/include/dppl_sycl_usm_interface.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,13 @@ const char *
116116
DPPLUSM_GetPointerType (__dppl_keep const DPPLSyclUSMRef MRef,
117117
__dppl_keep const DPPLSyclContextRef CRef);
118118

119+
/*!
120+
* @brief Get the device associated with USM pointer.
121+
*
122+
* @return A DPPLSyclDeviceRef pointer to the sycl device.
123+
*/
124+
DPPL_API
125+
DPPLSyclDeviceRef
126+
DPPLUSM_GetPointerDevice (__dppl_keep const DPPLSyclUSMRef MRef,
127+
__dppl_keep const DPPLSyclContextRef CRef);
119128
DPPL_C_EXTERN_C_END

backends/source/dppl_sycl_usm_interface.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
//===----------------------------------------------------------------------===//
2626

2727
#include "dppl_sycl_usm_interface.h"
28+
#include "dppl_sycl_device_interface.h"
2829
#include "Support/CBindingWrapping.h"
2930

3031
#include <CL/sycl.hpp> /* SYCL headers */
@@ -35,6 +36,7 @@ namespace
3536
{
3637
// Create wrappers for C Binding types (see CBindingWrapping.h).
3738
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(queue, DPPLSyclQueueRef)
39+
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(device, DPPLSyclDeviceRef)
3840
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(context, DPPLSyclContextRef)
3941
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(void, DPPLSyclUSMRef)
4042

@@ -126,3 +128,15 @@ DPPLUSM_GetPointerType (__dppl_keep const DPPLSyclUSMRef MRef,
126128
return "unknown";
127129
}
128130
}
131+
132+
DPPLSyclDeviceRef
133+
DPPLUSM_GetPointerDevice(__dppl_keep const DPPLSyclUSMRef MRef,
134+
__dppl_keep const DPPLSyclContextRef CRef)
135+
{
136+
auto Ptr = unwrap(MRef);
137+
auto C = unwrap(CRef);
138+
139+
auto Dev = get_pointer_device(Ptr, *C);
140+
141+
return wrap(new device(Dev));
142+
}

dpctl/_backend.pxd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,3 +219,5 @@ cdef extern from "dppl_sycl_usm_interface.h":
219219
DPPLSyclContextRef CRef)
220220
cdef const char* DPPLUSM_GetPointerType (DPPLSyclUSMRef MRef,
221221
DPPLSyclContextRef CRef)
222+
cdef DPPLSyclDeviceRef DPPLUSM_GetPointerDevice (DPPLSyclUSMRef MRef,
223+
DPPLSyclContextRef CRef)

0 commit comments

Comments
 (0)