Skip to content

Commit dc90a4b

Browse files
committed
[SYCL] Fix bug in root_group.cpp
Signed-off-by: Hu, Peisen <[email protected]>
1 parent b158e52 commit dc90a4b

File tree

1 file changed

+17
-22
lines changed

1 file changed

+17
-22
lines changed

sycl/test-e2e/GroupAlgorithm/root_group.cpp

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ void testQueriesAndProperties() {
4242
.ext_oneapi_get_info<sycl::ext::oneapi::experimental::info::
4343
kernel_queue_specific::max_num_work_groups>(
4444
q, wgRange, wgRange.size() * sizeof(int));
45-
const auto props = sycl::ext::oneapi::experimental::properties{
46-
sycl::ext::oneapi::experimental::use_root_sync};
4745
struct TestKernel0 {
4846
void operator()() const {}
49-
auto get(sycl::ext::oneapi::experimental::properties_tag) { return props; }
47+
auto get(sycl::ext::oneapi::experimental::properties_tag) {
48+
return sycl::ext::oneapi::experimental::properties{
49+
sycl::ext::oneapi::experimental::use_root_sync};
50+
}
5051
};
5152
q.single_task<class QueryKernel>(TestKernel0{});
5253

@@ -69,14 +70,11 @@ void testRootGroup() {
6970
.ext_oneapi_get_info<sycl::ext::oneapi::experimental::info::
7071
kernel_queue_specific::max_num_work_groups>(
7172
q, WorkGroupSize, 0);
72-
const auto props = sycl::ext::oneapi::experimental::properties{
73-
sycl::ext::oneapi::experimental::use_root_sync};
7473
sycl::buffer<int> dataBuf{sycl::range{maxWGs * WorkGroupSize}};
7574
const auto range = sycl::nd_range<1>{maxWGs * WorkGroupSize, WorkGroupSize};
7675
struct TestKernel1 {
77-
sycl::accessor data;
78-
TestKernel1(sycl::accessor data_param) { data = data_param; }
7976
void operator()(sycl::nd_item<1> it) const {
77+
sycl::accessor data{dataBuf, h};
8078
volatile float X = 1.0f;
8179
volatile float Y = 1.0f;
8280
auto root = it.ext_oneapi_get_root_group();
@@ -95,11 +93,14 @@ void testRootGroup() {
9593
sycl::group_barrier(root);
9694
data[root.get_local_id()] = sum;
9795
}
98-
auto get(sycl::ext::oneapi::experimental::properties_tag) { return props; }
96+
auto get(sycl::ext::oneapi::experimental::properties_tag) {
97+
return sycl::ext::oneapi::experimental::properties{
98+
sycl::ext::oneapi::experimental::use_root_sync};
99+
;
100+
}
99101
};
100102
q.submit([&](sycl::handler &h) {
101-
sycl::accessor data{dataBuf, h};
102-
h.parallel_for<class RootGroupKernel>(range, TestKernel1(data));
103+
h.parallel_for<class RootGroupKernel>(range, TestKernel1{});
103104
});
104105
sycl::host_accessor data{dataBuf};
105106
const int workItemCount = static_cast<int>(range.get_global_range().size());
@@ -118,19 +119,12 @@ void testRootGroupFunctions() {
118119
.ext_oneapi_get_info<sycl::ext::oneapi::experimental::info::
119120
kernel_queue_specific::max_num_work_groups>(
120121
q, WorkGroupSize, 0);
121-
const auto props = sycl::ext::oneapi::experimental::properties{
122-
sycl::ext::oneapi::experimental::use_root_sync};
123-
124122
constexpr int testCount = 9;
125123
sycl::buffer<bool> testResultsBuf{sycl::range{testCount}};
126124
const auto range = sycl::nd_range<1>{maxWGs * WorkGroupSize, WorkGroupSize};
127-
128125
struct TestKernel2 {
129-
sycl::accessor testResults;
130-
TestKernel2(sycl::accessor testResults_param) {
131-
testResults = testResults_param;
132-
}
133126
void operator()(sycl::nd_item<1> it) const {
127+
sycl::accessor testResults{testResultsBuf, h};
134128
const auto root = it.ext_oneapi_get_root_group();
135129
if (root.leader() || root.get_local_id() == 3) {
136130
testResults[0] = root.get_group_id() == sycl::id<1>(0);
@@ -147,13 +141,14 @@ void testRootGroupFunctions() {
147141
root.get_local_linear_range() == root.get_local_range().size();
148142
}
149143
}
150-
auto get(sycl::ext::oneapi::experimental::properties_tag) { return props; }
144+
auto get(sycl::ext::oneapi::experimental::properties_tag) {
145+
return sycl::ext::oneapi::experimental::properties{
146+
sycl::ext::oneapi::experimental::use_root_sync};
147+
}
151148
};
152149

153150
q.submit([&](sycl::handler &h) {
154-
sycl::accessor testResults{testResultsBuf, h};
155-
h.parallel_for<class RootGroupFunctionsKernel>(range,
156-
TestKernel2(testResults));
151+
h.parallel_for<class RootGroupFunctionsKernel>(range, TestKernel2{});
157152
});
158153
sycl::host_accessor testResults{testResultsBuf};
159154
for (int i = 0; i < testCount; i++) {

0 commit comments

Comments
 (0)