From 8687c1f2581d059cd5b6a9502f89bd343566062a Mon Sep 17 00:00:00 2001 From: xaedes Date: Fri, 21 Apr 2023 17:25:21 +0200 Subject: [PATCH] llama : remember and restore kv cache data pointers (#1104) because their value is stored in buf and overwritten by memcpy --- llama.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/llama.cpp b/llama.cpp index 33ee4fbb5..0345b61c6 100644 --- a/llama.cpp +++ b/llama.cpp @@ -2092,7 +2092,11 @@ void llama_set_kv_cache( int n_token_count) { // Make sure we have the same kv cache setup LLAMA_ASSERT(ctx->model.kv_self.buf.size == n_size); + void * k_data = ctx->model.kv_self.k->data; // remember data pointers + void * v_data = ctx->model.kv_self.v->data; // because their value is stored in buf and overwritten by memcpy memcpy(ctx->model.kv_self.buf.addr, kv_cache, n_size); + ctx->model.kv_self.k->data = k_data; // restore correct data pointers + ctx->model.kv_self.v->data = v_data; ctx->model.kv_self.n = n_token_count; }