vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention

2024年05月07日
  • 简介
    高吞吐量LLM推理的有效GPU内存使用至关重要。之前的系统提前为KV-cache保留内存,导致由于内部碎片而浪费容量。受基于操作系统的虚拟内存系统的启发,vLLM提出了PagedAttention以实现KV-cache的动态内存分配。这种方法消除了碎片,使得使用更大批次大小的高吞吐LLM服务成为可能。然而,为了能够动态分配物理内存,PagedAttention将KV-cache的布局从连续的虚拟内存更改为不连续的虚拟内存。这种变化需要重写注意力核函数以支持分页,并且需要服务框架实现内存管理器。因此,PagedAttention模型导致了软件复杂性、可移植性问题、冗余和低效。在本文中,我们提出了vAttention用于动态KV-cache内存管理。与PagedAttention相比,vAttention保留了连续的虚拟内存中的KV-cache,并利用已经存在的低级系统支持进行按需分页物理内存分配。因此,vAttention使注意力核心开发人员不必显式支持分页,并避免在服务框架中重新实现内存管理。我们展示了vAttention使得各种注意力核心的实现无需更改即可实现无缝动态内存管理。vAttention还可以比vLLM更快地生成令牌,同时处理输入提示比FlashAttention和FlashInfer的PagedAttention变体分别快3.92倍和1.45倍。
  • 图表
  • 解决问题
    提高LLM推理的效率,解决KV-cache预留内存导致的碎片化浪费问题。
  • 关键思路
    使用vAttention进行动态KV-cache内存管理,保持KV-cache连续虚拟内存并利用系统支持的按需分页技术进行物理内存分配。
  • 其它亮点
    vAttention比PagedAttention生成tokens更快,处理输入提示的速度也更快。实验表明,vAttention能够无缝动态管理内存,而且不需要更改各种注意力核的实现。
  • 相关研究
    与PagedAttention和FlashAttention、FlashInfer的PagedAttention变体进行了比较。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论