- 简介高吞吐量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变体进行了比较。
沙发等你来抢
去评论
评论
沙发等你来抢