Skip to content

Commit f153945

Browse files
committed
Added tests for Register Observer for OpenCL and HIP backends
1 parent 1681730 commit f153945

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

test/test_observers.py

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
2-
31
import kernel_tuner
42
from kernel_tuner.observers.nvml import NVMLObserver
53
from kernel_tuner.observers.register import RegisterObserver
64
from kernel_tuner.observers.observer import BenchmarkObserver
75

8-
from .context import skip_if_no_pycuda, skip_if_no_pynvml, skip_if_no_cupy, skip_if_no_cuda
6+
from .context import skip_if_no_pycuda, skip_if_no_pynvml, skip_if_no_cupy, skip_if_no_cuda, skip_if_no_opencl, skip_if_no_pyhip
97
from .test_runners import env # noqa: F401
8+
from .test_opencl_functions import env as env_opencl # noqa: F401
9+
from .test_hip_functions import env as env_hip # noqa: F401
10+
11+
from pytest import raises
1012

1113

1214
@skip_if_no_pycuda
@@ -22,39 +24,46 @@ def test_nvml_observer(env):
2224
assert result[0]["temperature"] > 0
2325

2426
@skip_if_no_pycuda
25-
def test_register_observer_pycuda(env):
26-
registerobserver = RegisterObserver()
27+
def test_custom_observer(env):
2728
env[-1]["block_size_x"] = [128]
28-
result, _ = kernel_tuner.tune_kernel(*env, observers=[registerobserver], lang='CUDA')
29+
30+
class MyObserver(BenchmarkObserver):
31+
def get_results(self):
32+
return {"name": self.dev.name}
33+
34+
result, _ = kernel_tuner.tune_kernel(*env, observers=[MyObserver()])
35+
36+
assert "name" in result[0]
37+
assert len(result[0]["name"]) > 0
38+
39+
@skip_if_no_pycuda
40+
def test_register_observer_pycuda(env):
41+
result, _ = kernel_tuner.tune_kernel(*env, observers=[RegisterObserver()], lang='CUDA')
2942
assert "num_regs" in result[0]
3043
assert result[0]["num_regs"] > 0
3144

3245
@skip_if_no_cupy
3346
def test_register_observer_cupy(env):
34-
registerobserver = RegisterObserver()
35-
env[-1]["block_size_x"] = [128]
36-
result, _ = kernel_tuner.tune_kernel(*env, observers=[registerobserver], lang='CuPy')
47+
result, _ = kernel_tuner.tune_kernel(*env, observers=[RegisterObserver()], lang='CuPy')
3748
assert "num_regs" in result[0]
3849
assert result[0]["num_regs"] > 0
3950

4051
@skip_if_no_cuda
4152
def test_register_observer_nvcuda(env):
42-
registerobserver = RegisterObserver()
43-
env[-1]["block_size_x"] = [128]
44-
result, _ = kernel_tuner.tune_kernel(*env, observers=[registerobserver], lang='NVCUDA')
53+
result, _ = kernel_tuner.tune_kernel(*env, observers=[RegisterObserver()], lang='NVCUDA')
4554
assert "num_regs" in result[0]
4655
assert result[0]["num_regs"] > 0
4756

48-
@skip_if_no_pycuda
49-
def test_custom_observer(env):
50-
env[-1]["block_size_x"] = [128]
51-
52-
class MyObserver(BenchmarkObserver):
53-
def get_results(self):
54-
return {"name": self.dev.name}
55-
56-
result, _ = kernel_tuner.tune_kernel(*env, observers=[MyObserver()])
57-
58-
assert "name" in result[0]
59-
assert len(result[0]["name"]) > 0
57+
@skip_if_no_opencl
58+
def test_register_observer_opencl(env_opencl):
59+
with raises(NotImplementedError) as err:
60+
kernel_tuner.tune_kernel(*env_opencl, observers=[RegisterObserver()], lang='OpenCL')
61+
assert err.errisinstance(NotImplementedError)
62+
assert "OpenCL" in str(err.value)
6063

64+
@skip_if_no_pyhip
65+
def test_register_observer_hip(env_opencl):
66+
with raises(NotImplementedError) as err:
67+
kernel_tuner.tune_kernel(*env_opencl, observers=[RegisterObserver()], lang='HIP')
68+
assert err.errisinstance(NotImplementedError)
69+
assert "Hip" in str(err.value)

0 commit comments

Comments
 (0)