Проект virtio-nvgpu развивает virtio-устройство, позволяющее получить доступ к GPU NVIDIA из гостевых систем, запущенных под управлением гипервизора KVM, с минимальной потерей производительности. В состав входит модуль ядра, загружаемый в гостевой системе и virtio-устройство, выполняемое на стороне хост-окружения. Код модуля ядра написан на языке Си и распространяется под лицензией GPLv2, а код virtio-устройства написан на Rust и распространяется под лицензией Apache 2.0.
Проект virtio-nvgpu развивает virtio-устройство, позволяющее получить доступ к GPU NVIDIA из гостевых систем, запущенных под управлением гипервизора KVM, с минимальной потерей производительности. В состав входит модуль ядра, загружаемый в гостевой системе и virtio-устройство, выполняемое на стороне хост-окружения. Код модуля ядра написан на языке Си и распространяется под лицензией GPLv2, а код virtio-устройства написан на Rust и распространяется под лицензией Apache 2.0.
По оценке разработчиков потеря производительности при доступе к GPU не превышает 2%. Высокая скорость работы достигается благодаря перенаправлению ioctl-вызовов к родному драйверу NVIDIA и работе на уровне ABI драйвера NVIDIA, без трансляции запросов на уровне API. На стороне гостевой системы применяются штатные библиотеки и высокоуровневые драйверы NVIDIA, работающие в пользовательском пространстве.
В гостевой системе загружается модуль ядра, который предоставляет файлы устройств /dev/nvidiactl, /dev/nvidia0...N, /dev/nvidia-uvm и пробрасывает обращения ioctl() и mmap() через virtqueue к обработчику на стороне хост-окружения, который передаёт их хостовому драйверу NVIDIA. Для избавления от переключений контекста между хостовой системой и виртуальной машиной буферы команд отражаются (mmap) в общую память, доступную хост-окружению и GPU.
В отличие от эксклюзивного проброса доступа к GPU (VFIO Passthrough) проект virtio-nvgpu обеспечивает совместный доступ к одному GPU из нескольких виртуальных машин, а в отличие от virtio-gpu (Venus, VirGL) работает через проброс ABI к драйверу NVIDIA, а не на уровне трансляции графических API Vulkan и OpenGL. Минусами virtio-nvgpu является отсутствие полноценной изоляции на базе IOMMU (гостевые системы работают через хостовый драйвер NVIDIA и ограничиваются лишь фильтрацией ioctl-вызовов) и привязка к ABI драйверов NVIDIA (ABI меняется в каждой версии и требует адаптации virtio-nvgpu).
Возможностей virtio-nvgpu достаточно для рендеринга, кодирования видео и вычислений при помощи API Vulkan, OpenGL, NVENC и CUDA. В качестве основной области применения упоминается создание облачных игровых сервисов или виртуальных рабочих мест, в которых игра или графическое приложение запускается в виртуальной машине, в которой осуществляется рендеринг, аппаратное кодирование результата с помощью NVENC и передача вывода удалённому пользователю в форме сжатого видеопотока.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Выпуск smolvm 1.7, инструментария для создания самодостаточных виртуальных машин | 0 | 10.2 | 28-07-2026 |
| 2 | Как мы приручили vGPU до режима авто без проблем | 0 | 6.3 | 22-06-2026 |
| 3 | В дистрибутиве Proxmox Virtual Environment реализована поддержка архитектуры ARM64 | 0 | 11.78 | 06-08-2026 |
| 4 | Облачный сервис Nvidia GeForce Now для Linux вышел из беты | 0 | 10.42 | 15-08-2026 |
| 5 | Использование GPU для ускорения обработки сетевых пакетов в ядре Linux | 0 | 6.49 | 28-07-2026 |
| 6 | Linux-Projekt KNOD verlagert Netzwerkverarbeitung direkt auf AMD-GPUs: ROCm ist dafür nicht erforderlich | 0 | 12.63 | 22-07-2026 |
| 7 | NVIDIA Working On New "TLV" Firmware Binary Format For Nova Driver | 0 | 5 | 01-07-2026 |
| 8 | Игры в Linux: клиент GeForce NOW вышел из бета-версии, Epic готовит нативный лаунчер | 0 | 11.26 | 14-08-2026 |
| 9 | Утилита NvpwrControl позволяет разжать мобильные RTX 50 по ваттам Основная ... | -1 | 12.65 | 17-09-2026 |