Skip to content

Commit fb916a2

Browse files
author
Diptorup Deb
committed
Xfail fp64 atomic load, store, exchange tests on ocl cpu.
1 parent ae7d68e commit fb916a2

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

numba_dpex/tests/experimental/kernel_iface/spv_overloads/test_atomic_load_store.py

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5+
import dpctl
56
import dpnp
67
import pytest
78
from numba.core.errors import TypingError
@@ -21,7 +22,8 @@ def store_exchange_fn(request):
2122
return request.param
2223

2324

24-
def test_load_store_fn():
25+
@pytest.mark.parametrize("supported_dtype", list_of_supported_dtypes)
26+
def test_load_store_fn(supported_dtype):
2527
"""A test for load/store atomic functions."""
2628

2729
@dpex_exp.kernel
@@ -33,8 +35,19 @@ def _kernel(a, b):
3335
a_ref.store(val)
3436

3537
N = 10
36-
a = dpnp.zeros(2 * N, dtype=dpnp.float32)
37-
b = dpnp.arange(N, dtype=dpnp.float32)
38+
a = dpnp.zeros(2 * N, dtype=supported_dtype)
39+
b = dpnp.arange(N, dtype=supported_dtype)
40+
41+
dev = a.sycl_device
42+
if (
43+
dev.backend == dpctl.backend_type.opencl
44+
and dev.device_type == dpctl.device_type.cpu
45+
and supported_dtype == dpnp.float64
46+
):
47+
pytest.xfail(
48+
"Atomic load, store, and exchange operations not working "
49+
" for fp64 on OpenCL CPU"
50+
)
3851

3952
dpex_exp.call_kernel(_kernel, dpex.Range(b.size), a, b)
4053
# Verify that `b[i]` loaded and stored into a[i] by kernel
@@ -48,7 +61,8 @@ def _kernel(a, b):
4861
assert a[i] == a[i + b.size]
4962

5063

51-
def test_exchange_fn():
64+
@pytest.mark.parametrize("supported_dtype", list_of_supported_dtypes)
65+
def test_exchange_fn(supported_dtype):
5266
"""A test for exchange atomic function."""
5367

5468
@dpex_exp.kernel
@@ -58,8 +72,19 @@ def _kernel(a, b):
5872
b[i] = v.exchange(b[i])
5973

6074
N = 10
61-
a_orig = dpnp.zeros(2 * N, dtype=dpnp.float32)
62-
b_orig = dpnp.arange(N, dtype=dpnp.float32)
75+
a_orig = dpnp.zeros(2 * N, dtype=supported_dtype)
76+
b_orig = dpnp.arange(N, dtype=supported_dtype)
77+
78+
dev = a_orig.sycl_device
79+
if (
80+
dev.backend == dpctl.backend_type.opencl
81+
and dev.device_type == dpctl.device_type.cpu
82+
and supported_dtype == dpnp.float64
83+
):
84+
pytest.xfail(
85+
"Atomic load, store, and exchange operations not working "
86+
" for fp64 on OpenCL CPU"
87+
)
6388

6489
a_copy = dpnp.copy(a_orig)
6590
b_copy = dpnp.copy(b_orig)

0 commit comments

Comments
 (0)