2
2
3
3
import kernel_tuner
4
4
from kernel_tuner .observers .nvml import NVMLObserver
5
+ from kernel_tuner .observers .register import RegisterObserver
5
6
from kernel_tuner .observers .observer import BenchmarkObserver
6
7
7
- from .context import skip_if_no_pycuda , skip_if_no_pynvml
8
+ from .context import skip_if_no_pycuda , skip_if_no_pynvml , skip_if_no_cupy , skip_if_no_cuda
8
9
from .test_runners import env # noqa: F401
9
10
10
11
@@ -20,6 +21,29 @@ def test_nvml_observer(env):
20
21
assert "temperature" in result [0 ]
21
22
assert result [0 ]["temperature" ] > 0
22
23
24
+ @skip_if_no_pycuda
25
+ def test_register_observer_pycuda (env ):
26
+ registerobserver = RegisterObserver ()
27
+ env [- 1 ]["block_size_x" ] = [128 ]
28
+ result , _ = kernel_tuner .tune_kernel (* env , observers = [registerobserver ], lang = 'CUDA' )
29
+ assert "num_regs" in result [0 ]
30
+ assert result [0 ]["num_regs" ] > 0
31
+
32
+ @skip_if_no_cupy
33
+ 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' )
37
+ assert "num_regs" in result [0 ]
38
+ assert result [0 ]["num_regs" ] > 0
39
+
40
+ @skip_if_no_cuda
41
+ 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' )
45
+ assert "num_regs" in result [0 ]
46
+ assert result [0 ]["num_regs" ] > 0
23
47
24
48
@skip_if_no_pycuda
25
49
def test_custom_observer (env ):
0 commit comments