]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
retrieval : fix memory leak in retrieval query handling (#8955)
authorgtygo <redacted>
Thu, 15 Aug 2024 07:40:12 +0000 (15:40 +0800)
committerGitHub <redacted>
Thu, 15 Aug 2024 07:40:12 +0000 (10:40 +0300)
* retrieval

* Reuse querybatch to reduce frequent memory allocation

* delete unused white space

examples/retrieval/retrieval.cpp

index 65b19ce71cbe3e4f75062d3a19c24a9c8f8fcdfd..aab9d81058af93b423d228d953d6353313a2c041 100644 (file)
@@ -253,6 +253,8 @@ int main(int argc, char ** argv) {
         chunks[i].tokens.clear();
     }
 
+    struct llama_batch query_batch = llama_batch_init(n_batch, 0, 1);
+
     // start loop, receive query and return top k similar chunks based on cosine similarity
     std::string query;
     while (true) {
@@ -260,7 +262,6 @@ int main(int argc, char ** argv) {
         std::getline(std::cin, query);
         std::vector<int32_t> query_tokens = llama_tokenize(ctx, query, true);
 
-        struct llama_batch query_batch = llama_batch_init(n_batch, 0, 1);
         batch_add_seq(query_batch, query_tokens, 0);
 
         std::vector<float> query_emb(n_embd, 0);
@@ -293,6 +294,7 @@ int main(int argc, char ** argv) {
     }
 
     // clean up
+    llama_batch_free(query_batch);
     llama_print_timings(ctx);
     llama_free(ctx);
     llama_free_model(model);