From fc745a1ae5f3167548e53b9d0ca3960e45ab7a6c Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 19:19:38 -0800 Subject: [PATCH 01/13] remove unused API GgmlOvDecoder::get_output_names() --- ggml/src/ggml-openvino/ggml-decoder.cpp | 5 ----- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 9 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index b6886733ba1..75f781f5331 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -134,7 +134,6 @@ void GgmlOvDecoder::set_input_output(ggml_tensor * node, bool naive) { node_output = node->view_src; } - m_output_names.push_back(node_output_name); m_outputs[node_output_name] = node_output; current_node_info.node = node; @@ -789,10 +788,6 @@ ov::element::Type GgmlOvDecoder::get_output_type(const std::string & name) const return get_ov_type(m_outputs.at(name)); } -std::vector GgmlOvDecoder::get_output_names() const { - return m_output_names; -} - std::vector GgmlOvDecoder::get_output_names(int node_idx) const { return {m_node_info_list[node_idx].node_output_name}; } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 51f314f17cd..2050e1762d1 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -119,8 +119,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual int32_t * get_output_op_params(int node_idx) const override; - virtual std::vector get_output_names() const override; - virtual std::vector get_output_names(int node_idx) const override; virtual const std::string & get_op_type() const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 54fe890fd1a..e867af14160 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -51,8 +51,6 @@ class GgmlDecoder : public DecoderBase { virtual int32_t * get_output_op_params(int node_idx) const = 0; - virtual std::vector get_output_names() const = 0; - virtual std::vector get_output_names(int node_idx) const = 0; virtual const std::string& get_op_type() const = 0; From 1a95421180514dff651e4ff47a8c56c817cd068d Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 19:28:01 -0800 Subject: [PATCH 02/13] remove unused API get_output_shape(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 5 ----- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 9 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 75f781f5331..76553c1b973 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -774,11 +774,6 @@ std::vector GgmlOvDecoder::get_input_names(int node_idx) const { return m_node_info_list[node_idx].node_inputs_names; } -ov::PartialShape GgmlOvDecoder::get_output_shape(const std::string & name) const { - auto * ggml_tensor = m_outputs.at(name); - return ov::PartialShape(get_shape(ggml_tensor)); -} - ov::PartialShape GgmlOvDecoder::get_output_shape(int node_idx) const { auto * ggml_tensor = m_node_info_list[node_idx].node_output; return ov::PartialShape(get_shape(ggml_tensor)); diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 2050e1762d1..9b0d02c3ebe 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -105,8 +105,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual std::vector get_input_names(int node_idx) const override; - virtual ov::PartialShape get_output_shape(const std::string & name) const override; - virtual ov::PartialShape get_output_shape(int node_idx) const override; virtual ov::element::Type get_output_type(const std::string & name) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index e867af14160..a2ab8df6913 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -37,8 +37,6 @@ class GgmlDecoder : public DecoderBase { virtual std::vector get_input_names(int node_idx) const = 0; - virtual PartialShape get_output_shape(const std::string& name) const = 0; - virtual PartialShape get_output_shape(int node_idx) const = 0; virtual element::Type get_output_type(const std::string& name) const = 0; From f57a201ac618d37bedcf2c1c03d9ad9d3a54cd22 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:13:18 -0800 Subject: [PATCH 03/13] Modified API GgmlOvDecoder::get_output_type(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ++-- ggml/src/ggml-openvino/ggml-decoder.h | 2 +- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 +- ggml/src/ggml-openvino/openvino/node_context.hpp | 4 ++-- ggml/src/ggml-openvino/openvino/op/cpy.cpp | 2 +- ggml/src/ggml-openvino/openvino/op/get_rows.cpp | 4 ++-- ggml/src/ggml-openvino/openvino/op/set_rows.cpp | 2 +- ggml/src/ggml-openvino/openvino/op/softmax.cpp | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 76553c1b973..5f49a11e27d 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -779,8 +779,8 @@ ov::PartialShape GgmlOvDecoder::get_output_shape(int node_idx) const { return ov::PartialShape(get_shape(ggml_tensor)); } -ov::element::Type GgmlOvDecoder::get_output_type(const std::string & name) const { - return get_ov_type(m_outputs.at(name)); +ov::element::Type GgmlOvDecoder::get_output_type(const int node_idx) const { + return get_ov_type(m_node_info_list[node_idx].node); } std::vector GgmlOvDecoder::get_output_names(int node_idx) const { diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 9b0d02c3ebe..25ea9af7f3e 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -107,7 +107,7 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual ov::PartialShape get_output_shape(int node_idx) const override; - virtual ov::element::Type get_output_type(const std::string & name) const override; + virtual ov::element::Type get_output_type(const int node_idx) const override; virtual int32_t * get_input_op_params(const std::string & name) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index a2ab8df6913..da577852141 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -39,7 +39,7 @@ class GgmlDecoder : public DecoderBase { virtual PartialShape get_output_shape(int node_idx) const = 0; - virtual element::Type get_output_type(const std::string& name) const = 0; + virtual element::Type get_output_type(const int node_idx) const = 0; virtual int32_t* get_input_op_params(const std::string& name) const = 0; diff --git a/ggml/src/ggml-openvino/openvino/node_context.hpp b/ggml/src/ggml-openvino/openvino/node_context.hpp index 42d950c3eb4..3ca244b720b 100644 --- a/ggml/src/ggml-openvino/openvino/node_context.hpp +++ b/ggml/src/ggml-openvino/openvino/node_context.hpp @@ -61,8 +61,8 @@ class NodeContext : public frontend::NodeContext { int32_t * get_output_op_params() const { return m_decoder->get_output_op_params(m_node_idx); } - ov::element::Type get_output_type(size_t index) const { - return m_decoder->get_output_type(m_output_names[index]); + ov::element::Type get_output_type() const { + return m_decoder->get_output_type(m_node_idx); } Output get_input(int idx) const override { diff --git a/ggml/src/ggml-openvino/openvino/op/cpy.cpp b/ggml/src/ggml-openvino/openvino/op/cpy.cpp index d5186cddee7..ded2f0ca788 100644 --- a/ggml/src/ggml-openvino/openvino/op/cpy.cpp +++ b/ggml/src/ggml-openvino/openvino/op/cpy.cpp @@ -11,7 +11,7 @@ namespace ggml { namespace op { OutputVector translate_cpy(const NodeContext & context) { - auto res = std::make_shared(context.get_input(0), context.get_output_type(0)); + auto res = std::make_shared(context.get_input(0), context.get_output_type()); return rename_outputs_with_suffix({res}, context.get_name()); } diff --git a/ggml/src/ggml-openvino/openvino/op/get_rows.cpp b/ggml/src/ggml-openvino/openvino/op/get_rows.cpp index ace79c33a9b..dc8454a1998 100644 --- a/ggml/src/ggml-openvino/openvino/op/get_rows.cpp +++ b/ggml/src/ggml-openvino/openvino/op/get_rows.cpp @@ -42,8 +42,8 @@ OutputVector translate_get_rows(const NodeContext & context) { res = std::make_shared(data, indices, axis); } - if (res.get_element_type() != context.get_output_type(0)) { - res = std::make_shared(res, context.get_output_type(0)); + if (res.get_element_type() != context.get_output_type()) { + res = std::make_shared(res, context.get_output_type()); } res = std::make_shared(res, ov::op::v0::Constant::create(ov::element::i64, {1}, {0})); return rename_outputs_with_suffix({res}, context.get_name()); diff --git a/ggml/src/ggml-openvino/openvino/op/set_rows.cpp b/ggml/src/ggml-openvino/openvino/op/set_rows.cpp index eb128f04a36..4ceb55589ea 100644 --- a/ggml/src/ggml-openvino/openvino/op/set_rows.cpp +++ b/ggml/src/ggml-openvino/openvino/op/set_rows.cpp @@ -32,7 +32,7 @@ OutputVector translate_set_rows(const NodeContext & context) { auto indices = context.get_input(1); auto dst = context.get_input(2); - data = std::make_shared(data, context.get_output_type(0)); + data = std::make_shared(data, context.get_output_type()); auto dst_shape = context.get_output_shape().to_shape(); diff --git a/ggml/src/ggml-openvino/openvino/op/softmax.cpp b/ggml/src/ggml-openvino/openvino/op/softmax.cpp index 921475e51ae..782fdf078d7 100644 --- a/ggml/src/ggml-openvino/openvino/op/softmax.cpp +++ b/ggml/src/ggml-openvino/openvino/op/softmax.cpp @@ -63,8 +63,8 @@ OutputVector translate_soft_max(const NodeContext & context) { mask_node_sliced = std::make_shared(mask_node, zero, token_len, one, one); } - if (mask_node_sliced.get_element_type() != context.get_output_type(0)) { - mask_node_sliced = std::make_shared(mask_node_sliced, context.get_output_type(0)); + if (mask_node_sliced.get_element_type() != context.get_output_type()) { + mask_node_sliced = std::make_shared(mask_node_sliced, context.get_output_type()); } Output slope_mask; From f67db9f81dc6f7d05f21fa56ff64a3e0bcbf9711 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:17:47 -0800 Subject: [PATCH 04/13] Removed API GgmlOvDecoder::get_output_op_params(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ---- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 8 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 5f49a11e27d..0259534561a 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -804,10 +804,6 @@ int32_t * GgmlOvDecoder::get_input_op_params(int node_idx, const std::string & n return m_node_info_list[node_idx].node_inputs.at(name)->op_params; } -int32_t * GgmlOvDecoder::get_output_op_params(const std::string & name) const { - return m_outputs.at(name)->op_params; -} - int32_t * GgmlOvDecoder::get_output_op_params(int node_idx) const { return m_node_info_list[node_idx].node->op_params; } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 25ea9af7f3e..c120ca2bde0 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -113,8 +113,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual int32_t * get_input_op_params(int node_idx, const std::string & name) const override; - virtual int32_t * get_output_op_params(const std::string & name) const override; - virtual int32_t * get_output_op_params(int node_idx) const override; virtual std::vector get_output_names(int node_idx) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index da577852141..520a1c211cb 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -45,8 +45,6 @@ class GgmlDecoder : public DecoderBase { virtual int32_t* get_input_op_params(int node_idx, const std::string& name) const = 0; - virtual int32_t* get_output_op_params(const std::string& name) const = 0; - virtual int32_t * get_output_op_params(int node_idx) const = 0; virtual std::vector get_output_names(int node_idx) const = 0; From 3f16acc6f7f1e1786c5b1d6bdafd7938cee9f3ac Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:21:18 -0800 Subject: [PATCH 05/13] Removed API get_output_ggml_tensor(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index c120ca2bde0..2b224d77e6c 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -129,8 +129,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { ggml_tensor * get_input_ggml_tensor(const std::string & name) const { return m_inputs.at(name); } - ggml_tensor * get_output_ggml_tensor(const std::string & name) const { return m_outputs.at(name); } - virtual int get_op_case(int node_idx) const override { return m_node_info_list[node_idx].node_op_case; } virtual const std::map> & get_model_inputs() const override { From 51ed15a7f3c339f5a8e64f26d267ec83ab54a2ba Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:25:55 -0800 Subject: [PATCH 06/13] Removed API m_outputs --- ggml/src/ggml-openvino/ggml-decoder.cpp | 2 -- ggml/src/ggml-openvino/ggml-decoder.h | 1 - 2 files changed, 3 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 0259534561a..0f48552e954 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -134,8 +134,6 @@ void GgmlOvDecoder::set_input_output(ggml_tensor * node, bool naive) { node_output = node->view_src; } - m_outputs[node_output_name] = node_output; - current_node_info.node = node; current_node_info.node_name = node_name; current_node_info.node_output = node_output; diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 2b224d77e6c..f667392f7dc 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -230,7 +230,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { std::vector m_nodes; std::map m_inputs; std::vector m_input_names; - std::map m_outputs; std::vector m_output_names; std::map> m_model_inputs; From 37310aecb2a31c857c6c4904db5dcf903941aaad Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:27:23 -0800 Subject: [PATCH 07/13] Removed m_output_names --- ggml/src/ggml-openvino/ggml-decoder.h | 1 - 1 file changed, 1 deletion(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index f667392f7dc..a5173748292 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -230,7 +230,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { std::vector m_nodes; std::map m_inputs; std::vector m_input_names; - std::vector m_output_names; std::map> m_model_inputs; std::map> m_model_extra_inputs; From e5a97eddfb71f25b84933fb22709e0f644edc920 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Wed, 3 Dec 2025 23:54:55 -0800 Subject: [PATCH 08/13] Removed API GgmlOvDecoder::get_input_names() --- ggml/src/ggml-openvino/ggml-decoder.cpp | 7 +------ ggml/src/ggml-openvino/ggml-decoder.h | 3 --- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- ggml/src/ggml-openvino/openvino/node_context.hpp | 4 ++-- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 0f48552e954..eb148349961 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -147,7 +147,6 @@ void GgmlOvDecoder::set_input_output(ggml_tensor * node, bool naive) { continue; } std::string src_name = std::string(src->name); - m_input_names.push_back(src_name); m_inputs[src_name] = src; current_node_info.node_inputs[src_name] = src; current_node_info.node_inputs_names.push_back(src_name); @@ -757,17 +756,13 @@ ov::element::Type GgmlOvDecoder::get_input_type(const std::string & name) const } size_t GgmlOvDecoder::get_input_size() const { - return m_input_names.size(); + return m_model_inputs.size(); } size_t GgmlOvDecoder::get_input_size(int node_idx) const { return m_node_info_list[node_idx].node_inputs_names.size(); } -std::vector GgmlOvDecoder::get_input_names() const { - return m_input_names; -} - std::vector GgmlOvDecoder::get_input_names(int node_idx) const { return m_node_info_list[node_idx].node_inputs_names; } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index a5173748292..5608b7c914e 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -101,8 +101,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { GGML_UNUSED(producer_output_port_index); } - virtual std::vector get_input_names() const override; - virtual std::vector get_input_names(int node_idx) const override; virtual ov::PartialShape get_output_shape(int node_idx) const override; @@ -229,7 +227,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { ggml_cgraph * m_cgraph = nullptr; std::vector m_nodes; std::map m_inputs; - std::vector m_input_names; std::map> m_model_inputs; std::map> m_model_extra_inputs; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 520a1c211cb..0949f7073fb 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -33,8 +33,6 @@ class GgmlDecoder : public DecoderBase { std::string& producer_output_port_name, size_t& producer_output_port_index) const = 0; - virtual std::vector get_input_names() const = 0; - virtual std::vector get_input_names(int node_idx) const = 0; virtual PartialShape get_output_shape(int node_idx) const = 0; diff --git a/ggml/src/ggml-openvino/openvino/node_context.hpp b/ggml/src/ggml-openvino/openvino/node_context.hpp index 3ca244b720b..e95bafc2694 100644 --- a/ggml/src/ggml-openvino/openvino/node_context.hpp +++ b/ggml/src/ggml-openvino/openvino/node_context.hpp @@ -43,8 +43,8 @@ class NodeContext : public frontend::NodeContext { return m_decoder->get_input_type(m_input_names[index]); } - PartialShape get_input_shape(size_t index) const { - return m_decoder->get_input_shape(m_node_idx, m_input_names[index]); + PartialShape get_input_shape(size_t input_index) const { + return m_decoder->get_input_shape(m_node_idx, m_input_names[input_index]); } std::vector get_input_stride(size_t index) const { From 0b74194cded44cccfa5766824f4afd5e7720e641 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Thu, 4 Dec 2025 00:18:14 -0800 Subject: [PATCH 09/13] Removed API GgmlOvDecoder::get_input_stride(const std::string& name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ---- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 8 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index eb148349961..2d96bf15724 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -743,10 +743,6 @@ ov::PartialShape GgmlOvDecoder::get_input_shape(int node_idx, const std::string return ov::PartialShape(get_shape(m_node_info_list[node_idx].node_inputs.at(name))); } -std::vector GgmlOvDecoder::get_input_stride(const std::string & name) const { - return get_stride(m_inputs.at(name)); -} - std::vector GgmlOvDecoder::get_input_stride(int node_idx, const std::string & name) const { return get_stride(m_node_info_list[node_idx].node_inputs.at(name)); } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 5608b7c914e..336833d8afd 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -81,8 +81,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual ov::PartialShape get_input_shape(int node_idx, const std::string & name) const override; - virtual std::vector get_input_stride(const std::string & name) const override; - virtual std::vector get_input_stride(int node_idx, const std::string & name) const override; virtual ov::element::Type get_input_type(const std::string & name) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 0949f7073fb..2cc6dbba46a 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -18,8 +18,6 @@ class GgmlDecoder : public DecoderBase { virtual PartialShape get_input_shape(int node_idx, const std::string& name) const = 0; - virtual std::vector get_input_stride(const std::string& name) const = 0; - virtual std::vector get_input_stride(int node_idx, const std::string& name) const = 0; virtual element::Type get_input_type(const std::string& name) const = 0; From 412f583fbb8790ea764921743eabd5cb4ee946b4 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Thu, 4 Dec 2025 06:10:44 -0800 Subject: [PATCH 10/13] Removed API get_input_type --- ggml/src/ggml-openvino/ggml-decoder.cpp | 6 +++++- ggml/src/ggml-openvino/ggml-decoder.h | 2 ++ ggml/src/ggml-openvino/openvino/decoder.hpp | 2 ++ ggml/src/ggml-openvino/openvino/node_context.hpp | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 2d96bf15724..97bd9385671 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -147,7 +147,6 @@ void GgmlOvDecoder::set_input_output(ggml_tensor * node, bool naive) { continue; } std::string src_name = std::string(src->name); - m_inputs[src_name] = src; current_node_info.node_inputs[src_name] = src; current_node_info.node_inputs_names.push_back(src_name); @@ -163,6 +162,7 @@ void GgmlOvDecoder::set_input_output(ggml_tensor * node, bool naive) { if (m_model_inputs.find(src_name) != m_model_inputs.end()) { continue; } + m_inputs[src_name] = src; auto param_node = std::make_shared(get_ov_type(src), get_graph_input_shape(node, src)); param_node->set_friendly_name(src_name); @@ -751,6 +751,10 @@ ov::element::Type GgmlOvDecoder::get_input_type(const std::string & name) const return get_ov_type(m_inputs.at(name)); } +ov::element::Type GgmlOvDecoder::get_input_type(int node_idx, const std::string & name) const { + return get_ov_type(m_node_info_list[node_idx].node_inputs.at(name)); +} + size_t GgmlOvDecoder::get_input_size() const { return m_model_inputs.size(); } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 336833d8afd..c76315f8af6 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -85,6 +85,8 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual ov::element::Type get_input_type(const std::string & name) const override; + virtual ov::element::Type get_input_type(int node_idx, const std::string & name) const override; + virtual size_t get_input_size() const override; virtual size_t get_input_size(int node_idx) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 2cc6dbba46a..ef4b3a75936 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -22,6 +22,8 @@ class GgmlDecoder : public DecoderBase { virtual element::Type get_input_type(const std::string& name) const = 0; + virtual element::Type get_input_type(int node_idx, const std::string& name) const = 0; + virtual size_t get_input_size() const = 0; virtual size_t get_input_size(int node_idx) const = 0; diff --git a/ggml/src/ggml-openvino/openvino/node_context.hpp b/ggml/src/ggml-openvino/openvino/node_context.hpp index e95bafc2694..a0666b21ac3 100644 --- a/ggml/src/ggml-openvino/openvino/node_context.hpp +++ b/ggml/src/ggml-openvino/openvino/node_context.hpp @@ -40,7 +40,7 @@ class NodeContext : public frontend::NodeContext { } ov::element::Type get_input_type(size_t index) const { - return m_decoder->get_input_type(m_input_names[index]); + return m_decoder->get_input_type(m_node_idx, m_input_names[index]); } PartialShape get_input_shape(size_t input_index) const { From 2867263d08806b16d820c0de22ac3c746309fc76 Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Thu, 4 Dec 2025 06:24:38 -0800 Subject: [PATCH 11/13] Removed API get_input_type --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ---- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- ggml/src/ggml-openvino/utils.cpp | 12 ++++++------ 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 97bd9385671..95d7fc00f48 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -747,10 +747,6 @@ std::vector GgmlOvDecoder::get_input_stride(int node_idx, const std::str return get_stride(m_node_info_list[node_idx].node_inputs.at(name)); } -ov::element::Type GgmlOvDecoder::get_input_type(const std::string & name) const { - return get_ov_type(m_inputs.at(name)); -} - ov::element::Type GgmlOvDecoder::get_input_type(int node_idx, const std::string & name) const { return get_ov_type(m_node_info_list[node_idx].node_inputs.at(name)); } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index c76315f8af6..3b6c1ec8e30 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -83,8 +83,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual std::vector get_input_stride(int node_idx, const std::string & name) const override; - virtual ov::element::Type get_input_type(const std::string & name) const override; - virtual ov::element::Type get_input_type(int node_idx, const std::string & name) const override; virtual size_t get_input_size() const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index ef4b3a75936..8f6a9e9cb22 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -20,8 +20,6 @@ class GgmlDecoder : public DecoderBase { virtual std::vector get_input_stride(int node_idx, const std::string& name) const = 0; - virtual element::Type get_input_type(const std::string& name) const = 0; - virtual element::Type get_input_type(int node_idx, const std::string& name) const = 0; virtual size_t get_input_size() const = 0; diff --git a/ggml/src/ggml-openvino/utils.cpp b/ggml/src/ggml-openvino/utils.cpp index 8ce50c332a4..f52b2cb07c3 100644 --- a/ggml/src/ggml-openvino/utils.cpp +++ b/ggml/src/ggml-openvino/utils.cpp @@ -480,9 +480,9 @@ ov::Tensor convert_ggml_input_to_ov(std::shared_ptr ggml_decoder, // This case is added to make test-backend-ops work input_shape = ggml_decoder->get_shape(ggml_tensor->view_src); } else { - input_shape = ggml_decoder->get_input_shape(name).to_shape(); + input_shape = ggml_decoder->get_shape(ggml_tensor); } - auto input_tensor = ov::Tensor(ggml_decoder->get_input_type(name), input_shape, input_data); + auto input_tensor = ov::Tensor(ggml_decoder->get_ov_type(ggml_tensor), input_shape, input_data); return input_tensor; } } // namespace @@ -506,7 +506,7 @@ ov::Tensor get_ov_input_tensor_static_decode(std::shared_ptr ggml (op->op == GGML_OP_SET_ROWS && op->src[1] == ggml_tensor)) { assert(ggml_tensor->ne[0] == 1); ov::Shape input_shape = {1, 1, 1, 1}; - ov::Tensor input_tensor(ggml_decoder->get_input_type(param_name), input_shape); + ov::Tensor input_tensor(ggml_decoder->get_ov_type(ggml_tensor), input_shape); if (ggml_tensor->type == GGML_TYPE_I32) { *input_tensor.data() = *((int32_t *) ggml_tensor->data); } else if (ggml_tensor->type == GGML_TYPE_I64) { @@ -519,7 +519,7 @@ ov::Tensor get_ov_input_tensor_static_decode(std::shared_ptr ggml if (param_name == "inp_out_ids") { ov::Shape input_shape = {1, 1, 1, 1}; - ov::Tensor input_tensor(ggml_decoder->get_input_type(param_name), input_shape); + ov::Tensor input_tensor(ggml_decoder->get_ov_type(ggml_tensor), input_shape); int32_t inp_out_id = *((int32_t *) ggml_tensor->data); assert(ggml_tensor->ne[0] == 1); assert(inp_out_id == 0); @@ -553,7 +553,7 @@ ov::Tensor get_ov_input_tensor_static_prefill(std::shared_ptr ggm if (param_name == "inp_pos" || param_name == "inp_tokens" || (op->op == GGML_OP_SET_ROWS && op->src[1] == ggml_tensor)) { ov::Shape input_shape = {1, 1, 1, chunk_size}; - ov::Tensor input_tensor(ggml_decoder->get_input_type(param_name), input_shape); + ov::Tensor input_tensor(ggml_decoder->get_ov_type(ggml_tensor), input_shape); // copy the chunk_index-th chunk from ggml_tensor size_t element_size = ggml_type_size(ggml_tensor->type); void * input_data = (char *) ggml_tensor->data + chunk_index * chunk_size * element_size; @@ -581,7 +581,7 @@ ov::Tensor get_ov_input_tensor_static_prefill(std::shared_ptr ggm if (param_name == "inp_out_ids") { size_t output_len = ggml_decoder->get_compute_params().output_len; ov::Shape input_shape = {1, 1, 1, output_len}; - ov::Tensor input_tensor(ggml_decoder->get_input_type(param_name), input_shape); + ov::Tensor input_tensor(ggml_decoder->get_ov_type(ggml_tensor), input_shape); if (ggml_tensor->ne[0] == 0) { *input_tensor.data() = 0; } else { From eb1f4ab48a644e81d18637dfbfdde97193e87eaf Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Thu, 4 Dec 2025 06:28:21 -0800 Subject: [PATCH 12/13] Removed API GgmlOvDecoder::get_input_shape(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ---- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 8 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index 95d7fc00f48..b38a9a67a6b 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -735,10 +735,6 @@ ov::element::Type GgmlOvDecoder::get_ov_type(const ggml_tensor * tensor) { } } -ov::PartialShape GgmlOvDecoder::get_input_shape(const std::string & name) const { - return ov::PartialShape(get_shape(m_inputs.at(name))); -} - ov::PartialShape GgmlOvDecoder::get_input_shape(int node_idx, const std::string & name) const { return ov::PartialShape(get_shape(m_node_info_list[node_idx].node_inputs.at(name))); } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 3b6c1ec8e30..8f9dab0ae7d 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -77,8 +77,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { GGML_UNUSED(name); } - virtual ov::PartialShape get_input_shape(const std::string & name) const override; - virtual ov::PartialShape get_input_shape(int node_idx, const std::string & name) const override; virtual std::vector get_input_stride(int node_idx, const std::string & name) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 8f6a9e9cb22..61d5f11d2cc 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -14,8 +14,6 @@ class GgmlDecoder : public DecoderBase { public: virtual ov::Any get_attribute(const std::string& name) const = 0; - virtual PartialShape get_input_shape(const std::string& name) const = 0; - virtual PartialShape get_input_shape(int node_idx, const std::string& name) const = 0; virtual std::vector get_input_stride(int node_idx, const std::string& name) const = 0; From 3ec3b60b2519b85bc1b189aebeecd2b80e3473fb Mon Sep 17 00:00:00 2001 From: Xuejun Zhai Date: Thu, 4 Dec 2025 06:56:39 -0800 Subject: [PATCH 13/13] Removed API GgmlOvDecoder::get_input_op_params(const std::string & name) --- ggml/src/ggml-openvino/ggml-decoder.cpp | 4 ---- ggml/src/ggml-openvino/ggml-decoder.h | 2 -- ggml/src/ggml-openvino/openvino/decoder.hpp | 2 -- 3 files changed, 8 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index b38a9a67a6b..72f6144708a 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -781,10 +781,6 @@ const std::string & GgmlOvDecoder::get_op_name(int node_idx) const { return m_node_info_list[node_idx].node_name; } -int32_t * GgmlOvDecoder::get_input_op_params(const std::string & name) const { - return m_inputs.at(name)->op_params; -} - int32_t * GgmlOvDecoder::get_input_op_params(int node_idx, const std::string & name) const { return m_node_info_list[node_idx].node_inputs.at(name)->op_params; } diff --git a/ggml/src/ggml-openvino/ggml-decoder.h b/ggml/src/ggml-openvino/ggml-decoder.h index 8f9dab0ae7d..1e51a7e1a8d 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.h +++ b/ggml/src/ggml-openvino/ggml-decoder.h @@ -103,8 +103,6 @@ class GgmlOvDecoder : public ov::frontend::ggml::GgmlDecoder { virtual ov::element::Type get_output_type(const int node_idx) const override; - virtual int32_t * get_input_op_params(const std::string & name) const override; - virtual int32_t * get_input_op_params(int node_idx, const std::string & name) const override; virtual int32_t * get_output_op_params(int node_idx) const override; diff --git a/ggml/src/ggml-openvino/openvino/decoder.hpp b/ggml/src/ggml-openvino/openvino/decoder.hpp index 61d5f11d2cc..1603c7fd201 100644 --- a/ggml/src/ggml-openvino/openvino/decoder.hpp +++ b/ggml/src/ggml-openvino/openvino/decoder.hpp @@ -35,8 +35,6 @@ class GgmlDecoder : public DecoderBase { virtual element::Type get_output_type(const int node_idx) const = 0; - virtual int32_t* get_input_op_params(const std::string& name) const = 0; - virtual int32_t* get_input_op_params(int node_idx, const std::string& name) const = 0; virtual int32_t * get_output_op_params(int node_idx) const = 0;