unified-runtime icon indicating copy to clipboard operation
unified-runtime copied to clipboard

[DRAFT][Prototype] Add implementation for counter-based events in command-buffers

Open fabiomestre opened this issue 1 year ago • 0 comments

  • 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

fabiomestre avatar Jun 04 '24 16:06 fabiomestre