Skip to content

Commit 023b9af

Browse files
authored
[SYCL] Add early exit for devices that don't support size 32 subgroups (#11104)
Some tests weren't exiting early if size 32 sgs are not supported on device. This fixes this behaviour.
1 parent 5801970 commit 023b9af

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

sycl/test-e2e/NonUniformGroups/fixed_size_group.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ template <size_t PartitionSize> void test() {
1616
if (std::find(SGSizes.begin(), SGSizes.end(), 32) == SGSizes.end()) {
1717
std::cout << "Test skipped due to missing support for sub-group size 32."
1818
<< std::endl;
19+
return;
1920
}
2021

2122
sycl::buffer<bool, 1> MatchBuf{sycl::range{32}};

sycl/test-e2e/NonUniformGroups/fixed_size_group_algorithms.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ template <size_t PartitionSize> void test() {
1818
if (std::find(SGSizes.begin(), SGSizes.end(), SGSize) == SGSizes.end()) {
1919
std::cout << "Test skipped due to missing support for sub-group size 32."
2020
<< std::endl;
21+
return;
2122
}
2223

2324
sycl::buffer<size_t, 1> TmpBuf{sycl::range{SGSize}};

sycl/test-e2e/NonUniformGroups/tangle_group_algorithms.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ int main() {
2121
if (std::find(SGSizes.begin(), SGSizes.end(), SGSize) == SGSizes.end()) {
2222
std::cout << "Test skipped due to missing support for sub-group size 32."
2323
<< std::endl;
24+
return 0;
2425
}
2526

2627
sycl::buffer<size_t, 1> TmpBuf{sycl::range{SGSize}};

sycl/test-e2e/SubGroupMask/Basic.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ int main() {
2424
#ifdef SYCL_EXT_ONEAPI_SUB_GROUP_MASK
2525
queue Queue;
2626

27+
auto sgsizes =
28+
Queue.get_device().get_info<sycl::info::device::sub_group_sizes>();
29+
if (std::find(sgsizes.begin(), sgsizes.end(), 32) == sgsizes.end()) {
30+
std::cout << "test skipped due to missing support for sub-group size 32."
31+
<< std::endl;
32+
return 0;
33+
}
34+
2735
try {
2836
nd_range<1> NdRange(global_size, local_size);
2937
int Res = 0;

0 commit comments

Comments
 (0)