| 735 | } |
| 736 | |
| 737 | void llama_kv_cache_recurrent::state_write_meta(llama_io_write_i & io, const std::vector<std::pair<uint32_t, uint32_t>> & cell_ranges, llama_seq_id seq_id) const { |
| 738 | for (const auto & range : cell_ranges) { |
| 739 | for (uint32_t i = range.first; i < range.second; ++i) { |
| 740 | const auto & cell = cells[i]; |
| 741 | const llama_pos pos = cell.pos; |
| 742 | const uint32_t n_seq_id = seq_id == -1 ? cell.seq_id.size() : 0; |
| 743 | |
| 744 | io.write(&pos, sizeof(pos)); |
| 745 | io.write(&n_seq_id, sizeof(n_seq_id)); |
| 746 | |
| 747 | if (n_seq_id) { |
| 748 | for (auto seq_id : cell.seq_id) { |
| 749 | io.write(&seq_id, sizeof(seq_id)); |
| 750 | } |
| 751 | } |
| 752 | } |
| 753 | } |
| 754 | } |
| 755 | |
| 756 | void llama_kv_cache_recurrent::state_write_data(llama_io_write_i & io, const std::vector<std::pair<uint32_t, uint32_t>> & cell_ranges) const { |
| 757 | const uint32_t v_trans = 0; |