@@ -56,7 +56,9 @@ void submit_kernel(DPCTLSyclQueueRef QRef,
56
56
{
57
57
T scalarVal = 3 ;
58
58
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 ;
60
62
61
63
ASSERT_TRUE (DPCTLKernelBundle_HasKernel (KBRef, kernelName.c_str ()));
62
64
auto kernel = DPCTLKernelBundle_GetKernel (KBRef, kernelName.c_str ());
@@ -75,13 +77,33 @@ void submit_kernel(DPCTLSyclQueueRef QRef,
75
77
(void *)&scalarVal};
76
78
DPCTLKernelArgType addKernelArgTypes[] = {DPCTL_VOID_PTR, DPCTL_VOID_PTR,
77
79
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);
82
102
83
103
// clean ups
84
- DPCTLEvent_Delete (ERef);
104
+ DPCTLEvent_Delete (E1Ref);
105
+ DPCTLEvent_Delete (E2Ref);
106
+ DPCTLEvent_Delete (E3Ref);
85
107
DPCTLKernel_Delete (kernel);
86
108
DPCTLfree_with_queue ((DPCTLSyclUSMRef)a, QRef);
87
109
DPCTLfree_with_queue ((DPCTLSyclUSMRef)b, QRef);
0 commit comments