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


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

    Будет. ИИ не умеет бить на логические патчи. Он вообще не умеет правильно распределять уровни абстракции. Даже зачатков этого нет.

     
     
  • 6.37, pofigist (?), 20:29, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну а для чего по-твоему придумали SDD? Ну да, я понимаю что данная концепция для 99% современных кодеров непостижма.
     
  • 2.26, anonymous (??), 00:46, 27/09/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     

  • 1.3, r2d0 (?), 09:39, 26/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Учитывая, что у амд и интел открытые драйвры, подобное решение ожидалось для них.
     
     
  • 2.5, Омоним (?), 09:53, 26/09/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/–
    А подобное решение для них вышло раньше, как и ожидалось
     
  • 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 +/–
    А зачем это нужно? С хоста прокидываешь карту в ВМ и все работает и так.
     
  • 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 изобретут
     
     
  • 2.33, anonymous (??), 10:48, 29/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    От GVT сам интел отказался уже давненько.
     

  • 1.38, Максим М. (?), 11:14, 30/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Так обязывают ведь не писать про генерацию кода ИИ, так как есть закон, что ИИ-код не является собственностью интеллектуальной, поэтому всех разрабов заставили подписать доки что они не используют ИИ. И скоро еще начнутся интересные разборки с водяными знаками..
     

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



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

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