@@ -851,6 +851,8 @@ Exceptions:
851
851
852
852
|===
853
853
854
+ :sycl-kernel-function: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#sycl-kernel-function
855
+
854
856
Table {counter: tableNumber}. Member functions of the `command_graph` class (executable graph update).
855
857
[cols="2a,a"]
856
858
|===
@@ -863,26 +865,26 @@ void
863
865
update(const command_graph<graph_state::modifiable>& graph);
864
866
----
865
867
868
+
866
869
|Updates the executable graph node inputs & outputs from a topologically
867
870
identical modifiable graph. A topologically identical graph is one with the
868
871
same structure of nodes and edges, and the nodes added in the same order to
869
872
both graphs. Equivalent nodes in topologically identical graphs each have the
870
873
same command, targeting the same device. There is the additional limitation that
871
874
to update an executable graph, every node in the graph must be either a kernel
872
- command or a host- task.
875
+ command or a host task.
873
876
874
877
The only characteristics that can differ between two topologically identical
875
- graphs during an update are:
878
+ graphs during an update are the arguments to kernel nodes. For example,
879
+ the graph may capture different values for the USM pointers or accessors used
880
+ in the graph. It is these kernels arguments in `graph` that constitute the
881
+ inputs & outputs to update to.
876
882
877
- * The arguments to kernel nodes may be different between graphs. For example,
878
- the graph may capture different values for the USM pointers or accessors used
879
- in the graph. It is these kernels arguments in `graph` that constitute the
880
- inputs & outputs to update to.
883
+ Differences in the following characteristics between two graphs during an
884
+ update results in undefined behavior:
881
885
882
- * The code that is executed in host-task nodes may be different between graphs,
883
- and the update will reflect the code from `graph` host-tasks nodes. However,
884
- any changes to executable code between kernel nodes are not counted as
885
- topologically identical and is an exception with error code `invalid`.
886
+ * Modifying the native C++ callable of a `host task` node.
887
+ * Modifying the {sycl-kernel-function}[kernel function] of a kernel node.
886
888
887
889
The effects of the update will be visible on the next submission of the
888
890
executable graph without the need for additional user synchronization.
@@ -907,7 +909,7 @@ Exceptions:
907
909
:handler-copy-functions: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#table.members.handler.copy
908
910
909
911
* Throws synchronously with error code `invalid` if `graph` contains any node
910
- which is not a kernel command or host- task, e.g.
912
+ which is not a kernel command or host task, e.g.
911
913
{handler-copy-functions}[memory operations].
912
914
913
915
* Throws synchronously with error code `invalid` if the context or device
0 commit comments