summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorslaren <slarengh@gmail.com>2024-04-25 17:59:03 +0200
committerGitHub <noreply@github.com>2024-04-25 17:59:03 +0200
commitd6e1d44f16e5580cf47f13325ff49960bf13ca37 (patch)
tree1d16917e17eb1d87e452d6cf7210f80cacef4214
parent853d06ffe26621176d60909a6e3f7c4cd067b305 (diff)
llama : synchronize before get/set session data (#6911)
-rw-r--r--llama.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llama.cpp b/llama.cpp
index a43cde10..0c01a353 100644
--- a/llama.cpp
+++ b/llama.cpp
@@ -16131,6 +16131,8 @@ struct llama_data_file_context : llama_data_context {
*
*/
static void llama_state_get_data_internal(struct llama_context * ctx, llama_data_context * data_ctx) {
+ llama_synchronize(ctx);
+
// copy rng
{
std::ostringstream rng_ss;
@@ -16283,6 +16285,8 @@ size_t llama_state_get_data(struct llama_context * ctx, uint8_t * dst) {
// Sets the state reading from the specified source address
size_t llama_state_set_data(struct llama_context * ctx, const uint8_t * src) {
+ llama_synchronize(ctx);
+
const uint8_t * inp = src;
// set rng
@@ -16587,6 +16591,8 @@ size_t llama_state_seq_get_size(struct llama_context* ctx, llama_seq_id seq_id)
}
static size_t llama_state_seq_get_data_internal(struct llama_context * ctx, llama_data_context & data_ctx, llama_seq_id seq_id) {
+ llama_synchronize(ctx);
+
const auto & kv_self = ctx->kv_self;
GGML_ASSERT(!kv_self.recurrent); // not implemented
@@ -16704,6 +16710,8 @@ size_t llama_state_seq_get_data(struct llama_context* ctx, uint8_t* dst, llama_s
}
size_t llama_state_seq_set_data(struct llama_context * ctx, const uint8_t * src, llama_seq_id dest_seq_id) {
+ llama_synchronize(ctx);
+
auto & kv_self = ctx->kv_self;
GGML_ASSERT(!kv_self.recurrent); // not implemented