virtio-nvgpu — moduli ya kutoa ufikiaji wa GPU za NVIDIA kutoka kwa mashine pepe za KVM

Mradi wa virtio-nvgpu hutengeneza kifaa cha virtio kinachowezesha ufikiaji wa GPU za NVIDIA kutoka kwa mifumo ya wageni inayoendeshwa chini ya hypervisor ya KVM yenye athari ndogo ya utendaji. Inajumuisha moduli ya kernel iliyopakiwa kwenye mfumo wa wageni na kifaa cha virtio kinachoendeshwa kwenye seva mwenyeji. Msimbo wa moduli ya kernel umeandikwa kwa C na kupewa leseni chini ya GPLv2, huku msimbo wa kifaa cha virtio umeandikwa kwa Rust na kupewa leseni chini ya leseni ya Apache 2.0.

Kulingana na watengenezaji, upotevu wa utendaji wakati wa kufikia GPU hauzidi 2%. Utendaji wa juu hupatikana kwa kuelekeza simu za ioctl kwenye kiendeshi asilia cha NVIDIA na kufanya kazi katika kiwango cha kiendeshi cha NVIDIA ABI, bila kutafsiri maombi katika kiwango cha API. Kwa upande wa wageni, maktaba asilia na viendeshi vya NVIDIA vya kiwango cha juu vinavyofanya kazi katika nafasi ya mtumiaji vinatumika.

Moduli ya kernel imepakiwa kwenye mfumo wa mgeni. Inatoa faili za kifaa cha /dev/nvidiactl, /dev/nvidia0…N, na /dev/nvidia-uvm na huelekeza simu za ioctl() na mmap() kupitia virtqueue hadi kwa kidhibiti kwenye mazingira ya mwenyeji, ambacho huzipitisha kwa kiendeshi cha mwenyeji cha NVIDIA. Ili kuepuka mabadiliko ya muktadha kati ya mfumo wa mwenyeji na mashine pepe, bafa za amri huwekwa kwenye kumbukumbu ya pamoja inayoweza kufikiwa na mazingira ya mwenyeji na GPU.

Tofauti na ufikiaji wa kipekee wa GPU (VFIO Passthrough), mradi wa virtio-nvgpu hutoa ufikiaji wa pamoja wa GPU moja kutoka kwa kadhaa mashine pepe, na tofauti na virtio-gpu (Venus, VirGL), inafanya kazi kupitia njia ya ABI hadi kwenye kiendeshi cha NVIDIA, badala ya katika kiwango cha tafsiri cha Vulkan na OpenGL graphics API. Ubaya wa virtio-nvgpu ni pamoja na ukosefu wa utengano kamili unaotegemea IOMMU (mifumo ya wageni hufanya kazi kupitia kiendeshi mwenyeji cha NVIDIA na imepunguzwa kwa kuchuja simu za ioctl) na utegemezi wake kwenye kiendeshi cha NVIDIA ABI (ABI hubadilika na kila toleo, ikihitaji marekebisho ya virtio-nvgpu).

Uwezo wa virtio-nvgpu unatosha kwa ajili ya kutoa, kusimba video, na kuhesabu kwa kutumia API za Vulkan, OpenGL, NVENC, na CUDA. Programu kuu iliyotajwa ni uundaji wa huduma za michezo ya wingu au kompyuta pepe ambapo mchezo au programu ya michoro huendeshwa ndani. mashine pepe, ambayo hufanya utoaji, usimbaji wa maunzi wa matokeo kwa kutumia NVENC, na uwasilishaji wa matokeo kwa mtumiaji wa mbali katika mfumo wa mtiririko wa video uliobanwa.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster