Queues in SYCL are out of order by default. SYCL constructs directed acyclic graphs (DAGs) to ensure that tasks are properly ordered based on their data dependences. However, many programs require only linear DAGs. The overhead of constructing and managing DAGs is unnecessary for this type of program. The
in_order queue property serves these programs by providing programmer-specified in-order semantics. This property is used with the existing
property_list mechanism that is part of the normal SYCL
queue.
Queue Property
Property |
Description |
property::queue::in_order |
The
in_order property adds the requirement that the SYCL queue provides in-order semantics where tasks are executed in the order in which they are submitted. Tasks submitted in this fashion can be viewed as having an implicit dependence on the previously submitted operation. |
Added Member Function
Member function |
Return type |
Description |
is_in_order() |
bool |
Returns
true if a SYCL
queue was created with the
in_order property. Equivalent to
has_property<property::queue::in_order>(). |