Skip to content

Commit 63b9b07

Browse files
Added DPPLaligned_alloc_* functions to backend
1 parent eaf8574 commit 63b9b07

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

backends/include/dppl_sycl_usm_interface.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ DPPL_API
4242
__dppl_give DPPLSyclUSMRef
4343
DPPLmalloc_shared (size_t size, __dppl_keep const DPPLSyclQueueRef QRef);
4444

45+
/*!
46+
* @brief Crete USM shared memory.
47+
*
48+
* @return The pointer to USM shared memory with requested alignment.
49+
*/
50+
DPPL_API
51+
__dppl_give DPPLSyclUSMRef
52+
DPPLaligned_alloc_shared (size_t alignment, size_t size,
53+
__dppl_keep const DPPLSyclQueueRef QRef);
54+
4555
/*!
4656
* @brief Crete USM host memory.
4757
*
@@ -51,6 +61,16 @@ DPPL_API
5161
__dppl_give DPPLSyclUSMRef
5262
DPPLmalloc_host (size_t size, __dppl_keep const DPPLSyclQueueRef QRef);
5363

64+
/*!
65+
* @brief Crete USM host memory.
66+
*
67+
* @return The pointer to USM host memory with requested alignment.
68+
*/
69+
DPPL_API
70+
__dppl_give DPPLSyclUSMRef
71+
DPPLaligned_alloc_host (size_t alignment, size_t size,
72+
__dppl_keep const DPPLSyclQueueRef QRef);
73+
5474
/*!
5575
* @brief Crete USM device memory.
5676
*
@@ -60,6 +80,16 @@ DPPL_API
6080
__dppl_give DPPLSyclUSMRef
6181
DPPLmalloc_device (size_t size, __dppl_keep const DPPLSyclQueueRef QRef);
6282

83+
/*!
84+
* @brief Crete USM device memory.
85+
*
86+
* @return The pointer to USM device memory with requested alignment.
87+
*/
88+
DPPL_API
89+
__dppl_give DPPLSyclUSMRef
90+
DPPLaligned_alloc_device (size_t alignment, size_t size,
91+
__dppl_keep const DPPLSyclQueueRef QRef);
92+
6393
/*!
6494
* @brief Free USM memory.
6595
*

backends/source/dppl_sycl_usm_interface.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ DPPLmalloc_shared (size_t size, __dppl_keep const DPPLSyclQueueRef QRef)
4848
return wrap(Ptr);
4949
}
5050

51+
__dppl_give DPPLSyclUSMRef
52+
DPPLaligned_alloc_shared (size_t alignment, size_t size,
53+
__dppl_keep const DPPLSyclQueueRef QRef)
54+
{
55+
auto Q = unwrap(QRef);
56+
auto Ptr = aligned_alloc_shared(alignment, size, *Q);
57+
return wrap(Ptr);
58+
}
59+
5160
__dppl_give DPPLSyclUSMRef
5261
DPPLmalloc_host (size_t size, __dppl_keep const DPPLSyclQueueRef QRef)
5362
{
@@ -56,6 +65,15 @@ DPPLmalloc_host (size_t size, __dppl_keep const DPPLSyclQueueRef QRef)
5665
return wrap(Ptr);
5766
}
5867

68+
__dppl_give DPPLSyclUSMRef
69+
DPPLaligned_alloc_host (size_t alignment, size_t size,
70+
__dppl_keep const DPPLSyclQueueRef QRef)
71+
{
72+
auto Q = unwrap(QRef);
73+
auto Ptr = aligned_alloc_host(alignment, size, *Q);
74+
return wrap(Ptr);
75+
}
76+
5977
__dppl_give DPPLSyclUSMRef
6078
DPPLmalloc_device (size_t size, __dppl_keep const DPPLSyclQueueRef QRef)
6179
{
@@ -64,6 +82,15 @@ DPPLmalloc_device (size_t size, __dppl_keep const DPPLSyclQueueRef QRef)
6482
return wrap(Ptr);
6583
}
6684

85+
__dppl_give DPPLSyclUSMRef
86+
DPPLaligned_alloc_device (size_t alignment, size_t size,
87+
__dppl_keep const DPPLSyclQueueRef QRef)
88+
{
89+
auto Q = unwrap(QRef);
90+
auto Ptr = aligned_alloc_device(alignment, size, *Q);
91+
return wrap(Ptr);
92+
}
93+
6794
void DPPLfree_with_queue (__dppl_take DPPLSyclUSMRef MRef,
6895
__dppl_keep const DPPLSyclQueueRef QRef)
6996
{

dpctl/_backend.pxd

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,12 @@ cdef extern from "dppl_sycl_usm_interface.h":
203203
cdef DPPLSyclUSMRef DPPLmalloc_shared (size_t size, DPPLSyclQueueRef QRef)
204204
cdef DPPLSyclUSMRef DPPLmalloc_host (size_t size, DPPLSyclQueueRef QRef)
205205
cdef DPPLSyclUSMRef DPPLmalloc_device (size_t size, DPPLSyclQueueRef QRef)
206+
cdef DPPLSyclUSMRef DPPLaligned_alloc_shared (size_t alignment,
207+
size_t size, DPPLSyclQueueRef QRef)
208+
cdef DPPLSyclUSMRef DPPLaligned_alloc_host (size_t alignment,
209+
size_t size, DPPLSyclQueueRef QRef)
210+
cdef DPPLSyclUSMRef DPPLaligned_alloc_device (size_t alignment,
211+
size_t size, DPPLSyclQueueRef QRef)
206212
cdef void DPPLfree_with_queue (DPPLSyclUSMRef MRef,
207213
DPPLSyclQueueRef QRef)
208214
cdef void DPPLfree_with_context (DPPLSyclUSMRef MRef,

0 commit comments

Comments
 (0)