onnxruntime/onnxruntime
Scott McKay b85805ed01
Handle edge case with implicit input and multiple levels of subgraphs (#4031)
* Handle edge case where an implicit input for a subgraph may not get wired in correctly.

Conditions required:
  - two or more levels of nested subgraph
  - an implicit input from above the bottom two levels is used in both levels of subgraph
    - this creates a NodeArg for the implicit input at both levels
  - something changes to the first level subgraph to no longer use the implicit input
    - could be constant folding, could be partitioning of nodes results in a copy of the implicit input being made to a different device

When that occurs we lose the wiring through to the second level of nested subgraph as there's a NodeArg in the first level but the implicit input is no longer used there. Fix that by doing a final check for outer scope values once we know all the outputs produced by the current graph.

Found by commenting out the CUDA implementations of the control flow nodes and running ssd_mobilenet_300 from the mlperf models.

* Add test case.
2020-05-30 07:08:21 +10:00
..
contrib_ops Implement QLinearLeakyRelu (#3648) 2020-05-14 14:52:55 -07:00
core Handle edge case with implicit input and multiple levels of subgraphs (#4031) 2020-05-30 07:08:21 +10:00
featurizers_ops/cpu Initial checkin (#3791) 2020-05-01 14:58:49 -07:00
gsl Fix static analysis warnings found by VC++ (#3530) 2020-04-16 01:46:47 -07:00
python Remove ONNX from requirements.txt (#4073) 2020-05-29 21:44:20 +05:30
test Handle edge case with implicit input and multiple levels of subgraphs (#4031) 2020-05-30 07:08:21 +10:00
tool/etw Fix static analysis warnings found by VC++ (#3530) 2020-04-16 01:46:47 -07:00
.style.yapf Enable running PEP8 on python scripts using flake8 (#3928) 2020-05-15 07:15:06 +10:00
__init__.py Enable running PEP8 on python scripts using flake8 (#3928) 2020-05-15 07:15:06 +10:00
ReformatSource.ps1
ReformatSourcePython.bat
VSCodeCoverage.runsettings