05-fix-clip-free.diff 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. From 9192432daf90b1bfec75577434a99b4ea70d54c8 Mon Sep 17 00:00:00 2001
  2. From: Michael Yang <mxyng@pm.me>
  3. Date: Thu, 14 Mar 2024 12:09:50 -0700
  4. Subject: [PATCH] fix clip free
  5. ---
  6. examples/llava/clip.cpp | 4 ++++
  7. examples/server/server.cpp | 6 ++++++
  8. 2 files changed, 10 insertions(+)
  9. diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp
  10. index ef9e4ba7..b4ddfe6b 100644
  11. --- a/examples/llava/clip.cpp
  12. +++ b/examples/llava/clip.cpp
  13. @@ -1673,6 +1673,10 @@ void clip_free(clip_ctx * ctx) {
  14. ggml_free(ctx->ctx_data);
  15. gguf_free(ctx->ctx_gguf);
  16. + ggml_backend_buffer_free(ctx->params_buffer);
  17. + ggml_backend_buffer_free(ctx->compute_buffer);
  18. + ggml_backend_free(ctx->backend);
  19. + ggml_gallocr_free(ctx->compute_alloc);
  20. delete ctx;
  21. }
  22. diff --git a/examples/server/server.cpp b/examples/server/server.cpp
  23. index 8fe5e0b1..f927336b 100644
  24. --- a/examples/server/server.cpp
  25. +++ b/examples/server/server.cpp
  26. @@ -353,6 +353,12 @@ struct llama_server_context
  27. ~llama_server_context()
  28. {
  29. + if (clp_ctx)
  30. + {
  31. + LOG_INFO("freeing clip model", {});
  32. + clip_free(clp_ctx);
  33. + clp_ctx = nullptr;
  34. + }
  35. if (ctx)
  36. {
  37. llama_free(ctx);
  38. --
  39. 2.43.2