|
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