Skip to content

Commit 21f865d

Browse files
committed
kv-cache : add bounds checks for sequence id
ggml-ci
1 parent 4504c1a commit 21f865d

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/llama-kv-cache-unified.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,8 @@ void llama_kv_cache_unified::clear(bool data) {
214214
}
215215

216216
bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos p1) {
217-
auto & cells = v_cells[seq_to_stream[seq_id]];
218-
auto & head = v_heads[seq_to_stream[seq_id]];
217+
auto & cells = v_cells[seq_to_stream.at(seq_id)];
218+
auto & head = v_heads[seq_to_stream.at(seq_id)];
219219

220220
uint32_t new_head = cells.size();
221221

@@ -263,8 +263,8 @@ bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos
263263
}
264264

265265
void llama_kv_cache_unified::seq_cp(llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) {
266-
const auto s0 = seq_to_stream[seq_id_src];
267-
const auto s1 = seq_to_stream[seq_id_dst];
266+
const auto s0 = seq_to_stream.at(seq_id_src);
267+
const auto s1 = seq_to_stream.at(seq_id_dst);
268268

269269
if (s0 == s1) {
270270
// since both sequences are in the same stream, no data copy is necessary
@@ -348,8 +348,8 @@ void llama_kv_cache_unified::seq_cp(llama_seq_id seq_id_src, llama_seq_id seq_id
348348
}
349349

350350
void llama_kv_cache_unified::seq_keep(llama_seq_id seq_id) {
351-
auto & cells = v_cells[seq_to_stream[seq_id]];
352-
auto & head = v_heads[seq_to_stream[seq_id]];
351+
auto & cells = v_cells[seq_to_stream.at(seq_id)];
352+
auto & head = v_heads[seq_to_stream.at(seq_id)];
353353

354354
uint32_t new_head = cells.size();
355355

@@ -368,8 +368,8 @@ void llama_kv_cache_unified::seq_keep(llama_seq_id seq_id) {
368368
}
369369

370370
void llama_kv_cache_unified::seq_add(llama_seq_id seq_id, llama_pos p0, llama_pos p1, llama_pos shift) {
371-
auto & cells = v_cells[seq_to_stream[seq_id]];
372-
auto & head = v_heads[seq_to_stream[seq_id]];
371+
auto & cells = v_cells[seq_to_stream.at(seq_id)];
372+
auto & head = v_heads[seq_to_stream.at(seq_id)];
373373

374374
if (shift == 0) {
375375
return;
@@ -410,7 +410,7 @@ void llama_kv_cache_unified::seq_add(llama_seq_id seq_id, llama_pos p0, llama_po
410410
}
411411

412412
void llama_kv_cache_unified::seq_div(llama_seq_id seq_id, llama_pos p0, llama_pos p1, int d) {
413-
auto & cells = v_cells[seq_to_stream[seq_id]];
413+
auto & cells = v_cells[seq_to_stream.at(seq_id)];
414414

415415
if (d == 1) {
416416
return;
@@ -441,13 +441,13 @@ void llama_kv_cache_unified::seq_div(llama_seq_id seq_id, llama_pos p0, llama_po
441441
}
442442

443443
llama_pos llama_kv_cache_unified::seq_pos_min(llama_seq_id seq_id) const {
444-
const auto & cells = v_cells[seq_to_stream[seq_id]];
444+
const auto & cells = v_cells[seq_to_stream.at(seq_id)];
445445

446446
return cells.seq_pos_min(seq_id);
447447
}
448448

449449
llama_pos llama_kv_cache_unified::seq_pos_max(llama_seq_id seq_id) const {
450-
const auto & cells = v_cells[seq_to_stream[seq_id]];
450+
const auto & cells = v_cells[seq_to_stream.at(seq_id)];
451451

452452
return cells.seq_pos_max(seq_id);
453453
}
@@ -1842,7 +1842,7 @@ void llama_kv_cache_unified::state_read(llama_io_read_i & io, llama_seq_id seq_i
18421842
continue;
18431843
}
18441844

1845-
const uint32_t strm = seq_id == -1 ? s : seq_to_stream[seq_id];
1845+
const uint32_t strm = seq_id == -1 ? s : seq_to_stream.at(seq_id);
18461846

18471847
bool res = true;
18481848
res = res && state_read_meta(io, strm, cell_count, seq_id);

0 commit comments

Comments
 (0)