From 364eb627f420ca9d54307f6e2b6fd02899872703 Mon Sep 17 00:00:00 2001 From: Ganesan Ramalingam Date: Wed, 5 Nov 2025 15:42:52 -0800 Subject: [PATCH 1/2] Add option to clear metadata in ort fusion Signed-off-by: Ganesan Ramalingam --- onnxscript/rewriter/ort_fusions/_core.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/onnxscript/rewriter/ort_fusions/_core.py b/onnxscript/rewriter/ort_fusions/_core.py index ea7af31b3e..054ed7ee20 100644 --- a/onnxscript/rewriter/ort_fusions/_core.py +++ b/onnxscript/rewriter/ort_fusions/_core.py @@ -115,6 +115,7 @@ def optimize_for_ort( config_name: str | None = None, *, debug: bool = False, + clear_metadata: bool = False, ) -> tuple[ir.Model, dict[str, int]]: """ Optimize the model for ORT backend. @@ -142,10 +143,12 @@ def optimize_for_ort( # Apply the ORT pattern rewrite rules. rewrite(model, ORT_PATTERN_REWRITE_RULES) + if clear_metadata: + common_passes.ClearMetadataAndDocStringPass()(model) + passes = ir.passes.Sequential( # Apply the ORT optimization passes. # https://github.com/microsoft/onnxruntime/blob/74dcf7e296639095dfa55d31336998b6f719ed76/onnxruntime/python/tools/transformers/dynamo_onnx_helper.py#L172 - common_passes.ClearMetadataAndDocStringPass(), # https://github.com/microsoft/onnxruntime/blob/74dcf7e296639095dfa55d31336998b6f719ed76/onnxruntime/python/tools/transformers/dynamo_onnx_helper.py#L139 common_passes.LiftConstantsToInitializersPass(lift_all_constants=False, size_limit=1), common_passes.RemoveInitializersFromInputsPass(), From 8d6a4e557842353c6db34422cd1dae2650418fe9 Mon Sep 17 00:00:00 2001 From: Ganesan Ramalingam Date: Thu, 6 Nov 2025 16:18:50 -0800 Subject: [PATCH 2/2] Address PR feedback Signed-off-by: Ganesan Ramalingam --- onnxscript/rewriter/ort_fusions/_core.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/onnxscript/rewriter/ort_fusions/_core.py b/onnxscript/rewriter/ort_fusions/_core.py index 054ed7ee20..8280b1c39c 100644 --- a/onnxscript/rewriter/ort_fusions/_core.py +++ b/onnxscript/rewriter/ort_fusions/_core.py @@ -129,6 +129,7 @@ def optimize_for_ort( Typically it identifies the Execution Provider (EP) to optimize for. If None, the default configuration will be used. debug: If debug is True, enable pattern matching tracer for debugging. + clear_metadata: If True, clear metadata and doc strings from the model. Returns: A tuple containing: @@ -143,9 +144,6 @@ def optimize_for_ort( # Apply the ORT pattern rewrite rules. rewrite(model, ORT_PATTERN_REWRITE_RULES) - if clear_metadata: - common_passes.ClearMetadataAndDocStringPass()(model) - passes = ir.passes.Sequential( # Apply the ORT optimization passes. # https://github.com/microsoft/onnxruntime/blob/74dcf7e296639095dfa55d31336998b6f719ed76/onnxruntime/python/tools/transformers/dynamo_onnx_helper.py#L172 @@ -157,4 +155,8 @@ def optimize_for_ort( assert passes.in_place result = passes(model) assert result.model is model + + if clear_metadata: + common_passes.ClearMetadataAndDocStringPass()(model) + return model, fusion_count