28
28
from ._helper import has_cpu
29
29
30
30
31
+ def produce_event (profiling = False ):
32
+ oclSrc = " \
33
+ kernel void add(global int* a) { \
34
+ size_t index = get_global_id(0); \
35
+ a[index] = a[index] + 1; \
36
+ }"
37
+ if profiling :
38
+ q = dpctl .SyclQueue ("opencl:cpu" , property = "enable_profiling" )
39
+ else :
40
+ q = dpctl .SyclQueue ("opencl:cpu" )
41
+ prog = dpctl_prog .create_program_from_source (q , oclSrc )
42
+ addKernel = prog .get_sycl_kernel ("add" )
43
+
44
+ bufBytes = 1024 * np .dtype ("i" ).itemsize
45
+ abuf = dpctl_mem .MemoryUSMShared (bufBytes , queue = q )
46
+ a = np .ndarray ((1024 ), buffer = abuf , dtype = "i" )
47
+ a [:] = np .arange (1024 )
48
+ args = []
49
+
50
+ args .append (a .base )
51
+ r = [1024 ]
52
+ ev = q .submit (addKernel , args , r )
53
+
54
+ return ev
55
+
56
+
31
57
def test_create_default_event_raw ():
32
58
try :
33
59
dpctl .SyclEventRaw ()
@@ -37,25 +63,7 @@ def test_create_default_event_raw():
37
63
38
64
def test_create_event_raw_from_SyclEvent ():
39
65
if has_cpu ():
40
- oclSrc = " \
41
- kernel void add(global int* a) { \
42
- size_t index = get_global_id(0); \
43
- a[index] = a[index] + 1; \
44
- }"
45
- q = dpctl .SyclQueue ("opencl:cpu" )
46
- prog = dpctl_prog .create_program_from_source (q , oclSrc )
47
- addKernel = prog .get_sycl_kernel ("add" )
48
-
49
- bufBytes = 1024 * np .dtype ("i" ).itemsize
50
- abuf = dpctl_mem .MemoryUSMShared (bufBytes , queue = q )
51
- a = np .ndarray ((1024 ), buffer = abuf , dtype = "i" )
52
- a [:] = np .arange (1024 )
53
- args = []
54
-
55
- args .append (a .base )
56
- r = [1024 ]
57
- ev = q .submit (addKernel , args , r )
58
-
66
+ ev = produce_event ()
59
67
try :
60
68
dpctl .SyclEventRaw (ev )
61
69
except ValueError :
@@ -132,5 +140,14 @@ def test_get_wait_list():
132
140
"Failed to get a list of waiting events from SyclEventRaw"
133
141
)
134
142
assert len (wait_list )
143
+
144
+
145
+ def test_profiling_info ():
146
+ if has_cpu ():
147
+ event = produce_event (profiling = True )
148
+ event_raw = dpctl .SyclEventRaw (event )
149
+ assert event_raw .profiling_info_submit
150
+ assert event_raw .profiling_info_start
151
+ assert event_raw .profiling_info_end
135
152
else :
136
153
pytest .skip ("No OpenCL CPU queues available" )
0 commit comments