onnxruntime/onnxruntime/core/session
Chi Lo 21ef14476b
Bug fix for nested control flow ops for TRT EP (#16343)
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
2023-07-23 16:16:17 -07:00
..
abi_session_options.cc Run clang-format in CI (#15524) 2023-04-18 09:26:58 -07:00
abi_session_options_impl.h
allocator_adapters.cc ExecutionProvider API refactor - move allocator from EP level to SessionState level and indexed by OrtDevice (#15833) 2023-06-19 17:44:45 -07:00
allocator_adapters.h
api_utils.cc
api_utils.h
custom_ops.cc Support custom ops taking float 8 tensors as inputs and outputs (#16323) 2023-07-06 14:36:06 +02:00
custom_ops.h Changes to support standalone custom ops in a minimal build. (#14497) 2023-03-01 11:22:54 +10:00
default_cpu_allocator_c_api.cc
environment.cc Re-organize the transpose optimization and layout transformation files. (#16246) 2023-07-07 08:24:47 +10:00
inference_session.cc RunAsync C/CXX API (#16613) 2023-07-16 16:51:40 -07:00
inference_session.h RunAsync C/CXX API (#16613) 2023-07-16 16:51:40 -07:00
inference_session_utils.cc Automatically enable tunable op usage for production models (#15156) 2023-04-06 13:52:47 +08:00
inference_session_utils.h Offline tuning (#14558) 2023-02-15 14:17:34 +08:00
IOBinding.cc ExecutionProvider API refactor - move allocator from EP level to SessionState level and indexed by OrtDevice (#15833) 2023-06-19 17:44:45 -07:00
IOBinding.h remove device_id parameter out of ExecutionProvider::GetAllocator() (#14580) 2023-02-13 10:01:07 -08:00
onnxruntime_c_api.cc RunAsync C/CXX API (#16613) 2023-07-16 16:51:40 -07:00
ort_apis.h RunAsync C/CXX API (#16613) 2023-07-16 16:51:40 -07:00
ort_env.cc ExecutionProvider API refactor - move allocator from EP level to SessionState level and indexed by OrtDevice (#15833) 2023-06-19 17:44:45 -07:00
ort_env.h ExecutionProvider API refactor - move allocator from EP level to SessionState level and indexed by OrtDevice (#15833) 2023-06-19 17:44:45 -07:00
provider_bridge_ort.cc Bug fix for nested control flow ops for TRT EP (#16343) 2023-07-23 16:16:17 -07:00
provider_bridge_ort.h
provider_registration.cc [QNN EP] Add session option to disable fallback to default CPU EP (#16016) 2023-05-23 17:56:32 -07:00
standalone_op_invoker.cc ExecutionProvider API refactor - move allocator from EP level to SessionState level and indexed by OrtDevice (#15833) 2023-06-19 17:44:45 -07:00