From bee7dd3020cd4916fbe8e3e1ae68cebd2a8f82ac Mon Sep 17 00:00:00 2001 From: Aaron Teo Date: Mon, 28 Jul 2025 15:55:42 +0800 Subject: [PATCH] ggml-zdnn: tighten memory usage, change string allocation Signed-off-by: Aaron Teo --- ggml/src/ggml-zdnn/ggml-zdnn-impl.h | 2 +- ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/ggml/src/ggml-zdnn/ggml-zdnn-impl.h b/ggml/src/ggml-zdnn/ggml-zdnn-impl.h index 7e4351fe0f..93c37254ca 100644 --- a/ggml/src/ggml-zdnn/ggml-zdnn-impl.h +++ b/ggml/src/ggml-zdnn/ggml-zdnn-impl.h @@ -59,13 +59,13 @@ typedef unsigned long long ulong64x2_t __attribute__((vector_size(16))); struct ggml_backend_zdnn_buffer { void * data; size_t size; + ggml_backend_zdnn_buffer * extra; // for bias etc. zdnn_tensor_desc pre_tfm_desc; zdnn_tensor_desc tfm_desc; zdnn_ztensor ztensor; char name[GGML_MAX_NAME]; - struct ggml_backend_zdnn_buffer * extra; // for bias etc. ggml_backend_zdnn_buffer() : extra(nullptr) {} }; diff --git a/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp b/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp index f1edfda88f..ab2fe4e67c 100644 --- a/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp +++ b/ggml/src/ggml-zdnn/ggml-zdnn-rewrite.cpp @@ -362,8 +362,7 @@ static enum ggml_status ggml_backend_zdnn_buffer_init_tensor(ggml_backend_buffer tensor_buffer = &ctx->buffers[tensor_buffer_idx]; tensor_buffer->data = tensor->data; tensor_buffer->size = tsize; - strncpy(tensor_buffer->name, tensor->name, sizeof(tensor_buffer->name) - 1); - tensor_buffer->name[sizeof(tensor_buffer->name) - 1] = '\0'; + snprintf(tensor_buffer->name, sizeof(tensor_buffer->name), "%s", tensor->name); ggml_zdnn_init_tensor(tensor_buffer, tensor); ctx->n_buffers++; @@ -374,8 +373,7 @@ static enum ggml_status ggml_backend_zdnn_buffer_init_tensor(ggml_backend_buffer bias_buffer = &ctx->buffers[bias_buffer_idx]; bias_buffer->data = calloc(tensor->ne[0], tensor->ne[0] * sizeof(float)); bias_buffer->size = tensor->ne[0] * sizeof(float); - strncpy(bias_buffer->name, "bias", sizeof(bias_buffer->name) - 1); - bias_buffer->name[sizeof(bias_buffer->name) - 1] = '\0'; + snprintf(bias_buffer->name, sizeof(bias_buffer->name), "%s.bias", tensor->name); ggml_zdnn_init_bias_tensor(bias_buffer, tensor); ctx->n_buffers++;