-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SYCL][Graph] Add node and graph queries for mixed usage #12366
Conversation
- Implement graph and node queries from spec - New node_type enum - Note, subgraph node type not yet implemented due to significant changes required - Explicit nodes now also have associated events (fixes mixed usage issue) - New tests for queries - Update linux ABI symbols
- Subgraphs are now stored in modifiable graphs as a single node, instead of being merged - Executable graphs copy all nodes internally (pre-partitioning) and merge subgraph nodes into the main node list - Subgraph merging no longer uses empty nodes - Subgraph nodes now use CGExecCommandBuffer instead of being empty - CGExecCommandBuffer now stores exec graph (to pass to node) - Modifications to unit tests due to internals changing - Added dot printing for exec_graph_impl as an internal debugging feature
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial comments, will do another review pass for exec_graph_impl::duplicateNodes()
since I need to come at that with fresh eyes.
ping @intel/llvm-reviewers-runtime for review |
ping @intel/llvm-reviewers-runtime |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One small nit, but otherwise I think it looks good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
@intel/llvm-gatekeepers Can this be merged? |
This PR adds queries to both nodes and modifiable graphs which enable better mixed usage of both the explicit and record & replay APIs in a single program.
It also reworks how subgraphs are handled: previously nodes were merged into the modifiable graph, but this would pose a problem for users querying the graph since they would not see a single subgraph node, and this merging behaviour was an implementation detail. This has been changed so that now subgraph nodes are only merged in the executable graph, and are stored as a single node of type
subgraph
in the modifiable graph.As a consequence of this change all nodes are now also copied when making the executable graph, where previously they were not.