virtio-nvgpu — modul pĂ«r ofrimin e aksesit nĂ« GPU NVIDIA nga makinat virtuale KVM

Projekti virtio-nvgpu zhvillon një pajisje virtio, e cila lejon qasje në GPU-në NVIDIA nga sistemet mysafir që funksionojnë nën menaxhuesin KVM, me humbje minimale në performancë. Ai përfshin një modul bërthamor, i ngarkuar në sistemin mysafir dhe një pajisje virtio, e cila ekzekutohet në anën e mjedisit host. Kodi i modulit bërthamor është shkruar në gjuhën C dhe shpërndahet sipas licencës GPLv2, ndërsa kodi i pajisjes virtio është shkruar në Rust dhe shpërndahet sipas licencës Apache 2.0.

Sipas vlerësimeve të zhvilluesve, humbja e performancës gjatë qasjes në GPU nuk kalon 2%. Shpejtësia e lartë arrihet falë ridrejtimit të thirrjeve ioctl në drejtuesin vendas NVIDIA dhe punës në nivelin ABI të drejtuesit NVIDIA, pa përkthimin e kërkesave në nivelin API. Në anën e sistemit mysafir përdoren biblioteka standarde dhe drejtues të lartë NVIDIA, që funksionojnë në hapësirën e përdoruesit.

Në sistemin mysafir ngarkohet një modul bërthamor, i cili siguron skedarët e pajisjeve /dev/nvidiactl, /dev/nvidia0
N, /dev/nvidia-uvm dhe kalon thirrjet ioctl() dhe mmap() përmes virtqueue në trajtuesin në anën e mjedisit host, i cili i dërgon ato në drejtuesin hëst të NVIDIA. Për të eliminuar kalimet e kontekstit midis sistemit host dhe makinës virtuale, buferat e komandave reflektohen (mmap) në memorjen e përbashkët, të aksesueshme për mjedisin host dhe GPU.

Në dallim nga kalimi ekskluziv i qasjes në GPU (VFIO Passthrough), projekti virtio-nvgpu siguron qasje të përbashkët në një GPU nga disa makinat virtuale, dhe në krahasim me virtio-gpu (Venus, VirGL) funksionon përmes kalimit ABI në drejtuesin NVIDIA, e jo në nivelin e përkthimit të API grafike Vulkan dhe OpenGL. Disavantazhet e virtio-nvgpu janë mungesa e izolimit të plotë mbi bazën e IOMMU (sistemet mysafir punojnë përmes drejtuesit host të NVIDIA dhe kufizohen vetëm në filtrimin e thirrjeve ioctl) dhe varësia nga ABI e drejtuesve NVIDIA (ABI ndryshon me çdo version dhe kërkon adaptimin e virtio-nvgpu).

Kapacitetet e virtio-nvgpu janë të mjaftueshme për renderimin, kodimin e videove dhe llogaritjet duke përdorur API-në Vulkan, OpenGL, NVENC dhe CUDA. Si një fushë kryesore përdorimi përmendet krijimi i shërbimeve të lojërave në cloud ose vendeve të punës virtuale, në të cilat loja ose aplikacioni grafik ekzekutohet në makinën virtuale, në të cilën realizohet renderimi, kodimi harduerik i rezultatit me ndihmën e NVENC dhe dërgimi i daljes për përdoruesin e largët në formën e një stream-i të compressuar të videot.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster