Repolode
microsoft

microsoft/vattention

面向 LLM 推理服务的 KV-cache 内存管理器,基于 CUDA 虚拟内存 API 按需分配显存,无需 PagedAttention。

Star
526
Fork
46
未关闭 Issue
13
最近提交
2个月前

这是什么?

vAttention 是一个用于 LLM 推理服务系统的 KV-cache 内存管理器。它利用 CUDA 虚拟内存 API 将虚拟内存分配与物理内存分配解耦,物理显存按需映射,同时保持 KV-cache 在虚拟地址空间中的连续性。

由于 KV-cache 保持连续,vAttention 无需修改注意力内核即可支持动态内存分配。这与 PagedAttention 不同:后者在用户态实现分页,并需要重写自定义内核。项目包含 vAttention 分配器、同时支持两种内存管理方式的 Sarathi-Serve 修改版、基准测试脚本以及兼容 OpenAI API 的服务端。

运行环境要求为 Linux 加 NVIDIA GPU(已在 A100 上测试)、PyTorch 2.3.0、CUDA 12.1 或更高版本以及 Python 3.10。项目支持 FlashAttention 和 FlashInfer 后端,页大小从 64KB 到 2MB 可选,其中更小的页需要替换为定制的 UVM 驱动。

核心功能

  • 01按需分配物理显存,同时保持 KV-cache 在虚拟内存中连续。
  • 02无需修改注意力内核即可支持动态内存分配,区别于 PagedAttention。
  • 03支持 FlashAttention 和 FlashInfer 注意力后端。
  • 04提供 64KB 到 2MB 的页大小选项,并可将内存分配与计算重叠执行。
  • 05包含基准测试脚本和兼容 OpenAI API 的服务端。

适用场景

  • 研究或原型验证 LLM 推理的 KV-cache 内存管理方案。
  • 在长上下文或 prefill 占比高的负载下评测推理服务的吞吐与延迟。
  • 在推理服务中集成动态 KV-cache 分配,而无需重写注意力内核。

快速上手

  1. 1

    创建并激活 Python 3.10 的 conda 环境

    conda create -n vattn python=3.10
  2. 2

    下载并解压与 PyTorch 2.3.0 匹配的 libtorch

    wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip
  3. 3

    在 sarathi-lean 目录中安装 Sarathi-Serve

    pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/
  4. 4

    构建 vAttention 分配器,并将 LIBTORCH_PATH 设置为 libtorch 目录

    LIBTORCH_PATH=<path to libtorch dir> python setup.py install

使用前须知

  • 主要在带 A100 GPU 的 Linux 上测试,CUDA 12.1 及以上,其他硬件可能无法运行。
  • 需要特定的 PyTorch 2.3.0 及版本匹配的 libtorch。
  • 这是研究原型,功能并不完全等同于开源 vLLM。

标签

常见问题

vattention 是什么?
面向 LLM 推理服务的 KV-cache 内存管理器,基于 CUDA 虚拟内存 API 按需分配显存,无需 PagedAttention。 vAttention 是一个用于 LLM 推理服务系统的 KV-cache 内存管理器。它利用 CUDA 虚拟内存 API 将虚拟内存分配与物理内存分配解耦,物理显存按需映射,同时保持 KV-cache 在虚拟地址空间中的连续性。
vattention 可以免费使用吗?用的什么许可证?
vattention 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
vattention 还在维护吗?
半年内有更新。vattention 最近一次提交是在 2026年8月24日。
vattention 适合用来做什么?
研究或原型验证 LLM 推理的 KV-cache 内存管理方案。 在长上下文或 prefill 占比高的负载下评测推理服务的吞吐与延迟。 在推理服务中集成动态 KV-cache 分配,而无需重写注意力内核。
vattention 怎么安装和运行?
创建并激活 Python 3.10 的 conda 环境: conda create -n vattn python=3.10 下载并解压与 PyTorch 2.3.0 匹配的 libtorch: wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip 在 sarathi-lean 目录中安装 Sarathi-Serve: pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/ 构建 vAttention 分配器,并将 LIBTORCH_PATH 设置为 libtorch 目录: LIBTORCH_PATH=<path to libtorch dir> python setup.py install
在哪里获取 vattention?
源代码和安装说明在 GitHub 上:https://github.com/microsoft/vattention

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目