You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today, Level Zero supports in-order command lists, in which appended commands are guaranteed to execute in order with respect to previously appended commands. For example,
ze_command_list_handle_t inOrderCommandList;
zeAppendKernel(inOrderCommandList);
// This copy will execute after the kernel appended above has completed.
// Consequently, there is no need for the application to add events to enforce
// any kind of dependencies.
zeAppendCopy(inOrderCommandList);
Now, say we have 2 in-order command lists, list0 and list1, each with its own set of commands, submitted to the same queue.
In either submission scenario, the spec has no guarantee that list1 will execute in-order relative to list0. In some implementations, that may be the case, but from the point of view of spec there is no guaranteed ordering of list0 executing prior to list1. That kind of dependency must be enforced by the user.
This issue proposes that an in-order queue be added to Level Zero to compliment in-order lists. Command lists executed on an in-order queue would be guaranteed to execute in submission order without the need for user-enforced dependencies.
The text was updated successfully, but these errors were encountered:
when using "in order" submission queue, the "least-surprise" expectation is that everything is in order.
To achieve parallelism, the application would just use a different queue as an explicit step, instead of relying on across list parallelism in the same queue, which would have head of line blocking issues.
While changing the spec please ensure that in-order is kept within a queue, not within physical hardware engine.
Right now Level Zero maps multiple queues to single physical engine, which requires to submit just one barrier to make sure that everything before on a given engine is done.
We really need to allow multiple in order queues to execute concurrently on the same engine, so spec shouldn't prohibit this scenario.
Today, Level Zero supports in-order command lists, in which appended commands are guaranteed to execute in order with respect to previously appended commands. For example,
Now, say we have 2 in-order command lists,
list0
andlist1
, each with its own set of commands, submitted to the same queue.or
In either submission scenario, the spec has no guarantee that
list1
will execute in-order relative tolist0
. In some implementations, that may be the case, but from the point of view of spec there is no guaranteed ordering oflist0
executing prior tolist1
. That kind of dependency must be enforced by the user.This issue proposes that an in-order queue be added to Level Zero to compliment in-order lists. Command lists executed on an in-order queue would be guaranteed to execute in submission order without the need for user-enforced dependencies.
The text was updated successfully, but these errors were encountered: