ovg-project/kvcached

Virtualized Elastic KV Cache for Dynamic GPU Sharing and Beyond

解决的问题

LLM 服务引擎通常在启动时为 KV 缓存预留固定量的 GPU 内存,这导致内存分区僵化,在运行多个模型或动态工作负载时 GPU 利用率低下。kvcached 通过实现弹性、按需的 KV 缓存分配,使多个 LLM 能够更灵活地共享 GPU 内存。

工作原理

它为 LLM 系统引入了类似操作系统的虚拟内存抽象。通过将 GPU 虚拟地址与物理内存分配解耦,服务引擎可以先预留虚拟内存,仅在缓存实际使用时才用物理 GPU 内存进行 backing。这使得内存能够根据实时负载按需分配和回收。

适用人群

在资源受限环境中部署 LLM 的开发者和运维人员,需要在共享 GPU 上运行多个模型、实现无服务器 LLM 部署,或与训练、微调等其他 GPU 工作负载共置 LLM 推理。

主要特性

  • 弹性 KV 缓存:根据实际需求动态分配和回收内存。
  • GPU 虚拟内存:通过运行时映射,将逻辑 KV 缓存与物理内存解耦。
  • 引擎集成:作为插件支持主流服务引擎如 vLLM 和 SGLang。
  • 前缀缓存:支持自动前缀缓存(APC)和 RadixCache,实现跨请求复用。
  • 内存控制:包含 CLI 以强制执行内存限制。
  • 多模型支持:支持无需刚性分区的多个 LLM 同时部署。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目