An original prototype of my subgraph implementation is in this pull request: #391.
Based on several discussions, I started the process of extracting the pull request into several pieces, those starting PRs are here: #394, #416, #417.
The prototype implementation performs the most acceleration for subgraphs that have operations that are planned to run on the node that created the subgraph. The implementation:
- Caches copy plans and XD's for fast copy replays
- Removes event-based dependence tracking whenever possible
- Allows for host-side run ahead of device-side operations (GPU tasks and copies)
The implementation does this by registering a separate "subgraph executor" that takes over Realm's standard processor threads, executing dedicated subgraph work until a subgraph completes.
The initial batch of new PRs start rebuilding this infrastructure on the latest realm by starting with simple CPU-only subgraphs. I had several pieces of future work planned to gain feature parity with the prototype implementation:
Future work can investigate extending these optimizations to multi-node settings, using advanced features like NVL72 etc for low-latency cross-node communication, or plan better cross-node communication patterns.
An original prototype of my subgraph implementation is in this pull request: #391.
Based on several discussions, I started the process of extracting the pull request into several pieces, those starting PRs are here: #394, #416, #417.
The prototype implementation performs the most acceleration for subgraphs that have operations that are planned to run on the node that created the subgraph. The implementation:
The implementation does this by registering a separate "subgraph executor" that takes over Realm's standard processor threads, executing dedicated subgraph work until a subgraph completes.
The initial batch of new PRs start rebuilding this infrastructure on the latest realm by starting with simple CPU-only subgraphs. I had several pieces of future work planned to gain feature parity with the prototype implementation:
Future work can investigate extending these optimizations to multi-node settings, using advanced features like NVL72 etc for low-latency cross-node communication, or plan better cross-node communication patterns.