1
-
2
-
3
1
import kernel_tuner
4
2
from kernel_tuner .observers .nvml import NVMLObserver
5
3
from kernel_tuner .observers .register import RegisterObserver
6
4
from kernel_tuner .observers .observer import BenchmarkObserver
7
5
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
9
7
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
10
12
11
13
12
14
@skip_if_no_pycuda
@@ -22,39 +24,46 @@ def test_nvml_observer(env):
22
24
assert result [0 ]["temperature" ] > 0
23
25
24
26
@skip_if_no_pycuda
25
- def test_register_observer_pycuda (env ):
26
- registerobserver = RegisterObserver ()
27
+ def test_custom_observer (env ):
27
28
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' )
29
42
assert "num_regs" in result [0 ]
30
43
assert result [0 ]["num_regs" ] > 0
31
44
32
45
@skip_if_no_cupy
33
46
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' )
37
48
assert "num_regs" in result [0 ]
38
49
assert result [0 ]["num_regs" ] > 0
39
50
40
51
@skip_if_no_cuda
41
52
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' )
45
54
assert "num_regs" in result [0 ]
46
55
assert result [0 ]["num_regs" ] > 0
47
56
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 )
60
63
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