3
3
4
4
#include < sycl/detail/core.hpp>
5
5
#include < sycl/detail/info_desc_helpers.hpp>
6
+ #include < sycl/kernel.hpp>
6
7
#include < sycl/kernel_bundle.hpp>
7
8
#include < sycl/sycl.hpp>
8
- #include < sycl/kernel.hpp>
9
9
10
10
#include < cassert>
11
11
#include < cstdint>
@@ -34,23 +34,24 @@ class TestKernel {
34
34
private:
35
35
sycl_global_accessor<value_type, 1 > acc_;
36
36
};
37
- }
37
+ } // namespace kernels
38
38
39
- template <int Dimensions>
40
- void check_max_work_item_sizes (const sycl::queue& Q)
41
- {
39
+ template <int Dimensions> void check_max_work_item_sizes (const sycl::queue &Q) {
42
40
const auto Dev = Q.get_device ();
43
41
const auto Ctx = Q.get_context ();
44
- const auto Bundle = sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx);
42
+ const auto Bundle =
43
+ sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx);
45
44
const auto Kernel = Bundle.template get_kernel <kernels::TestKernel>();
46
45
// get value to test
47
- const auto DevValues = Dev.get_info <sycl::info::device::max_work_item_sizes<Dimensions>>();
48
- const auto KernelValues = Kernel.ext_oneapi_get_info <syclex::info::kernel_queue_specific::max_work_item_sizes<Dimensions>>(Q);
49
-
50
- static_assert (std::is_same_v<std::remove_cv_t <decltype (KernelValues)>, sycl::id<Dimensions>>,
51
- " max_work_item_sizes query must return sycl::id<Dimensions>, Dimensions in range[1,3]" );
52
- for (int i = 0 ; i < Dimensions; i++)
53
- {
46
+ const auto DevValues =
47
+ Dev.get_info <sycl::info::device::max_work_item_sizes<Dimensions>>();
48
+ const auto KernelValues = Kernel.ext_oneapi_get_info <
49
+ syclex::info::kernel_queue_specific::max_work_item_sizes<Dimensions>>(Q);
50
+ static_assert (std::is_same_v<std::remove_cv_t <decltype (KernelValues)>,
51
+ sycl::id<Dimensions>>,
52
+ " max_work_item_sizes query must return sycl::id<Dimensions>, "
53
+ " Dimensions in range[1,3]" );
54
+ for (int i = 0 ; i < Dimensions; i++) {
54
55
assert (KernelValues[i] == DevValues[i]);
55
56
}
56
57
}
@@ -64,15 +65,16 @@ int main() {
64
65
65
66
const auto Dev = Q.get_device ();
66
67
const auto Ctx = Q.get_context ();
67
- const auto Bundle = sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx);
68
+ const auto Bundle =
69
+ sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx);
68
70
const auto Kernel = Bundle.template get_kernel <kernels::TestKernel>();
69
- const size_t MaxWorkGroupSizeActual =
70
- Kernel. template get_info < sycl::info::kernel_device_specific::work_group_size>(Dev);
71
+ const size_t MaxWorkGroupSizeActual = Kernel. template get_info <
72
+ sycl::info::kernel_device_specific::work_group_size>(Dev);
71
73
sycl::buffer<value_type, 1 > Buf{sycl::range<1 >{MaxWorkGroupSizeActual}};
72
74
auto LaunchRange = sycl::nd_range<1 >{sycl::range<1 >{MaxWorkGroupSizeActual},
73
- sycl::range<1 >{MaxWorkGroupSizeActual}};
75
+ sycl::range<1 >{MaxWorkGroupSizeActual}};
74
76
Q.submit ([&](sycl::handler &cgh) {
75
- auto Acc = Buf.get_access <sycl::access::mode::read_write>(cgh);
76
- cgh.parallel_for (LaunchRange, kernels::TestKernel{Acc});
77
+ auto Acc = Buf.get_access <sycl::access::mode::read_write>(cgh);
78
+ cgh.parallel_for (LaunchRange, kernels::TestKernel{Acc});
77
79
}).wait ();
78
80
}
0 commit comments