mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-26 19:52:38 +00:00
Current TRT EP can support model which has nested control flow ops (multiple level subgraphs). But it fails at a case where the subgraph has outer scope value that is defined several levels up in the top-level graph, in this case, the outer scope value is the input of the top-level graph. The outer scope values are not properly handled during TRT EP's subgraph reconstruction stage and fails at `graph.resolve()`. The way ORT gets capability from EPs is a bottom-up approach meaning inner most subgraph gets handled first. TRT EP reconstructs each subgraph level by level and following modifications are made to fix the outer scope values issue: - `SetGraphOuterScopeValuesAndInputs()` and `SetAllGraphInputs()` are added to handle outer scope values and add those values as graph inputs if needed in order to make `graph.resolve()` happy. - Change to use `GetNodeArgIncludingParentGraphs` so that when creating the fused TRT node for some subgraphs in` Graph::CreateFusedSubGraphNode()`, it can get the NodeArgs for outer scope values from top-level graph. This PR fixes https://github.com/microsoft/onnxruntime/issues/16217 |
||
|---|---|---|
| .. | ||
| abi_session_options.cc | ||
| abi_session_options_impl.h | ||
| allocator_adapters.cc | ||
| allocator_adapters.h | ||
| api_utils.cc | ||
| api_utils.h | ||
| custom_ops.cc | ||
| custom_ops.h | ||
| default_cpu_allocator_c_api.cc | ||
| environment.cc | ||
| inference_session.cc | ||
| inference_session.h | ||
| inference_session_utils.cc | ||
| inference_session_utils.h | ||
| IOBinding.cc | ||
| IOBinding.h | ||
| onnxruntime_c_api.cc | ||
| ort_apis.h | ||
| ort_env.cc | ||
| ort_env.h | ||
| provider_bridge_ort.cc | ||
| provider_bridge_ort.h | ||
| provider_registration.cc | ||
| standalone_op_invoker.cc | ||