Skip to content

Commit 1988ad8

Browse files
Improve coverage of dpctl_sycl_queue_interface
Test submit for 1D range, 2D range, and 3D range, and also specify dependent events.
1 parent 20fd9e0 commit 1988ad8

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

libsyclinterface/tests/test_sycl_queue_submit.cpp

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ void submit_kernel(DPCTLSyclQueueRef QRef,
5656
{
5757
T scalarVal = 3;
5858
constexpr size_t NARGS = 4;
59-
constexpr size_t RANGE_NDIMS = 1;
59+
constexpr size_t RANGE_NDIMS_1 = 1;
60+
constexpr size_t RANGE_NDIMS_2 = 2;
61+
constexpr size_t RANGE_NDIMS_3 = 3;
6062

6163
ASSERT_TRUE(DPCTLKernelBundle_HasKernel(KBRef, kernelName.c_str()));
6264
auto kernel = DPCTLKernelBundle_GetKernel(KBRef, kernelName.c_str());
@@ -75,13 +77,33 @@ void submit_kernel(DPCTLSyclQueueRef QRef,
7577
(void *)&scalarVal};
7678
DPCTLKernelArgType addKernelArgTypes[] = {DPCTL_VOID_PTR, DPCTL_VOID_PTR,
7779
DPCTL_VOID_PTR, kernelArgTy};
78-
auto ERef = DPCTLQueue_SubmitRange(kernel, QRef, args, addKernelArgTypes,
79-
NARGS, Range, RANGE_NDIMS, nullptr, 0);
80-
ASSERT_TRUE(ERef != nullptr);
81-
DPCTLQueue_Wait(QRef);
80+
auto E1Ref =
81+
DPCTLQueue_SubmitRange(kernel, QRef, args, addKernelArgTypes, NARGS,
82+
Range, RANGE_NDIMS_1, nullptr, 0);
83+
ASSERT_TRUE(E1Ref != nullptr);
84+
85+
// Create kernel args for vector_add
86+
size_t Range2D[] = {SIZE, 1};
87+
DPCTLSyclEventRef DepEvs[] = {E1Ref};
88+
auto E2Ref =
89+
DPCTLQueue_SubmitRange(kernel, QRef, args, addKernelArgTypes, NARGS,
90+
Range2D, RANGE_NDIMS_2, DepEvs, 1);
91+
ASSERT_TRUE(E2Ref != nullptr);
92+
93+
// Create kernel args for vector_add
94+
size_t Range3D[] = {SIZE, 1, 1};
95+
DPCTLSyclEventRef DepEvs2[] = {E1Ref, E2Ref};
96+
auto E3Ref =
97+
DPCTLQueue_SubmitRange(kernel, QRef, args, addKernelArgTypes, NARGS,
98+
Range3D, RANGE_NDIMS_3, DepEvs2, 2);
99+
ASSERT_TRUE(E3Ref != nullptr);
100+
101+
DPCTLEvent_Wait(E3Ref);
82102

83103
// clean ups
84-
DPCTLEvent_Delete(ERef);
104+
DPCTLEvent_Delete(E1Ref);
105+
DPCTLEvent_Delete(E2Ref);
106+
DPCTLEvent_Delete(E3Ref);
85107
DPCTLKernel_Delete(kernel);
86108
DPCTLfree_with_queue((DPCTLSyclUSMRef)a, QRef);
87109
DPCTLfree_with_queue((DPCTLSyclUSMRef)b, QRef);

0 commit comments

Comments
 (0)