onnxruntime/onnxruntime
Sumit Agarwal 2abfea5372 Introduce new optimizer Pad + Conv/MaxPool (#18136)
### Description
Introducing new L1 optimizer to fuse Pad to it's child node if the child
node is Conv or MaxPool.

Pad -> Conv = Conv
Pad -> MaxPool = MaxPool

Major Conditions:
- It will only fuse for the `Constant` mode of padding.
- Conv/MaxPool should not have optional `indices` output tensor
- Padding value for non-spatial dimensions should be zero and for
spatial dimensions padding values should be positive for `pad` operator.

For other conditions please see `SatisfyCondition()` in `pad_fusion.cc`.

### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
2023-11-03 09:18:36 -05:00
..
contrib_ops [ROCm] Generalize FastGeLU (#16623) 2023-07-18 11:23:12 +08:00
core Introduce new optimizer Pad + Conv/MaxPool (#18136) 2023-11-03 09:18:36 -05:00
python Cherry-pick b8f373b0ae (#17895) (#17926) 2023-10-12 16:56:40 -07:00
test Introduce new optimizer Pad + Conv/MaxPool (#18136) 2023-11-03 09:18:36 -05:00
tool/etw
wasm
__init__.py
ReformatSource.ps1
ReformatSourcePython.bat
VSCodeCoverage.runsettings