DPC++ implements SYCL extension supporting enqueueing of barriers.
Using such barriers with sycl queues that support profiling would allow us to build context manager class for collecting host/asynchronous timing information, like in the example from IntelPython/numba-dpex#147.
Constructor of such context manager class will take SyclQueue as an argument, and verify that it supports profiling.
The __enter__ method of such manager will enqueue the barrier and save the event in its internal state.
The __exit__ method will enqueue another barrier and save that event too. It will wait for both events to enter completed state, retrieve profiling info.
The class will also provide the info to retrieve durations from collected timestamps.
@Alexander-Makaryev @vlad-perevezentsev @diptorupd
DPC++ implements SYCL extension supporting enqueueing of barriers.
Using such barriers with sycl queues that support profiling would allow us to build context manager class for collecting host/asynchronous timing information, like in the example from IntelPython/numba-dpex#147.
Constructor of such context manager class will take
SyclQueueas an argument, and verify that it supports profiling.The
__enter__method of such manager will enqueue the barrier and save the event in its internal state.The
__exit__method will enqueue another barrier and save that event too. It will wait for both events to enter completed state, retrieve profiling info.The class will also provide the info to retrieve durations from collected timestamps.
@Alexander-Makaryev @vlad-perevezentsev @diptorupd