Профиль: Аноним (вход | регистрация) не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 обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, peajack (?), 09:05, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/–
    даже без вайбкода? почтенно
     
     
  • 2.2, Аноним (2), 09:24, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • –7 +/–
    Сегодня это врядли возможно. Но возможно явно не указывать что это вайп-кот. Если что, я еще пока-что указываю.
     
     
  • 3.27, Аноним (27), 12:17, 27/09/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Че вы его минусите? Сами современные модели пробовали? Они с первого раза пишут лучше чем 99% опытных разработчиков.Разработчик потом доотдаживает свой код неделями, доотлажить код ии намного быстрее чем самому набивать прототип. Это в компаниях уже норма если не знаете, workflow ии настраивается и потом только ревью с минимальными правками, код уже перестают "писать".
     
     
  • 4.29, Аноним (29), 17:21, 27/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Они просто пишут. вно, но пишут. Вот только пишут они в 2 случаях их трех. А в 1 из трех такая ... получается, что дальше некуда.
     
  • 2.17, Аноним123 (?), 13:59, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    109 комитов за 2 дня.
     
     
  • 3.30, Аноним (29), 17:24, 27/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Это похоже на приведение ветки в порядок после разработки.
    Сначала наколбасили, потом аккурантно комит за комитом. ИИ просто вывалит на лопате - разбирайтесь.
     
  • 2.26, anonymous (??), 00:46, 27/09/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     

  • 1.3, r2d0 (?), 09:39, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Учитывая, что у амд и интел открытые драйвры, подобное решение ожидалось для них.
     
     
  • 2.5, Омоним (?), 09:53, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/–
    А подобное решение для них вышло раньше, как и ожидалось
     
  • 2.7, Аноним (7), 10:00, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Кстати как там native contexts? Уже завезли или протухло как virgl?
     
     
  • 3.22, Аноним (22), 17:30, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    все еще помечено экспериментальным и не собирается по умолчанию в mesa и virglrenderer
     
     
  • 4.24, Аноним (24), 22:38, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Есть норм инструкции что и с какими флагами надо собирать, чтоб были эти ваши нативные контексты, венус и прочее на Debian, RHEL и иных системах?
     
     
  • 5.25, Аноним (-), 23:50, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Не искал как-то. Собрать надо libvirglrenderer и qemu для хоста и mesa для гостя.
    Про сборку пакетов дебиана и мезон руководства есть, а так всё собирается стандартно через apt source ... + apt build-dep ... + dpkg-buildpackage -b. По желанию поменять версию пакета.
    Для libvirglrenderer надо в debian/rules добавить -Ddrm-renderers=amdgpu-experimental, для месы — -Damdgpu-virtio=true.
    qemu надо пересобрать с полученным libvirglrenderer (т.е. поставив dev пакет, полученный после dpkg-buildpackage.

    rpm я собирал очень давно, не подскажу

    Если есть снап/флатпак на госте, то у них своя меса. Для флатпака есть mesa-git где включено все экспериментальное, про снап не в курсе

     
  • 2.9, Аноним (9), 10:23, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Для встроек интела подобное решение есть от интела.
    на дискретных картах все три производителя блокируют эту фичу в своих драйверах, доступно только для серверных вариантов.
     
     
  • 3.13, Аноним (13), 12:42, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >на дискретных картах все три производителя блокируют эту фичу в своих драйверах, доступно только для серверных вариантов

    Да в Арках Pro-серии есть поддержка SR-IOV:
    1) https://www.techpowerup.com/img/DxrRV5UDmiOGPmTo.jpg
    2) https://www.techpowerup.com/img/Wl6cGgQyehFZSVlA.jpg

    Либо да, со встройками igpu.

     

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

  • 1.10, Аноним (10), 10:53, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Корпораты подсуетились быстро нужные кнопочки понажимали.
     
  • 1.11, Аноним (11), 11:06, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    К сожалению работает только с линукс гостями как я понял, тоже неплохо, но хотелось бы и винду тоже.
     
     
  • 2.14, Аноним (13), 12:56, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Попробуйте на интеловских встройках (*с 11-го поколения).
    Гуглите: "SR-IOV intel igpu support list".
     

  • 1.15, Аноним (15), 13:01, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    очередная дырявая дыра для облегчения атак на хост. виртуалка должна иметь свою архитектуру, отличную от любого хоста. как ява, ллвм и прочий байт-код, да, но ещё и со своим уникальным псевдо-«железом». да, будет медленно, даже очень. но вам же для бе-бе-безопасности, или как?

    иначе это не виртуалка, а подпирание костылями (гипервизором уровня -1) неспособности ядер современных ос (супервизоров уровня 0) изолировать приложения (уровень 1) от себя, железа и друг друга, неспособности разделить ресурсы железа между приложениями...

     
     
  • 2.20, Аноним (20), 14:58, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    изоляция одного софта от другого в Фон-Неймановской архитектуре - бред!!!
     

  • 1.19, Аноним (-), 14:45, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    А зачем это нужно? С хоста прокидываешь карту в ВМ и все работает и так.
     
  • 1.21, kvaps (ok), 16:20, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Так а лицензия vGPU для этого получается не нужна?

    Будет работать с нативными драйверами nVidia и поддерживать различные шейдеры?

     
     
  • 2.23, Аноним (23), 18:47, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    получается, так
     
  • 2.32, Арчибальд (?), 11:45, 28/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    так значит УРА !!!
     

  • 1.28, Аноним (28), 16:15, 27/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Ещё немного, и Intel GVT изобретут
     

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



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

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