Skip to content

Commit d716762

Browse files
committed
[SYCL] Add joint_reduce E2E test with sub_group
Signed-off-by: Cai, Justin <justin.cai@intel.com>
1 parent 5289d50 commit d716762

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

sycl/test-e2e/GroupAlgorithm/reduce_sycl2020.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,18 @@ void test(queue q, InputContainer input, OutputContainer output,
3434
cgh.parallel_for<SpecializationKernelName>(
3535
nd_range<1>(G, G), [=](nd_item<1> it) {
3636
group<1> g = it.get_group();
37+
auto sg = it.get_sub_group();
3738
int lid = it.get_local_id(0);
3839
out[0] = reduce_over_group(g, in[lid], binary_op);
3940
out[1] = reduce_over_group(g, in[lid], init, binary_op);
4041
out[2] = joint_reduce(g, in.get_pointer(), in.get_pointer() + N,
4142
binary_op);
4243
out[3] = joint_reduce(g, in.get_pointer(), in.get_pointer() + N,
4344
init, binary_op);
45+
out[4] = joint_reduce(sg, in.get_pointer(), in.get_pointer() + N,
46+
binary_op);
47+
out[5] = joint_reduce(sg, in.get_pointer(), in.get_pointer() + N,
48+
init, binary_op);
4449
});
4550
});
4651
}
@@ -54,6 +59,10 @@ void test(queue q, InputContainer input, OutputContainer output,
5459
std::accumulate(input.begin(), input.end(), identity, binary_op));
5560
assert(output[3] ==
5661
std::accumulate(input.begin(), input.end(), init, binary_op));
62+
assert(output[4] ==
63+
std::accumulate(input.begin(), input.end(), identity, binary_op));
64+
assert(output[5] ==
65+
std::accumulate(input.begin(), input.end(), init, binary_op));
5766
}
5867

5968
int main() {
@@ -65,7 +74,7 @@ int main() {
6574

6675
constexpr int N = 128;
6776
std::array<int, N> input;
68-
std::array<int, 4> output;
77+
std::array<int, 6> output;
6978
std::iota(input.begin(), input.end(), 0);
7079
std::fill(output.begin(), output.end(), 0);
7180

@@ -93,7 +102,7 @@ int main() {
93102
// sycl::plus binary operation.
94103
#ifdef SYCL_EXT_ONEAPI_COMPLEX_ALGORITHMS
95104
std::array<std::complex<float>, N> input_cf;
96-
std::array<std::complex<float>, 4> output_cf;
105+
std::array<std::complex<float>, 6> output_cf;
97106
std::iota(input_cf.begin(), input_cf.end(), 0);
98107
std::fill(output_cf.begin(), output_cf.end(), 0);
99108
test<class KernelNamePlusComplexF>(q, input_cf, output_cf,

0 commit comments

Comments
 (0)