@@ -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