From 2ee4d5fe2f6424602bfe87e9852abc5a7414c8ee Mon Sep 17 00:00:00 2001 From: Aaron Teo Date: Sat, 20 Dec 2025 14:03:24 +0800 Subject: [PATCH] ggml-blas: fix graph realloc Signed-off-by: Aaron Teo --- ggml/src/ggml-blas/ggml-blas.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-blas/ggml-blas.cpp b/ggml/src/ggml-blas/ggml-blas.cpp index 13a3058fee..df73040b1a 100644 --- a/ggml/src/ggml-blas/ggml-blas.cpp +++ b/ggml/src/ggml-blas/ggml-blas.cpp @@ -215,6 +215,17 @@ static void ggml_backend_blas_buffer_clear( memset(ctx->data, value, ctx->size); } +static void ggml_backend_blas_buffer_reset(ggml_backend_buffer_t buffer) { + GGML_ASSERT(buffer); + + ggml_backend_blas_buffer_context * ctx = (ggml_backend_blas_buffer_context *)buffer->context; + for (auto * extra : ctx->buffers) { + ggml_aligned_free(extra->data, extra->size); + delete extra; + } + ctx->buffers.clear(); +} + static const ggml_backend_buffer_i ggml_backend_blas_buffer_i = { /* .free_buffer = */ ggml_backend_blas_buffer_free_buffer, /* .get_base = */ ggml_backend_blas_buffer_get_base, @@ -224,7 +235,7 @@ static const ggml_backend_buffer_i ggml_backend_blas_buffer_i = { /* .get_tensor = */ ggml_backend_blas_buffer_get_tensor, /* .cpy_tensor = */ NULL, /* .clear = */ ggml_backend_blas_buffer_clear, - /* .reset = */ NULL, + /* .reset = */ ggml_backend_blas_buffer_reset, }; // BLAS backend buffer type