-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Execution Engine
Sherlock edited this page Mar 12, 2021
·
1 revision
- Read RunOptions and understand the options (run_option.h)
-
What's the purpose of ExecutionFrame? (execution_frame.h)
- How is one nodes output passed in as another node's input?
- What happens when we call context->Output() inside an op kernel?
- How are feeds and fetches stored in ExecutionFrame?
-
How is the execution order determined? (graph_viewer.cc)
- Default execution order uses Graph::ReverseDFS() to generated topological sort
- Priority-based execution order uses Graph::KahnsTopologicalSort with per-node priority
-
How is each node's kernel invoked ?
-
How does ORT guarantees all the cuda kernel is completed before session.run return?
- How each node is determined to be place on which execution provider? (graph_partitioner.h)
Please use the learning roadmap on the home wiki page for building general understanding of ORT.