forked from intel/llvm
-
Notifications
You must be signed in to change notification settings - Fork 3
Closed
Labels
Graph ImplementationRelated to DPC++ implementation and testingRelated to DPC++ implementation and testingbugSomething isn't workingSomething isn't working
Description
#55 enables submitting subgraphs for the explicit API but this poses problems for the record and replay implementation due to several factors:
- Because the CGFs stored in nodes are essentially black boxes until being run we don't know that we have a subgraph as part of a parent graph, so we can't extract nodes from the subgraph to add to the parent graph without the handler being run.
- When recording to the subgraph we don't have information available about parent graph nodes to create proper edges, and at subgraph submission time we do have that information but don't have access to subgraph information without running the handler.
- However, when we run the handler for the subgraph submission this is also execution of the graph and we can't effectively block it without also breaking for explicit mode. Since the handler needs to be run to determine graph edges between the subgraph and the parent graph we can't avoid running the handler earlier than submission time.
- Even if we could only run the handler at submission time at that point it is too late to determine edges and modify the topology of the graph.
- Possibly we could modify the handler to extract the subgraph at subgrpah submission time but since the handler is a public facing class this would require an ABI break which I don't think is feasible here, and may not even solve all the issues.
Ideally we would have information as part of node_impl
that lets us know at finalize time that the node is a subgraph submission and be able to merge the nodes and determine edges at that point in time. This approach would likely be needed for the non-POC implementation so shouldn't present any issues at that time.
Metadata
Metadata
Assignees
Labels
Graph ImplementationRelated to DPC++ implementation and testingRelated to DPC++ implementation and testingbugSomething isn't workingSomething isn't working