summaryrefslogtreecommitdiff
path: root/llama.cpp
diff options
context:
space:
mode:
authorÁsgeir Bjarni Ingvarsson <asgeir@fundinn.org>2023-04-26 20:08:43 +0000
committerGitHub <noreply@github.com>2023-04-26 22:08:43 +0200
commit87a6f846d3e929632c45916dd08f1e2a9c72d2a3 (patch)
tree3f7dbad866c710048a066704ec5d9af4ab34feb2 /llama.cpp
parentea3ad7eb60cfb44526a58122e8019850f437cd1b (diff)
Allow setting the rng seed after initialization. (#1184)
The llama_set_state_data function restores the rng state to what it was at the time llama_copy_state_data was called. But users may want to restore the state and proceed with a different seed.
Diffstat (limited to 'llama.cpp')
-rw-r--r--llama.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llama.cpp b/llama.cpp
index 25203c9e..8334553a 100644
--- a/llama.cpp
+++ b/llama.cpp
@@ -2082,6 +2082,13 @@ int llama_get_kv_cache_token_count(struct llama_context * ctx) {
#define LLAMA_MAX_RNG_STATE 64*1024
+void llama_set_rng_seed(struct llama_context * ctx, int seed) {
+ if (seed <= 0) {
+ seed = time(NULL);
+ }
+ ctx->rng.seed(seed);
+}
+
// Returns the size of the state
size_t llama_get_state_size(struct llama_context * ctx) {
// we don't know size of rng until we actually serialize it. so reserve more than enough memory for its serialized state.