Skip to content

Commit 0fb9a95

Browse files
author
Andrew Lamzed-Short
authored
[SYCL] Updated atomic_memory_order_capabilities query tests for OpenCL and Level Zero backends (#8825)
This patch updates the `atomic_memory_order*` E2E tests to include the `level_zero` and `opencl` backends, as these should now return the required memory order capability sets tested in and required by these tests.
1 parent 96acbff commit 0fb9a95

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

sycl/test-e2e/AtomicRef/atomic_memory_order.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
// RUN: %CPU_RUN_PLACEHOLDER %t.out
33
// RUN: %GPU_RUN_PLACEHOLDER %t.out
44
// RUN: %ACC_RUN_PLACEHOLDER %t.out
5-
// L0, OpenCL backends don't currently support
6-
// info::device::atomic_memory_order_capabilities
7-
// UNSUPPORTED: level_zero || opencl
85

9-
// NOTE: General tests for atomic memory order capabilities.
6+
// This test checks whether the minimum required memory order capabilities are
7+
// supported in both context and device queries. Specifically the "relaxed"
8+
// memory order capability, which is used in other tests.
109

1110
#include "atomic_memory_order.h"
1211
#include <cassert>
@@ -16,12 +15,18 @@ using namespace sycl;
1615
int main() {
1716
queue q;
1817

19-
std::vector<memory_order> supported_memory_orders =
18+
// Context
19+
std::vector<memory_order> supported_context_memory_orders =
20+
q.get_context()
21+
.get_info<info::context::atomic_memory_order_capabilities>();
22+
23+
assert(is_supported(supported_context_memory_orders, memory_order::relaxed));
24+
25+
// Device
26+
std::vector<memory_order> supported_device_memory_orders =
2027
q.get_device().get_info<info::device::atomic_memory_order_capabilities>();
2128

22-
// Relaxed memory order must be supported. This ordering is used in other
23-
// tests.
24-
assert(is_supported(supported_memory_orders, memory_order::relaxed));
29+
assert(is_supported(supported_device_memory_orders, memory_order::relaxed));
2530

2631
std::cout << "Test passed." << std::endl;
2732
}

sycl/test-e2e/AtomicRef/atomic_memory_order_acq_rel.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// RUN: %CPU_RUN_PLACEHOLDER %t.out
33
// RUN: %GPU_RUN_PLACEHOLDER %t.out
44
// RUN: %ACC_RUN_PLACEHOLDER %t.out
5-
// L0, OpenCL, and HIP backends don't currently support
6-
// info::device::atomic_memory_order_capabilities
7-
// UNSUPPORTED: level_zero, opencl
85

96
// NOTE: Tests fetch_add for acquire and release memory ordering.
107

@@ -14,7 +11,7 @@
1411
using namespace sycl;
1512

1613
template <memory_order order> void test_acquire_global() {
17-
const size_t N_items = 1024;
14+
const size_t N_items = 256;
1815
const size_t N_iters = 1000;
1916

2017
int error = 0;
@@ -56,7 +53,7 @@ template <memory_order order> void test_acquire_global() {
5653
}
5754

5855
template <memory_order order> void test_acquire_local() {
59-
const size_t local_size = 1024;
56+
const size_t local_size = 256;
6057
const size_t N_wgs = 16;
6158
const size_t global_size = local_size * N_wgs;
6259
const size_t N_iters = 1000;
@@ -105,7 +102,7 @@ template <memory_order order> void test_acquire_local() {
105102
}
106103

107104
template <memory_order order> void test_release_global() {
108-
const size_t N_items = 1024;
105+
const size_t N_items = 256;
109106
const size_t N_iters = 1000;
110107

111108
int error = 0;
@@ -147,7 +144,7 @@ template <memory_order order> void test_release_global() {
147144
}
148145

149146
template <memory_order order> void test_release_local() {
150-
const size_t local_size = 1024;
147+
const size_t local_size = 256;
151148
const size_t N_wgs = 16;
152149
const size_t global_size = local_size * N_wgs;
153150
const size_t N_iters = 1000;

sycl/test-e2e/AtomicRef/atomic_memory_order_seq_cst.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// RUN: %CPU_RUN_PLACEHOLDER %t.out
33
// RUN: %GPU_RUN_PLACEHOLDER %t.out
44
// RUN: %ACC_RUN_PLACEHOLDER %t.out
5-
// L0, OpenCL, and HIP backends don't currently support
6-
// info::device::atomic_memory_order_capabilities
7-
// UNSUPPORTED: level_zero, opencl
85

96
#include "atomic_memory_order.h"
107
#include <iostream>

0 commit comments

Comments
 (0)