|
11 | 11 | int main() {
|
12 | 12 | sycl::queue Q;
|
13 | 13 | int Data = 0;
|
14 |
| - { |
15 |
| - sycl::buffer<int, 1> Buf(&Data, sycl::range<1>(1)); |
16 |
| - auto KernelID = sycl::get_kernel_id<File1Kern1>(); |
17 |
| - auto KB = sycl::get_kernel_bundle<sycl::bundle_state::executable>( |
18 |
| - Q.get_context(), {KernelID}); |
19 |
| - auto Krn = KB.get_kernel(KernelID); |
20 | 14 |
|
21 |
| - assert(KB.has_kernel(KernelID)); |
22 |
| - // TODO uncomment once the KernelInfo in multiple translation units |
23 |
| - // bug is fixed. |
24 |
| - // assert(!Prg.has_kernel<File2Kern1>()); |
| 15 | + auto KernelID = sycl::get_kernel_id<File1Kern1>(); |
| 16 | + auto KB = sycl::get_kernel_bundle<sycl::bundle_state::executable>( |
| 17 | + Q.get_context(), {KernelID}); |
| 18 | + assert(KB.has_kernel(KernelID)); |
| 19 | + auto Krn1 = KB.get_kernel(KernelID); |
| 20 | + |
| 21 | + auto KernelID2 = sycl::get_kernel_id<File1Kern2>(); |
| 22 | + assert(KB.has_kernel(KernelID2)); |
| 23 | + auto Krn2 = KB.get_kernel(KernelID2); |
| 24 | + |
| 25 | + std::vector<sycl::kernel_id> KernelIDStorage = KB.get_kernel_ids(); |
| 26 | + assert(KernelIDStorage.size() == 2); |
| 27 | + assert(std::any_of( |
| 28 | + KernelIDStorage.begin(), KernelIDStorage.end(), |
| 29 | + [&KernelID](const sycl::kernel_id &id) { return id == KernelID; })); |
| 30 | + assert(std::any_of( |
| 31 | + KernelIDStorage.begin(), KernelIDStorage.end(), |
| 32 | + [&KernelID2](const sycl::kernel_id &id) { return id == KernelID2; })); |
25 | 33 |
|
| 34 | + { |
| 35 | + sycl::buffer<int, 1> Buf(&Data, sycl::range<1>(1)); |
26 | 36 | Q.submit([&](sycl::handler &Cgh) {
|
27 | 37 | auto Acc = Buf.get_access<sycl::access::mode::read_write>(Cgh);
|
28 |
| - Cgh.single_task<File1Kern1>(/*Krn,*/ [=]() { Acc[0] = 1; }); |
| 38 | + Cgh.single_task<File1Kern1>(Krn1, [=]() { Acc[0] = 1; }); |
29 | 39 | });
|
30 | 40 | }
|
31 | 41 | assert(Data == 1);
|
32 | 42 |
|
33 | 43 | {
|
34 | 44 | sycl::buffer<int, 1> Buf(&Data, sycl::range<1>(1));
|
35 |
| - auto KernelID1 = sycl::get_kernel_id<File1Kern1>(); |
36 |
| - auto KernelID2 = sycl::get_kernel_id<File1Kern2>(); |
37 |
| - auto KB = sycl::get_kernel_bundle<sycl::bundle_state::executable>( |
38 |
| - Q.get_context(), {KernelID1}); |
39 |
| - auto Krn = KB.get_kernel(KernelID2); |
40 |
| - |
41 |
| - assert(KB.has_kernel(KernelID1)); |
42 |
| - // TODO uncomment once the KernelInfo in multiple translation units |
43 |
| - // bug is fixed. |
44 |
| - // assert(!Prg.has_kernel<File2Kern1>()); |
45 |
| - |
46 | 45 | Q.submit([&](sycl::handler &Cgh) {
|
47 | 46 | auto Acc = Buf.get_access<sycl::access::mode::read_write>(Cgh);
|
48 |
| - Cgh.single_task<File1Kern2>(/*Krn,*/ [=]() { Acc[0] = 2; }); |
| 47 | + Cgh.single_task<File1Kern2>(Krn2, [=]() { Acc[0] = 2; }); |
49 | 48 | });
|
50 | 49 | }
|
51 | 50 | assert(Data == 2);
|
|
0 commit comments