From cc06f1171ba61690992fcb7e15dd0beff30822ac Mon Sep 17 00:00:00 2001 From: Howard Su Date: Sat, 1 Jul 2023 22:37:26 +0800 Subject: [PATCH 1/2] Fix crash of test-tokenizer-0 under Debug build --- llama.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/llama.cpp b/llama.cpp index 049f73e4449cd..2820802fb7e10 100644 --- a/llama.cpp +++ b/llama.cpp @@ -165,8 +165,8 @@ struct llama_layer { }; struct llama_kv_cache { - struct ggml_tensor * k; - struct ggml_tensor * v; + struct ggml_tensor * k = NULL; + struct ggml_tensor * v = NULL; struct ggml_context * ctx = NULL; @@ -180,8 +180,12 @@ struct llama_kv_cache { } #ifdef GGML_USE_CUBLAS + if (k) { ggml_cuda_free_data(k); + } + if (v) { ggml_cuda_free_data(v); + } #endif // GGML_USE_CUBLAS } }; From a75ddde952c44f11cd2c03481ee4176729bd824d Mon Sep 17 00:00:00 2001 From: Howard Su Date: Mon, 3 Jul 2023 20:12:40 +0800 Subject: [PATCH 2/2] Change per comment --- ggml-cuda.cu | 2 +- llama.cpp | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index 4e0d3dbdea4d4..8c4ef84e672ff 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -2809,7 +2809,7 @@ void ggml_cuda_transform_tensor(void * data, struct ggml_tensor * tensor) { } void ggml_cuda_free_data(struct ggml_tensor * tensor) { - if (tensor->backend != GGML_BACKEND_GPU && tensor->backend != GGML_BACKEND_GPU_SPLIT) { + if (!tensor || (tensor->backend != GGML_BACKEND_GPU && tensor->backend != GGML_BACKEND_GPU_SPLIT) ) { return; } diff --git a/llama.cpp b/llama.cpp index 2820802fb7e10..93439624fee9d 100644 --- a/llama.cpp +++ b/llama.cpp @@ -180,12 +180,8 @@ struct llama_kv_cache { } #ifdef GGML_USE_CUBLAS - if (k) { ggml_cuda_free_data(k); - } - if (v) { ggml_cuda_free_data(v); - } #endif // GGML_USE_CUBLAS } };