diff --git a/tests/kernelcreation/test_reduction.py b/tests/kernelcreation/test_reduction.py index ec23297b072a011621fc32beba14ebfc12649bf1..992c328d74310090f170b580098dc9971e5f0e98 100644 --- a/tests/kernelcreation/test_reduction.py +++ b/tests/kernelcreation/test_reduction.py @@ -2,6 +2,7 @@ import pytest import numpy as np import pystencils as ps +from cupy_backends.cuda.api.runtime import CUDARuntimeError from pystencils.sympyextensions import reduction_assignment_from_str INIT_W = 5 @@ -48,8 +49,15 @@ def test_reduction_cpu(instruction_set, dtype, op): @pytest.mark.parametrize('dtype', ["float64", "float32"]) @pytest.mark.parametrize("op", ["+", "-", "*", "min", "max"]) def test_reduction_gpu(dtype, op): - pytest.importorskip('cupy') - import cupy as cp + try: + import cupy as cp + + device_count = range(cp.cuda.runtime.getDeviceCount()) + print(f"Found {device_count} GPUs") + except ImportError: + pytest.skip(reason="CuPy is not available", allow_module_level=True) + except CUDARuntimeError: + pytest.skip(reason="No CUDA capable device is detected", allow_module_level=True) config = ps.CreateKernelConfig(target=ps.Target.GPU)