microsoft/vattention

Dynamic Memory Management for Serving LLMs without PagedAttention

해결하는 문제

vAttention은 LLM 서빙 시스템에서 KV 캐시의 메모리 관리 문제를 해결합니다. 특히, PagedAttention이 요구하는 동적 메모리 할당을 지원하기 위해 맞춤형 어텐션 커널을 재작성해야 하는 문제를 해결하며, 프리필(prefill) 중심 워크로드에서 성능을 향상시킵니다.

작동 방식

vAttention은 CUDA 가상 메모리 API를 사용하여 가상 메모리 할당과 물리 메모리 할당을 분리합니다. 이로 인해 물리 메모리는 필요에 따라 온디맨드로 할당되면서도, KV 캐시는 가상 메모리에서 연속된 상태를 유지할 수 있습니다. 메모리가 연속적으로 보이기 때문에, 다른 시스템에서 구현된 복잡한 사용자 공간의 디멘드 페이지링을 요구하지 않고도 변경되지 않은 어텐션 커널에서 사용할 수 있습니다.

대상 사용자

NVIDIA GPU에서 추론 최적화 및 메모리 관리에 집중하는 LLM 서빙 시스템 개발자 및 연구자에게 적합합니다.

주요 특징

  • 커널 호환성: 변경되지 않은 어텐션 커널에 대해 동적 메모리 할당을 지원합니다.
  • 가상 메모리 분리: CUDA 가상 메모리 API를 사용하여 가상 메모리와 물리 메모리 할당을 분리합니다.
  • 성능: 특히 프리필 중심 워크로드에서 PagedAttention보다 성능이 향상됩니다.
  • 통합성: Sarathi-Serve와 통합되어 있으며, FlashAttention 및 FlashInfer와 같은 백엔드를 지원합니다.
  • 사용자 정의 드라이버 지원: 기본값인 2MB를 초과하여 64KB에서 256KB까지의 작은 페이지 크기를 가능하게 하는 수정된 NVIDIA UVM 드라이버를 포함합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch