Description
Is your feature request related to a problem? Please describe.
I'm working on improving DNNL execution provider through identifying operator fusions (conv-relu, matmul-add etc).
I want to take advantage of onnxruntime's existing GraphTransformer infrastructure by adding DNNL ep as a compatible ep to certain fusion rules.
However, I found out that the fusion rule cannot be applied to DNNL EP as graph transformer rules will see fused node(s) from DNNL EP.
For example, say the graph consists of conv-relu-conv-relu, the DNNL EP will claim all 4 nodes in getcapability. When the ConvActivation fusion rule sees the graph later, it becomes a single fused node and the rule will not recurse into the fused node's function body.
System information
- ONNX Runtime version (you are using):
commit hash: d5922c594
Win10
Describe the solution you'd like
A clear and concise description of what you want to happen.
I want the GraphTransformer to be applied to DNNL EP when DNNL EP string is added as compatible eps to rules in onnxruntime\core\optimizer\graph_transformer_utils.cc
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
It's possible to implement operator fusion infrastructure and rules in DNNL EP but it might be redundant (many fusions overlap with existing rules) and I believe it would be better to take advantage of the already existing GraphTransformer
Additional context
Add any other context or screenshots about the feature request here.