llama-memory.h 1016 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "llama.h"
  3. struct llama_memory_params {
  4. // kv cache
  5. ggml_type type_k;
  6. ggml_type type_v;
  7. // parameters for other types of memory
  8. // ...
  9. };
  10. // general concept of LLM memory
  11. // the KV cache is a type of LLM memory, but there can be other types
  12. class llama_memory_i {
  13. public:
  14. virtual ~llama_memory_i() = default;
  15. virtual void clear() = 0;
  16. virtual bool seq_rm (llama_seq_id seq_id, llama_pos p0, llama_pos p1) = 0;
  17. virtual void seq_cp (llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) = 0;
  18. virtual void seq_keep(llama_seq_id seq_id) = 0;
  19. virtual void seq_add (llama_seq_id seq_id, llama_pos p0, llama_pos p1, llama_pos delta) = 0;
  20. virtual void seq_div (llama_seq_id seq_id, llama_pos p0, llama_pos p1, int d) = 0;
  21. virtual llama_pos seq_pos_max(llama_seq_id seq_id) const = 0;
  22. virtual bool get_can_edit() const = 0;
  23. };