kv-cache : fix unified::seq_rm to work with seq_id < 0 (#13985)
ggml-ci
This commit is contained in:
parent
7e00e60ef8
commit
e0e806f52e
1 changed files with 20 additions and 5 deletions
|
@ -149,6 +149,7 @@ bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos
|
||||||
p1 = std::numeric_limits<llama_pos>::max();
|
p1 = std::numeric_limits<llama_pos>::max();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (seq_id >= 0) {
|
||||||
for (uint32_t i = 0; i < cells.size(); ++i) {
|
for (uint32_t i = 0; i < cells.size(); ++i) {
|
||||||
if (!cells.pos_in(i, p0, p1)) {
|
if (!cells.pos_in(i, p0, p1)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -160,6 +161,20 @@ bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// match any sequence
|
||||||
|
for (uint32_t i = 0; i < cells.size(); ++i) {
|
||||||
|
if (!cells.pos_in(i, p0, p1)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
cells.rm(i);
|
||||||
|
|
||||||
|
if (new_head == cells.size()) {
|
||||||
|
new_head = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If we freed up a slot, set head to it so searching can start there.
|
// If we freed up a slot, set head to it so searching can start there.
|
||||||
if (new_head != cells.size() && new_head < head) {
|
if (new_head != cells.size() && new_head < head) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue