microsoft/vattention
Dynamic Memory Management for Serving LLMs without PagedAttention
解決的問題
vAttention 解決了 LLM 服務系統中 KV 快取的記憶體管理挑戰。具體來說,它解決了需要重寫自訂注意力內核以支援動態記憶體配置(如 PagedAttention 所需)的問題,並提升預填入(prefill-bound)工作負載的效能。
工作原理
vAttention 使用 CUDA 虛擬記憶體 API 將虛擬記憶體配置與實體記憶體配置分離。這使得系統可以在需要時按需配置實體記憶體,同時保持 KV 快取在虛擬記憶體中的連續性。由於記憶體在虛擬位址空間中呈現連續,因此可直接用於未經修改的注意力內核,無需像其他系統那樣實作複雜的使用者空間需求分頁機制。
適用對象
專為 LLM 服務系統開發者以及專注於 NVIDIA GPU 上推論最佳化與記憶體管理的研究人員設計。
主要亮點
- 內核相容性:支援未經修改的注意力內核的動態記憶體配置。
- 虛擬記憶體分離:利用 CUDA 虛擬記憶體 API 分離虛擬與實體記憶體配置。
- 效能提升:在預填入密集型工作負載中,效能優於 PagedAttention。
- 整合支援:已整合至 Sarathi-Serve,並支援 FlashAttention 與 FlashInfer 等後端。
- 自訂驅動支援:包含修改後的 NVIDIA UVM 驅動,可啟用小於預設 2MB 的頁大小(64KB 至 256KB)。
相關
- 專案
- 專案
- 專案
- 專案
- Dispatch