llvm
llvm copied to clipboard
[SYCL][Graph][Doc] Add dynamic_events and other event features to sycl_ext_oneapi_graph
Summary
This PR adds wording and support for dynamic dependencies in graphs using dynamic_event, which can be used to define dependencies on eager SYCL operations outside of a graph that can be updated between graph executions. It also adds wording which allows for defining dependencies between separate graphs, and being able to obtain SYCL events which represent the most recent execution of a given node inside a graph.
Changes
- Adds dynamic events which are updatable between graph executions
- Removes limitations on depending on SYCL events from outside a graph
- depends_on property can now take events/dynamic events
- Allow barriers in the explicit API
- Extend barriers to support dynamic events
- Added get_event() to get event for node execution in a graph
- Add a new graph property which requires that an execution event is available
- Add new examples to the usage guide for dynamic events and command_graph::get_event()
- Define some spec only terms for talking about events
- "Regular" SYCL events which are normal events as defined in the SYCL spec
- "Limited graph events" - Events returned from recorded submissions to a graph that are only used for defining dependencies inside graphs.
- Remove restrictions on "limited graph events" being used in other graphs
- Now used to define inter-graph dependencies
- Various changes to errors etc. to reflect change
- Add example of this to usage guide