unified-runtime
unified-runtime copied to clipboard
[DRAFT][Prototype] Add implementation for counter-based events in command-buffers
- Replaces the signalEvent and the user output event in the command-buffer implementation with counter-based events.
- Removes the reset-all command-list when the graph is linear
TODO:
- The waitEvent is still a regular event. Might need to use mutable-command lists to replace it with a counter-based event.
- Counter-based events are only enabled when the queue associated with the graph is in-order. This is to interact nicely with existing level-zero code that enables counter-based events only for in-order queues (see the function createEventAndAssociateQueue()). This limitation should probably be removed. However, we should check what happens when 2 graphs are submitted simultaneously to an out-of-order queue?
- Extra testing on intel-llvm might be needed. Probably add UR_L0_USE_DRIVER_COUNTER_BASED_EVENTS=1 to existing tests.
- Benchmarking to see if this optimizations provides a tangible benefit.
Intel/llvm tests: https://github.com/intel/llvm/pull/14038