DevOps·2 dk okuma·

Virtio-nvgpu: KVM Misafirlerinde Doğala Yakın NVIDIA GPU Erişimi

Paylaş
DevOpsEdumints Blog

virtio-nvgpu, KVM sanal makinelerinde (VM) NVIDIA grafik işlemcilerine neredeyse donanım hızında (%2 toleransla) ve minimum CPU yüküyle erişim sağlayan deneysel bir virtio aygıtıdır.

Mimari Yaklaşım ve Çalışma Mantığı

Geleneksel API çeviri katmanları yerine doğrudan sürücü ABI (Application Binary Interface) düzeyinde çalışan virtio-nvgpu, misafir Linux sistemi ile ana makine (host) arasında çekirdek sürücü ioctl çağrılarını iletir.

  • Değiştirilmemiş Kullanıcı Modu Sürücüleri: Misafir sistem NVIDIA'nın resmi, modifiye edilmemiş sürücülerini, Vulkan ve NVENC kütüphanelerini doğrudan çalıştırır.
  • Gözetimsiz Yayın (Headless Streaming) Odaklı: Sanal makine içinde çalışan bir kompozitör kareleri GPU üzerinde işler, birleştirir ve kodlar; sıkıştırılmış video akışı dışarı aktarılır.
  • Doğrudan Bellek Eşleme: Render döngüsünde mesaj iletim maliyeti oluşmaz; NVIDIA kullanıcı modu sürücüsü doğrudan ana makineye eşlenmiş bellek üzerinden iş gönderir (813.691 karede yalnızca 13.792 kurulum mesajı).

Mevcut Durum ve Performans Ölçümleri

RTX 3060 (595.99.02 sürücüsü) üzerinde özdeş gözetimsiz Vulkan yüküyle yapılan bare-metal ve misafir VM karşılaştırmaları çarpıcı sonuçlar sunmaktadır:

  • 39 ms kare süresi: Doğal donanımdan %0,4 daha hızlı (ölçüm gürültüsü sınırlarında).
  • 9,9 ms kare süresi: Doğal donanımdan %0,7 daha hızlı.
  • 2,0 ms kare süresi: Yalnızca %1,7 ek gecikme.
  • 0,5 ms kare süresi: %7,1 ek maliyet (uyandırma maliyeti ~0,02 ms).
  • 0,05 ms kare süresi: %40,8 gecikme (aşırı mikro karelerde GPU bekleme maliyeti belirginleşir).
  • CPU Kullanımı: 12 saniyelik testte bare-metal 0,40 sn tüketirken, misafir VM 0,37 sn harcamıştır. Sanallaştırma ek işlemci yükü getirmez.

Oyunların standart çalışma aralığı olan 2 ms üzerindeki her karede sistem, bare-metal performansının %2 sınırları içinde kalır. Wayland ve ffmpeg ile yapılan testlerde 618 karelik H.264 video akışı sıfır hata ile çözülmüştür.

Tek Kart Üzerinde Çoklu Misafir Desteği

Tek bir RTX 3060 üzerinde çalıştırılan dört eşzamanlı misafir sistem, kaynakların mükemmel bölüştürüldüğünü kanıtlamaktadır:

  • Kare Hızları: Misafirler sırasıyla 25,84, 26,49, 25,57 ve 25,79 FPS (toplam 103,7 FPS; tek misafirdeki 102,9 FPS'ye eşdeğer) elde etmiştir.
  • Gecikme Dağılımı: p50 kare süreleri 39,165 ms, 39,164 ms, 39,168 ms ve 39,165 ms ile dört basamağa kadar kusursuz dengelenmiştir.
  • Eşzamanlı Donanım Kodlama: Dört VM de 60 Hz sabit hızda aynı anda H.264 kodlama yapabilmektedir.

Yazılım Geliştirme Açısından Çıkarımlar

  • Maliyet ve Yoğunluk: Pahalı kurumsal vGPU lisanslarına ihtiyaç duymadan, tüketici sınıfı donanımlarla çok kullanıcılı bulut oyun ve uzaktan render altyapıları kurulabilir.
  • ABI Seviyesinde İletim: API sarmalayıcıları (wrapper) yerine çekirdek düzeyinde yönlendirme yaklaşımı, sıfır çeviri gecikmesi ve tam kütüphane uyumluluğu sunar.

Orijinal makaleye buradan ulaşabilirsiniz.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →