2828from ._helper import has_cpu
2929
3030
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+
3157def test_create_default_event_raw ():
3258 try :
3359 dpctl .SyclEventRaw ()
@@ -37,25 +63,7 @@ def test_create_default_event_raw():
3763
3864def test_create_event_raw_from_SyclEvent ():
3965 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 ()
5967 try :
6068 dpctl .SyclEventRaw (ev )
6169 except ValueError :
@@ -132,5 +140,14 @@ def test_get_wait_list():
132140 "Failed to get a list of waiting events from SyclEventRaw"
133141 )
134142 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
135152 else :
136153 pytest .skip ("No OpenCL CPU queues available" )
0 commit comments