Skip to content

Apply GraphTransformer EP specific rules to DNNL EP #8949

Open
@zhaoyang-intel

Description

@zhaoyang-intel

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    core runtimeissues related to core runtimeep:oneDNNquestions/issues related to DNNL EPstaleissues that have not been addressed in a while; categorized by a bot

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions