Skip to content

Commit 2ec3600

Browse files
committed
Minor wording changes
- Allow barrier and empty nodes in whole-graph update - Minor topology wording clarifications
1 parent c8b97d3 commit 2ec3600

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ Updates to a graph will be scheduled after any in-flight executions of the same
711711
graph and will not affect previous submissions of the same graph. The user is
712712
not required to wait on any previous submissions of a graph before updating it.
713713

714-
The only type of nodes that are currently supported for updating in a graph are
714+
The only type of nodes that are currently able to be updated in a graph are
715715
kernel execution nodes.
716716

717717
The aspects of a kernel execution node that can be configured during update are:
@@ -780,7 +780,8 @@ topologically identical when:
780780

781781
** Both graphs have the same number of nodes and edges.
782782
** Where edges are specified through the `depends_on` property or through event
783-
dependencies, these must be specified in the same order.
783+
dependencies in recorded queue submisions, these must be specified in the same
784+
order.
784785
** Nodes with dependencies on events outside of the graph must have the same
785786
number of these dependencies.
786787
** A kernel node's command function must have the same type in both graphs,
@@ -792,6 +793,10 @@ are:
792793
*** Explicit API calls to add nodes to the graph or calls to `make_edge()`.
793794
*** Nodes added to a graph via recorded queue submissions.
794795

796+
Attempting to use whole-graph update with source or target graphs which do not
797+
satisfy these conditions results in undefined behaviour as it may prevent the
798+
runtime from pairing nodes in the source and target graphs.
799+
795800
It is valid to use nodes that contain dynamic parameters in whole graph updates.
796801
If a node containing a dynamic parameter is updated through the whole graph
797802
update API, then any previous updates to the dynamic parameter will be reflected
@@ -1217,8 +1222,7 @@ update(const command_graph<graph_state::modifiable>& source);
12171222
topologically identical source graph in the modifiable state. The full
12181223
definition of what constitutes a topologically identical graph can be found in
12191224
the <<whole-graph-update, Whole-Graph Update>> section. Violating any of these
1220-
topology requirements, other than those described below as exceptions, results
1221-
in undefined behaviour.
1225+
topology requirements results in undefined behaviour.
12221226

12231227
The characteristics in the executable graph which will be updated are detailed
12241228
in the section on <<executable-graph-update, Executable Graph Update>>.
@@ -1250,12 +1254,13 @@ Exceptions:
12501254
** The number of nodes in the graph does not match.
12511255
** The number of edges between nodes does not match.
12521256

1257+
* Throws synchronously with error code `invalid` if `source` contains any node
1258+
which is not of the following `node_type`s:
12531259

1254-
:handler-copy-functions: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#table.members.handler.copy
1260+
** `node_type::empty`
1261+
** `node_type::ext_oneapi_barrier`
1262+
** `node_type::kernel`
12551263

1256-
* Throws synchronously with error code `invalid` if `source` contains any node
1257-
which is not a kernel command, e.g. {handler-copy-functions}[memory
1258-
operations].
12591264

12601265
* Throws synchronously with error code `invalid` if the context or device
12611266
associated with `source` does not match that of the `command_graph` being

0 commit comments

Comments
 (0)