virtio-nvgpu — en modul för att ge Ă„tkomst till NVIDIA GPU frĂ„n KVM-virtuella maskiner.

Projektet virtio-nvgpu utvecklar en virtio-enhet som möjliggör Ätkomst till NVIDIA GPU frÄn gÀstsystem som körs under KVM-hypervisorn, med minimal prestandaförlust. Den inkluderar en kÀrnmodul som laddas i gÀstsystemet och en virtio-enhet som körs pÄ hostsidan. Koden för kÀrnmodulen Àr skriven i C och distribueras under GPLv2-licens, medan koden för virtio-enheten Àr skriven i Rust och distribueras under Apache 2.0-licens.

Enligt utvecklarna överstiger prestandaförlusten vid Ätkomst till GPU inte 2%. Den höga prestandan uppnÄs genom att omdirigera ioctl-anrop till den ursprungliga NVIDIA-drivrutinen och arbeta pÄ ABI-nivÄ med NVIDIA-drivrutinen, utan översÀttning av förfrÄgningar pÄ API-nivÄ. PÄ gÀstsidan anvÀnds standardbibliotek och högre nivÄ drivrutiner frÄn NVIDIA som körs i anvÀndarutrymmet.

I gĂ€stsystemet laddas en kĂ€rnmodul som tillhandahĂ„ller enhetsfilerna /dev/nvidiactl, /dev/nvidia0
N, /dev/nvidia-uvm och vidarebefordrar ioctl() och mmap() anrop genom virtqueue till en hanterare pĂ„ hostsidan, som skickar dem vidare till den host-baserade NVIDIA-drivrutinen. För att eliminera kontextvĂ€xlingar mellan vĂ€rdmaskinen och den virtuella maskinen avspeglas kommandobuffrar (mmap) i delad minne som Ă€r tillgĂ€ngligt för host-miljön och GPU:n.

Till skillnad frÄn exklusiv passering av Ätkomst till GPU (VFIO Passthrough) erbjuder projektet virtio-nvgpu delad Ätkomst till en GPU frÄn flera anvÀndare. virtuella maskiner, och till skillnad frÄn virtio-gpu (Venus, VirGL) arbetar det genom att vidarebefordra ABI till NVIDIA-drivrutinen istÀllet för pÄ nivÄn för översÀttning av grafiska API:er Vulkan och OpenGL. Nackdelarna med virtio-nvgpu inkluderar avsaknad av fullstÀndig isolering baserad pÄ IOMMU (gÀstsysten arbetar genom NVIDIA:s host-drivrutin och begrÀnsas endast av filtrering av ioctl-anrop) och bindning till NVIDIA-drivrutins ABI (ABI Àndras i varje version och krÀver anpassning av virtio-nvgpu).

Funktionerna hos virtio-nvgpu Àr tillrÀckliga för rendering, videokodning och berÀkningar med hjÀlp av API:erna Vulkan, OpenGL, NVENC och CUDA. Den huvudsakliga tillÀmpningen nÀmns vara skapandet av molnbaserade spelservrar eller virtuella arbetsplatser dÀr spelet eller grafikapplikationen körs i en virtuell maskin, dÀr rendering sker, hÄrdvarukodning av resultatet med NVENC och överföring av utdata till den fjÀrran anvÀndaren i form av en komprimerad videoström.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster