|
399 | 399 | "\n",
|
400 | 400 | "int main()\n",
|
401 | 401 | "{\n",
|
402 |
| - " // sycl queue with out of order execution allowed dpct::device_ext &dev_ct1 = dpct::get_current_device();\r\n", |
403 |
| - " sycl::queue &q_ct1 = dev_ct1out_ofn_order_queue();\r\n", |
404 |
| - " //# Print device name\r\n", |
405 |
| - " dpct::device_info dev;\r\n", |
406 |
| - " dpct::get_device_info(dev, dpct::dev_mgr::instance().get_device(0));\r\n", |
407 |
| - " std::cout << \"Device: \" << dev.get_name() << \"\\n\";;\n", |
| 402 | + " dpct::device_ext &dev_ct1 = dpct::get_current_device();\n", |
| 403 | + " sycl::queue &q_ct1 = dev_ct1.out_of_order_queue();\n", |
| 404 | + " //# Print device name\n", |
| 405 | + " dpct::device_info dev;\n", |
| 406 | + " dpct::get_device(0).get_device_info(dev);\n", |
| 407 | + " std::cout << \"Device: \" << dev.get_name() << \"\\n\";\n", |
408 | 408 | "\n",
|
409 | 409 | " //# Initialize vectors on host\n",
|
410 | 410 | " float A[N] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};\n",
|
|
418 | 418 | " d_C = sycl::malloc_device<float>(N, q_ct1);\n",
|
419 | 419 | "\n",
|
420 | 420 | " //# copy vector data from host to device\n",
|
421 |
| - " auto e1 = q_ct1.memcpy(d_A, A, N * sizeof(float));\n", |
422 |
| - " auto e2 = q_ct1.memcpy(d_B, B, N * sizeof(float));\n", |
| 421 | + " q_ct1.memcpy(d_A, A, N * sizeof(float));\n", |
| 422 | + " q_ct1.memcpy(d_B, B, N * sizeof(float));\n", |
| 423 | + " q_ct1.wait();\n", |
423 | 424 | "\n",
|
424 | 425 | " //# sumbit task to compute VectorAdd on device\n",
|
425 |
| - " auto e3 = q_ct1.parallel_for(\n", |
426 |
| - " sycl::nd_range<3>(sycl::range<3>(1, 1, N), sycl::range<3>(1, 1, N)), {e1, e2},\n", |
| 426 | + " q_ct1.parallel_for(\n", |
| 427 | + " sycl::nd_range<3>(sycl::range<3>(1, 1, N), sycl::range<3>(1, 1, N)),\n", |
427 | 428 | " [=](sycl::nd_item<3> item_ct1) {\n",
|
428 | 429 | " VectorAddKernel(d_A, d_B, d_C, item_ct1);\n",
|
429 |
| - " });\n", |
| 430 | + " }).wait();\n", |
430 | 431 | "\n",
|
431 | 432 | " //# copy result of vector data from device to host\n",
|
432 |
| - " q_ct1.memcpy(C, d_C, N * sizeof(float), e3).wait();\n", |
| 433 | + " q_ct1.memcpy(C, d_C, N * sizeof(float)).wait();\n", |
433 | 434 | "\n",
|
434 | 435 | " //# print result on host\n",
|
435 | 436 | " for (int i = 0; i < N; i++) std::cout<< C[i] << \" \";\n",
|
436 | 437 | " std::cout << \"\\n\";\n",
|
437 | 438 | "\n",
|
438 | 439 | " //# free allocation on device\n",
|
439 |
| - " sycl::free(d_A, q_ct1);\n", |
440 |
| - " sycl::free(d_B, q_ct1);\n", |
441 |
| - " sycl::free(d_C, q_ct1);\n", |
| 440 | + " dpct::dpct_free(d_A, q_ct1);\n", |
| 441 | + " dpct::dpct_free(d_B, q_ct1);\n", |
| 442 | + " dpct::dpct_free(d_C, q_ct1);\n", |
442 | 443 | " return 0;\n",
|
443 | 444 | "}\n",
|
444 | 445 | "```"
|
|
0 commit comments