Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

virtio-nvgpu - модуль для предоставления доступа к GPU NVIDIA из виртуальных машин KVM

26.09.2026 08:52 (MSK)

Проект 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. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: NVIDIA опубликовала код с реализацией vGPU на базе драйвера Nouveau
  3. OpenNews: Компания Intel представила KVMGT, механизм виртуализации GPU для KVM
  4. OpenNews: Компания AMD открыла модуль ядра GIM для виртуализации GPU
  5. OpenNews: Venus - виртуальный GPU для QEMU и KVM, реализованный на базе API Vulkan
  6. OpenNews: В Mesa принят amdgpu_virtio для использования OpenGL и Vulkan в гостевых системах
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66344-virtio-nvgpu
Ключевые слова: virtio-nvgpu, gpu, kvm, virtio, nvidia
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, peajack (?), 09:05, 26/09/2026 [ответить]  
  • –1 +/–
    даже без вайбкода? почтенно
     
     
  • 2.2, Аноним (2), 09:24, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Сегодня это врядли возможно. Но возможно явно не указывать что это вайп-кот. Если что, я еще пока-что указываю.
     

  • 1.3, r2d0 (?), 09:39, 26/09/2026 [ответить]  
  • –1 +/–
    Учитывая, что у амд и интел открытые драйвры, подобное решение ожидалось для них.
     
     
  • 2.5, Омоним (?), 09:53, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    А подобное решение для них вышло раньше, как и ожидалось
     
  • 2.7, Аноним (7), 10:00, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Кстати как там native contexts? Уже завезли или протухло как virgl?
     
  • 2.9, Аноним (9), 10:23, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Для встроек интела подобное решение есть от интела.
    на дискретных картах все три производителя блокируют эту фичу в своих драйверах, доступно только для серверных вариантов.
     

  • 1.4, Старый престарый аноним (?), 09:42, 26/09/2026 [ответить]  
  • +1 +/–
    Интересно как с распределением ресурсов. Гостей много и каждый подразумевает эксклюзивный доступ к карте. Вот хочешь ты кусочек памяти, вроде бы полно ее, а нет - не можешь. Типа торт как бы ты видишь, причем целый, а кусок отоезать не можешь, потому что торт фактически сожран другими
     
     
  • 2.8, Олег (??), 10:00, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В lxc это решено неплохо к слову.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать