RadarMakale Bülteniai üretimi

Makale Bülteni — vAttention

CUDA sanal bellek yönetimini kullanarak KV önbelleğini sanal bellekte bitişik tutarken fiziksel belleği dinamik tahsis eden ve PagedAttention'ın özel çekirdek bağımlılığını ortadan kaldıran sistem mimarisi.

Microsoft Research tarafından yayımlanan ve ASPLOS 2025’te sunulan “vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention” makalesi, açık kaynak yapay zeka altyapılarının sorgusuz sualsiz benimsediği en büyük dogmaya meydan okuyor1. vLLM ile standartlaşan PagedAttention, KV önbelleğindeki bellek parçalanmasını (fragmentation) çözse de sanal bellek bitişikliğini (contiguity) kırarak sektörü ağır bir yazılım hamallığına mahkum etti. Çıkan her yeni dikkat çekirdeğinin (FlashAttention-2, FlashInfer, FlashAttention-3) sayfalı bellek tablolarını okuyacak biçimde yeniden yazılması gerekti; bu durum blok tablosu arama ek yükü yüzünden çekirdek seviyesinde %20’yi aşan gecikmelere yol açtı. vAttention ise modern işletim sistemleri ve GPU’ların sahip olduğu sanal bellek mekanizmasını (CUDA VMM API) devreye sokarak sayfalama yükünü donanımsal MMU ve TLB birimlerine devrediyor. Pratikte bunun anlamı şudur: KV önbelleğiniz sanal bellekte bitişik kalırken fiziksel bellek anlık tahsis edilir; böylece hiçbir modifikasyona gerek kalmadan en hızlı dikkat çekirdeklerini doğrudan çalıştırabilirsiniz.

Bu sistem hamlesinin sunduğu somut performans avantajı üç temel metrikte kendini gösteriyor: Uzun bağlamlı iş yüklerinde 1,23 kata varan uçtan uca throughput artışı ve decode aşamasında 1,99 kat hızlanma, testlerin gerçekleştirildiği NVIDIA A100-80GB altyapısı ve resmi araştırma deposundaki 526 yıldız, 10 açık issue ve 3 açık PR seviyesindeki çekirdek ayak izi2.

İddia ve Gerçeklik: vAttention

PagedAttention mimarisi, fiziksel belleği sabit bloklara bölerek kullanıcı alanında (user-space) bir sayfalama mekanizması taklit eder1. Ancak bu tasarım GPU üzerindeki tensör çekirdekleri için ciddi bir verimsizlik yaratır. Çekirdek çalıştığı esnada her token için global bellekten blok tablosu (block table) okumak, karmaşık dallanma mantığı yürütmek ve GPU yazmaçlarını sayfa indeksleriyle doldurmak zorundadır. Yapılan analizler, PagedAttention tabanlı FlashAttention-2 ve FlashInfer prefill çekirdeklerinin bitişik bellekle çalışan standart sürümlere kıyasla %37 ile %42 daha yavaş olduğunu kanıtlamaktadır.

vAttention bu tıkanıklığı sanal bellek ile fiziksel bellek tahsisini birbirinden ayırarak (decoupling) çözer. 64-bit sistemlerde kullanıcı alanına ayrılan 128 terabaytlık devasa sanal adres uzayından faydalanır. vAttention her istek başladığında GPU’nun sanal adres alanında maksimum bağlama yetecek büyüklükte bitişik bir tamponu önceden rezerve eder (cuMemAddressRangeReserve). Bu aşamada hiçbir fiziksel VRAM harcanmaz. İstek işlendikçe CUDA VMM API çağrılarıyla (cuMemCreate ve cuMemMap) yalnızca ihtiyaç duyulan fiziksel sayfalar dinamik olarak bu sanal alana haritalanır. Sonuç olarak dikkat çekirdeği belleği tek parça bitişik bir tensör olarak görür; adres çevrimini donanımsal TLB üstlenir ve modifiye edilmemiş standart çekirdekler tam donanım hızında çalışır.

Fakat üretim bandındaki her sistem tasarımının ödenmesi gereken bir bedeli vardır. CUDA VMM API çağrılarının getirdiği gecikmeyi gizlemek için arka planda çalışan ön tahsis iş parçacıkları ve ertelemeli sayfa geri kazanımı gerekir. Daha da kritik pratik engel, varsayılan CUDA sürücüsünün fiziksel belleği yalnızca 2 megabaytlık büyük sayfalar (hugepages) halinde tahsis edebilmesidir. Kısa metinli isteklerde iç bellek parçalanmasını önlemek adına Microsoft ekibi açık kaynaklı NVIDIA UVM çekirdek sürücüsünü yamalayarak (nvidia-vattn-uvm-driver) 64 kilobaytlık sayfa desteği eklemek zorunda kalmıştır. Kendi sürücüsünü derleme yetkisi bulunmayan genel bulut ortamlarında bu durum ciddi bir operasyonel kısıttır.

Kod ve Entegrasyon Haritası

Microsoft tarafından paylaşılan microsoft/vattention deposu, ASPLOS 2025 makalesinin tüm deneysel verilerini üreten temiz bir sistem prototipidir2. Kod tabanı, Sarathi-Serve üzerine inşa edilmiş bellek yöneticisi (vattention), yamalanmış NVIDIA UVM çekirdek sürücüsü ve mikro-kıyaslama araçlarını barındırır. Proje, PyTorch 2.3 ve CUDA 12.1 ortamında A100 GPU’lar üzerinde Yi-6B, Llama-3-8B ve Yi-34B modelleriyle 192K bağlam uzunluğuna kadar zorlu testlerden geçirilmiştir.

Açık kaynak dünyasında vAttention’ın yarattığı en büyük yankı, vLLM deposunda açılan 4675 numaralı özellik talebiyle başladı3. Geliştirici topluluğu, özellikle FlashAttention-3 gibi Hopper mimarisine özel yeni çekirdekler çıktığında aylarca sayfalı (paged) destek beklemek yerine vAttention mimarisine geçişi hararetle tartıştı. Nitekim makale, Hopper için geliştirilen ve henüz PagedAttention desteği bulunmayan FlashAttention-3 çekirdeğini vAttention ile sıfır kod değişikliğiyle anında çalıştırmış ve PagedAttention tabanlı FlashAttention-2’ye kıyasla 1,5 kata varan throughput sıçraması elde etmiştir.

Buna rağmen vAttention’ın ana akım üretim motorlarına girmesinin önünde pratik entegrasyon engelleri mevcuttur. vLLM ve SGLang gibi devasa sistemler, blok tabloları üzerine inşa edilmiş karmaşık önek önbellekleme (RadixAttention) ve spekülatif kod çözme boru hatlarına sahiptir. Kullanıcı alanı blok tabloları yerine işletim sistemi düzeyinde sayfalama yapmak bu algoritmaların yeniden yapılandırılmasını gerektirir. Ayrıca Kubernetes kümelerinde özel çekirdek sürücüsü yükleme ihtiyacı kurumsal güvenlik duvarlarına takılabilmektedir.

Ticari Etki: Kimin İşine Yarar?

vAttention’ın ticari etkisi, 32K ile 192K arasında değişen uzun bağlamlı iş yükleri çalıştıran doküman analizi, kodlama asistanı ve kurumsal arama (RAG) platformlarında doğrudan hissedilir. Prefill aşamasının toplam sürenin büyük kısmını oluşturduğu bu senaryolarda, PagedAttention’ın getirdiği %37’lik çekirdek yavaşlamasını ortadan kaldırmak sunucu throughput değerini %23 oranında artırmaktadır1.

Bu kazanım bir CTO için net bir finansal kaldıraç sağlar: Aynı donanım kümesi üzerinde bekleme sürelerini uzatmadan yaklaşık dörtte bir oranında daha fazla kullanıcı isteği karşılanabilir. Daha da önemlisi, yeni bir hızlandırıcı mimarisi (örneğin NVIDIA Blackwell) veya çığır açan yeni bir dikkat algoritması çıktığında, mühendislik ekibinizin haftalarca oturup özel sayfalı çekirdekler geliştirmesini beklemek zorunda kalmazsınız. Donanım seviyesinde çalışan vAttention, en güncel ve en optimize açık kaynak çekirdekleri çıktığı gün üretim hattınıza bağlama çevikliği sunar.

Özetle vAttention, PagedAttention’ın yarattığı yazılımsal karmaşıklığı donanım düzeyinde zarifçe süpüren son derece cesur bir mühendislik vizyonudur. Eğer kendi GPU kümelerinizi çıplak sunucularda (bare-metal) yönetiyorsanız ve uzun bağlamlı modellerle yüksek prefill maliyetleri ödüyorsanız, vAttention mimarisini radarınıza almalı ve üretim boru hatlarınızdaki bellek katmanını donanım destekli sanal sayfalama yönünde dönüştürmeye başlamalısınız.

Kaynaklar

  1. arXiv:2405.04437 — vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention
  2. GitHub — microsoft/vattention Resmi Kod Deposu
  3. GitHub Issue #4675 — vLLM vAttention Feature Request and Discussion