document that only one on-device state can be saved per sequence - #23520
Merged
Merged
Conversation
turbo-tan
pushed a commit
to turbo-tan/llama.cpp-tq3
that referenced
this pull request
Jun 2, 2026
zommiommy
pushed a commit
to zommiommy/llama.cpp
that referenced
this pull request
Aug 18, 2026
zbrad
pushed a commit
to zbrad/llama.cpp
that referenced
this pull request
Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
When using
LLAMA_STATE_SEQ_FLAGS_ON_DEVICE, the on-device state is associated with the original sequence ID. A later call toget_datawith that flag overwrites any previously saved state, effectively invalidating all prior states gotten with this flag.That is not behavior I would have expected, and I only noticed because I was wondering how the lifetime of the on-device buffers is managed.
Since I had to look at the source code to figure out how to use this API properly, I'm sending a PR to improve the documentation as suggested in
CONTRIBUTING.md.(I'm mildly interested in making the API work with user-managed on-device buffer lifetimes. The best idea I had so far is adding
LLAMA_STATE_SEQ_FLAGS_ON_DEVICE_ALLOC 6which allocates new buffers and increments a counter on eachget_datacall, storing the buffers inmem_storageassociated with the counter. That would also need allama_state_seq_dealloc_on_device_dataor something).Requirements