Skip to content

Commit 56c149c

Browse files
committed
Rewrite tests to use host_accessor
Signed-off-by: John Pennycook <[email protected]>
1 parent 427a98f commit 56c149c

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

sycl/test-e2e/Reduction/reduction_deterministic.cpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,20 @@ namespace syclex = sycl::ext::oneapi::experimental;
1212

1313
float sum(sycl::queue q, float *array, size_t N) {
1414

15-
float result = 0;
16-
{
17-
sycl::buffer<float> input_buf{array, N};
18-
sycl::buffer<float> result_buf{&result, 1};
19-
20-
q.submit([&](sycl::handler &h) {
21-
auto input = sycl::accessor(input_buf, h, sycl::read_only);
22-
auto reduction =
23-
sycl::reduction(result_buf, h, sycl::plus<>(),
24-
syclex::properties(syclex::deterministic));
25-
h.parallel_for(N, reduction,
26-
[=](size_t i, auto &reducer) { reducer += input[i]; });
27-
});
28-
}
29-
return result;
15+
sycl::buffer<float> input_buf{array, N};
16+
sycl::buffer<float> result_buf{1};
17+
18+
sycl::host_accessor{result_buf}[0] = 0;
19+
20+
q.submit([&](sycl::handler &h) {
21+
auto input = sycl::accessor(input_buf, h, sycl::read_only);
22+
auto reduction = sycl::reduction(result_buf, h, sycl::plus<>(),
23+
syclex::properties(syclex::deterministic));
24+
h.parallel_for(N, reduction,
25+
[=](size_t i, auto &reducer) { reducer += input[i]; });
26+
});
27+
28+
return sycl::host_accessor{result_buf}[0];
3029
}
3130

3231
int main(int argc, char *argv[]) {

sycl/test-e2e/Reduction/reduction_initialize_to_identity.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ namespace syclex = sycl::ext::oneapi::experimental;
1212

1313
int sum(sycl::queue q, int *array, size_t N) {
1414

15-
int result = 42;
16-
{
17-
sycl::buffer<int> input_buf{array, N};
18-
sycl::buffer<int> result_buf{&result, 1};
19-
20-
q.submit([&](sycl::handler &h) {
21-
auto input = sycl::accessor(input_buf, h, sycl::read_only);
22-
auto reduction =
23-
sycl::reduction(result_buf, h, sycl::plus<>(),
24-
syclex::properties(syclex::initialize_to_identity));
25-
h.parallel_for(N, reduction,
26-
[=](size_t i, auto &reducer) { reducer += input[i]; });
27-
});
28-
}
29-
return result;
15+
sycl::buffer<int> input_buf{array, N};
16+
sycl::buffer<int> result_buf{1};
17+
18+
sycl::host_accessor{result_buf}[0] = 42;
19+
20+
q.submit([&](sycl::handler &h) {
21+
auto input = sycl::accessor(input_buf, h, sycl::read_only);
22+
auto reduction =
23+
sycl::reduction(result_buf, h, sycl::plus<>(),
24+
syclex::properties(syclex::initialize_to_identity));
25+
h.parallel_for(N, reduction,
26+
[=](size_t i, auto &reducer) { reducer += input[i]; });
27+
});
28+
29+
return sycl::host_accessor{result_buf}[0];
3030
}
3131

3232
int main(int argc, char *argv[]) {

0 commit comments

Comments
 (0)