From 71731f13d1762be2477990b2b62db7f6cd1179fb Mon Sep 17 00:00:00 2001 From: "Yu, Zijun" Date: Thu, 21 May 2026 16:33:46 +0800 Subject: [PATCH] add concat ssm_conv in compute_dynamic_dim --- ggml/src/ggml-openvino/ggml-decoder.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/ggml/src/ggml-openvino/ggml-decoder.cpp b/ggml/src/ggml-openvino/ggml-decoder.cpp index d005b40458f..fa3dea938c1 100644 --- a/ggml/src/ggml-openvino/ggml-decoder.cpp +++ b/ggml/src/ggml-openvino/ggml-decoder.cpp @@ -1457,8 +1457,8 @@ void GgmlOvDecoder::compute_node_dynamic_dims() { } if (m_node_dynamic_dims[node] != -1 && dynamic_dim_value != node->ne[m_node_dynamic_dims[node]]) { m_node_dynamic_dims[node] = -1; - std::cout << "Warning: Dynamic dim value mismatch for node: " << node->name - << " and its src[0]: " << node->src[0]->name << std::endl; + GGML_LOG_WARN("ggml-openvino: dynamic dim value mismatch for VIEW node '%s', src[0]: '%s'\n", + node->name, node->src[0]->name); } } break; @@ -1482,7 +1482,7 @@ void GgmlOvDecoder::compute_node_dynamic_dims() { } } if (m_node_dynamic_dims[node] == -1) { - std::cout << "Cannot determine dynamic dim for RESHAPE node: " << node->name << std::endl; + GGML_LOG_WARN("ggml-openvino: cannot determine dynamic dim for RESHAPE node '%s'\n", node->name); } } break; @@ -1535,13 +1535,25 @@ void GgmlOvDecoder::compute_node_dynamic_dims() { } if (matched_dim_count != 1) { m_node_dynamic_dims[node] = -1; - std::cout << "Warning: Cannot determine dynamic dim for CONT node: " << node->name - << " and its src[0]: " << node->src[0]->name << std::endl; + GGML_LOG_WARN("ggml-openvino: cannot determine dynamic dim for CONT node '%s', src[0]: '%s'\n", + node->name, node->src[0]->name); } } } break; + case GGML_OP_CONCAT: + for (int i = 0; i < GGML_MAX_DIMS; i++) { + if (node->src[0]->ne[i] != node->ne[i]) { + m_node_dynamic_dims[node] = i; + break; + } + } + break; + case GGML_OP_SSM_CONV: + m_node_dynamic_dims[node] = 1; + break; case GGML_OP_RMS_NORM: + case GGML_OP_L2_NORM: case GGML_OP_NORM: case GGML_OP_ADD: case GGML_OP_GLU: @@ -1561,7 +1573,8 @@ void GgmlOvDecoder::compute_node_dynamic_dims() { m_node_dynamic_dims[node] = -1; break; default: - std::cout << "Doesn't handle node name: " << node->name << " op: " << ggml_op_name(node->op) << std::endl; + GGML_LOG_DEBUG("ggml-openvino: compute_node_dynamic_dims: unhandled op %s for node '%s'\n", + ggml_op_name(node->op), node->name); break; } };