Skip to content

Commit 9fa878f

Browse files
jbrodmanbader
authored andcommitted
[SYCL][DOC][Ordered Queue] Queue Property Proposal (#1042)
Signed-off-by: James Brodman <[email protected]>
1 parent 00baa4b commit 9fa878f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
= SYCL Proposals: Queue Order Properties
2+
James Brodman <james[email protected]>
3+
v0.2
4+
:source-highlighter: pygments
5+
:icons: font
6+
== Introduction
7+
This document presents an addition proposed for a future version of the SYCL Specification. The goal of this proposal is to reduce the complexity and verbosity of using SYCL for programmers.
8+
9+
== Queue Order Properties
10+
Queues in SYCL are out-of-order by default. SYCL constructs directed acyclic graphs to ensure tasks are properly ordered based on their data dependences. However, many programs only require linear DAGs. The overheads of constructing and managing DAGs are unnecessary for this class of program. The `in_order` queue property is proposed to serve this class of 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`.
11+
12+
.Proposed Queue Property
13+
[cols="^50,50",options="header"]
14+
|===
15+
16+
|Property |Description
17+
|`property::queue::in_order`
18+
| 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.
19+
|===
20+
21+
.Proposed Queue Method Addition
22+
[cols="^25,^25,50",options="header"]
23+
|===
24+
25+
|Method |Return Type |Description
26+
|`is_in_order()`
27+
|`bool`
28+
| Returns `true` if a SYCL `queue` was created with the `in_order` property. Equivalent to `has_property<property::queue::in_order>()`.
29+
|===
30+
31+

0 commit comments

Comments
 (0)