virtio-nvgpu — KVM виртуал машинуудаас NVIDIA GPU-д хандах боломжийг олгох модуль

Virtio-nvgpu төсөл нь KVM гипервизорын дор ажиллаж байгаа зочин системүүдээс NVIDIA GPU-д хамгийн бага гүйцэтгэлийн нөлөөлөлтэйгээр хандах боломжийг олгодог virtio төхөөрөмжийг боловсруулдаг. Энэ нь зочин системд ачаалагдсан цөмийн модуль болон хост дээр ажиллаж байгаа virtio төхөөрөмжөөс бүрдэнэ. Цөмийн модулийн кодыг C хэлээр бичиж, GPLv2-ийн дагуу лицензтэй бол virtio төхөөрөмжийн кодыг Rust хэлээр бичиж, Apache 2.0 лицензийн дагуу лицензтэй.

Хөгжүүлэгчдийн үзэж байгаагаар GPU-д хандах үед гүйцэтгэлийн алдагдал 2%-иас хэтрэхгүй байна. Өндөр гүйцэтгэлийг ioctl дуудлагыг NVIDIA-ийн уугуул драйвер руу дахин чиглүүлж, API түвшинд хүсэлтийг хөрвүүлэхгүйгээр NVIDIA драйверийн ABI түвшинд ажиллуулснаар олж авдаг. Зочны талд уугуул сангууд болон хэрэглэгчийн орон зайд ажиллаж буй өндөр түвшний NVIDIA драйверуудыг ашигладаг.

Зочин системд цөмийн модуль ачаалагдсан. Энэ нь /dev/nvidiactl, /dev/nvidia0…N, болон /dev/nvidia-uvm төхөөрөмжийн файлуудыг хангаж, ioctl() болон mmap() дуудлагуудыг virtqueue-ээр дамжуулан хост орчин дээрх боловсруулагч руу чиглүүлдэг бөгөөд энэ нь тэдгээрийг NVIDIA хост драйвер руу дамжуулдаг. Хост систем болон виртуал машины хооронд контекст шилжихээс зайлсхийхийн тулд командын буферуудыг хост орчин болон GPU-ийн хандах боломжтой хуваалцсан санах ойд буулгадаг (mmapped).

Онцгой GPU хандалтын дамжуулалтаас (VFIO Passthrough) ялгаатай нь virtio-nvgpu төсөл нь хэд хэдэн GPU-аас нэг GPU руу хуваалцах хандалтыг олгодог. виртуал машинууд, мөн virtio-gpu (Venus, VirGL)-ээс ялгаатай нь энэ нь Vulkan болон OpenGL график API орчуулгын түвшинд биш харин ABI дамжуулалтаар дамжуулан NVIDIA драйвер руу ажилладаг. Virtio-nvgpu-ийн сул талууд нь IOMMU дээр суурилсан бүрэн тусгаарлалтгүй байдал (зочин системүүд NVIDIA хост драйвераар дамжуулан ажилладаг бөгөөд ioctl дуудлагыг шүүхээр хязгаарлагддаг) болон NVIDIA драйвер ABI-аас хамааралтай байдал (ABI нь хувилбар бүрээр өөрчлөгдөж, virtio-nvgpu-г тохируулах шаардлагатай болдог) орно.

Virtio-nvgpu-ийн чадавхи нь Vulkan, OpenGL, NVENC, болон CUDA API-уудыг ашиглан дүрслэх, видео кодлох, тооцоолоход хангалттай. Дурдсан үндсэн програм бол тоглоом эсвэл график програм ажилладаг үүлэн тоглоомын үйлчилгээ эсвэл виртуал ширээний компьютеруудыг бий болгох явдал юм. виртуал машин, нь NVENC ашиглан үр дүнг дүрслэх, техник хангамжийн кодчилол хийх, гаралтыг алсын хэрэглэгч рүү шахсан видео урсгал хэлбэрээр дамжуулах ажлыг гүйцэтгэдэг.

Эх сурвалж: opennet.ru

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster