1616
1717int main () {
1818 queue Queue{};
19- const size_t N = 1024 ;
20- int *Ptr = (int *)sycl::malloc_device<int >(N, Queue);
21- std::vector<int > HostData (N, 0 );
22- buffer<int > BufA{sycl::range<1 >(N)};
23- buffer<int > BufB{sycl::range<1 >(N)};
19+ int *Ptr = (int *)sycl::malloc_device<int >(Size, Queue);
20+ buffer<int > BufA{sycl::range<1 >(Size)};
21+ buffer<int > BufB{sycl::range<1 >(Size)};
2422 BufA.set_write_back (false );
2523 BufB.set_write_back (false );
2624
@@ -34,7 +32,7 @@ int main() {
3432 auto RootNode = Graph.add ([&](handler &CGH) {
3533 auto AccA = BufA.get_access <access::mode::write>(CGH);
3634 auto AccB = BufB.get_access <access::mode::write>(CGH);
37- CGH.parallel_for (N , [=](item<1 > Item) {
35+ CGH.parallel_for (Size , [=](item<1 > Item) {
3836 AccA[Item.get_id ()] = InitA;
3937 AccB[Item.get_id ()] = InitB;
4038 });
@@ -43,13 +41,15 @@ int main() {
4341 int PatternA = 42 ;
4442 auto CGFA = [&](handler &CGH) {
4543 auto AccA = BufA.get_access <access::mode::read_write>(CGH);
46- CGH.parallel_for (N, [=](item<1 > Item) { AccA[Item.get_id ()] += PatternA; });
44+ CGH.parallel_for (Size,
45+ [=](item<1 > Item) { AccA[Item.get_id ()] += PatternA; });
4746 };
4847
4948 int PatternB = 0xA ;
5049 auto CGFB = [&](handler &CGH) {
5150 auto AccB = BufB.get_access <access::mode::read_write>(CGH);
52- CGH.parallel_for (N, [=](item<1 > Item) { AccB[Item.get_id ()] += PatternB; });
51+ CGH.parallel_for (Size,
52+ [=](item<1 > Item) { AccB[Item.get_id ()] += PatternB; });
5353 };
5454
5555 auto DynamicCG = exp_ext::dynamic_command_group (Graph, {CGFA, CGFB});
@@ -58,25 +58,28 @@ int main() {
5858 auto LeafNode = Graph.add ([&](handler &CGH) {
5959 auto AccA = BufA.get_access <access::mode::read>(CGH);
6060 auto AccB = BufB.get_access <access::mode::read>(CGH);
61- CGH.parallel_for (N , [=](item<1 > Item) {
61+ CGH.parallel_for (Size , [=](item<1 > Item) {
6262 Ptr[Item.get_id ()] = AccA[Item.get_id ()] + AccB[Item.get_id ()];
6363 });
6464 });
6565 auto ExecGraph = Graph.finalize (exp_ext::property::graph::updatable{});
6666
6767 Queue.ext_oneapi_graph (ExecGraph).wait ();
68- Queue.copy (Ptr, HostData.data (), N).wait ();
69- for (size_t i = 0 ; i < N; i++) {
68+
69+ std::vector<int > HostData (Size, 0 );
70+ Queue.copy (Ptr, HostData.data (), Size).wait ();
71+ for (size_t i = 0 ; i < Size; i++) {
7072 assert (HostData[i] == (InitA + InitB + PatternA));
7173 }
7274
7375 DynamicCG.set_active_cgf (1 );
7476 ExecGraph.update (DynamicCGNode);
7577
7678 Queue.ext_oneapi_graph (ExecGraph).wait ();
77- Queue.copy (Ptr, HostData.data (), N).wait ();
78- for (size_t i = 0 ; i < N; i++) {
79- assert (HostData[i] == (InitA + InitB + PatternB));
79+ Queue.copy (Ptr, HostData.data (), Size).wait ();
80+ int Ref = InitA + InitB + PatternB;
81+ for (size_t i = 0 ; i < Size; i++) {
82+ assert (HostData[i] == Ref);
8083 }
8184
8285 sycl::free (Ptr, Queue);
0 commit comments