From 479b319f2c19189a74eca6ab300d36f9ceff50b7 Mon Sep 17 00:00:00 2001 From: RajeevSekar Date: Mon, 27 Oct 2025 11:04:43 +0530 Subject: [PATCH 1/5] added a line to add initializers to be a part of meta_def -> inputs --- onnxruntime/core/providers/openvino/ov_versions/capability.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/onnxruntime/core/providers/openvino/ov_versions/capability.cc b/onnxruntime/core/providers/openvino/ov_versions/capability.cc index 1893700cab09c..e101831510493 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/capability.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/capability.cc @@ -127,6 +127,9 @@ std::vector> GetCapability::Execute() { } } + // Initializers need to be part of meta_def->inputs + Iterable2String(inputs, ng_required_initializers); + // Fill outputs with names Iterable2String(outputs, graph_viewer_.GetOutputs()); From 9406cafc319637f9dbae0d60706a2098ec2d3950 Mon Sep 17 00:00:00 2001 From: RajeevSekar Date: Mon, 27 Oct 2025 13:02:18 +0530 Subject: [PATCH 2/5] fixed possible array index out of bound problem which caused some models to fail rather than getting sg partitioned --- .../core/providers/openvino/ov_versions/capability.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/onnxruntime/core/providers/openvino/ov_versions/capability.cc b/onnxruntime/core/providers/openvino/ov_versions/capability.cc index e101831510493..5207067fa361c 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/capability.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/capability.cc @@ -127,9 +127,6 @@ std::vector> GetCapability::Execute() { } } - // Initializers need to be part of meta_def->inputs - Iterable2String(inputs, ng_required_initializers); - // Fill outputs with names Iterable2String(outputs, graph_viewer_.GetOutputs()); @@ -184,6 +181,9 @@ std::vector> GetCapability::Execute() { bool append_node = false; while (j < total_clusters && !append_node) { j = j + 1; + if (j >= total_clusters) { + break; + } append_node = AddTrivialClusterToNextClusterIfConnected(graph_viewer_, index, connected_clusters[j]); } if (append_node) { From 154d895950237a4cebc4b1916de457549e5315cd Mon Sep 17 00:00:00 2001 From: RajeevSekar Date: Tue, 28 Oct 2025 17:20:31 +0530 Subject: [PATCH 3/5] changed loop logic --- .../core/providers/openvino/ov_versions/capability.cc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/onnxruntime/core/providers/openvino/ov_versions/capability.cc b/onnxruntime/core/providers/openvino/ov_versions/capability.cc index 5207067fa361c..08f2c2261f81f 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/capability.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/capability.cc @@ -179,11 +179,7 @@ std::vector> GetCapability::Execute() { omit_subgraph = false; } else if (j < total_clusters - 1) { bool append_node = false; - while (j < total_clusters && !append_node) { - j = j + 1; - if (j >= total_clusters) { - break; - } + while (++j < total_clusters && !append_node) { append_node = AddTrivialClusterToNextClusterIfConnected(graph_viewer_, index, connected_clusters[j]); } if (append_node) { From b04746f08615dd8fdf7abcd54b8e009866e55593 Mon Sep 17 00:00:00 2001 From: RajeevSekar Date: Mon, 3 Nov 2025 13:38:29 +0530 Subject: [PATCH 4/5] reverting to the previous logic to ensure j value is retained and not incremented if append_node == true --- .../core/providers/openvino/ov_versions/capability.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/onnxruntime/core/providers/openvino/ov_versions/capability.cc b/onnxruntime/core/providers/openvino/ov_versions/capability.cc index 08f2c2261f81f..5207067fa361c 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/capability.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/capability.cc @@ -179,7 +179,11 @@ std::vector> GetCapability::Execute() { omit_subgraph = false; } else if (j < total_clusters - 1) { bool append_node = false; - while (++j < total_clusters && !append_node) { + while (j < total_clusters && !append_node) { + j = j + 1; + if (j >= total_clusters) { + break; + } append_node = AddTrivialClusterToNextClusterIfConnected(graph_viewer_, index, connected_clusters[j]); } if (append_node) { From b24d8740226b829662f6183eaf6b38b5b23f2024 Mon Sep 17 00:00:00 2001 From: RajeevSekar Date: Wed, 12 Nov 2025 20:28:43 +0530 Subject: [PATCH 5/5] updated loop logic --- .../core/providers/openvino/ov_versions/capability.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/onnxruntime/core/providers/openvino/ov_versions/capability.cc b/onnxruntime/core/providers/openvino/ov_versions/capability.cc index 5207067fa361c..16d3f1a1d9c03 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/capability.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/capability.cc @@ -179,11 +179,8 @@ std::vector> GetCapability::Execute() { omit_subgraph = false; } else if (j < total_clusters - 1) { bool append_node = false; - while (j < total_clusters && !append_node) { + while (j < total_clusters - 1 && !append_node) { j = j + 1; - if (j >= total_clusters) { - break; - } append_node = AddTrivialClusterToNextClusterIfConnected(graph_viewer_, index, connected_clusters[j]); } if (append_node) {