Queue Order Properties

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>().