NVIDIA опубликовала код с реализацией vGPU на базе драйвера Nouveau

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3243
Зарегистрирован: 20.08.2022

#

NVIDIA опубликовала код с реализацией vGPU на базе драйвера Nouveau
Дата публикации:Wed, 25 Sep 2024 19:25:19 +0300




Компания NVIDIA опубликовала набор патчей для ядра Linux с реализацией технологии vGPU, позволяющей использовать виртуальные GPU NVIDIA в системах виртуализации. Работа vGPU организуется аппаратно через разделение ресурсов физического GPU NVIDIA и привязки каждому vGPU своей виртуальной функции PCI Express (VF, Virtual Function), что позволяет создавать на базе гостевых систем мощные виртуальные рабочие станции, способные выполнять ресурсоёмкие вычислительные и графические операции. Драйвер может использоваться с видеокартами NVIDIA на базе микроархитектуры Ada Lovelace. Число создаваемых vGPU зависит от модели видеокарты.




На стороне хост системы операции создания и сопряжения vGPU с гостевыми системами обеспечивает изменённый драйвер Nouveau, а на стороне гостевых систем используются штатные проприетарные драйверы NVIDIA (в гостевой системы возможности vGPU аналогичны обычному GPU). Для vGPU выделяется часть памяти из фреймбуфера физического GPU, которая закрепляется за данным vGPU и используется только им. Предоставляются различные типы vGPU, отличающиеся назначением, размером видеопамяти, числом виртуальных дисплеев и максимальным разрешением экрана.



Реализация включает в себя базовый драйвер nvkm (core
driver), построенный на базе открытого драйвера Nouveau, и менеджер vGPU - vgpu_mgr, реализованный в форме модуля VFIO (Virtual Function I/O). Менеджер vGPU выполняет такие функции, как создание/удаление vGPU, выбор типа vGPU, предоставление API для управления из пространства пользователя. Менеджер vGPU взаимодействует с базовым драйвером GPU, который непосредственно обращается к оборудованию, выполняет загрузку прошивки GSP, вызывает связанные с vGPU функции прошивки, управляет совместными ресурсами, резервирует память в GPU, занимается обработкой исключений, определяет конфигурацию оборудования и выполняет обработку системных событий, таких как переход в спящий режим.



+--------------------+ +--------------------+ +--------------------+
| Linux VM | | Windows VM | | Guest VM |
| +----------------+ | | +----------------+ | | +----------------+ |
| |Applications... | | | |Applications... | | | |Applications... | |
| +----------------+ | | +----------------+ | | +----------------+ | ...
| +----------------+ | | +----------------+ | | +----------------+ |
| | Guest Driver | | | | Guest Driver | | | | Guest Driver | |
| +----------------+ | | +----------------+ | | +----------------+ |
+---------^----------+ +----------^---------+ +----------^---------+
| | |
+--------------------------------------------------------------------+
|+--------------------+ +--------------------+ +--------------------+|
|| QEMU | | QEMU | | QEMU ||
|| | | | | ||
|+--------------------+ +--------------------+ +--------------------+|
+--------------------------------------------------------------------+
| | |
+-----------------------------------------------------------------------------------------------+
| +----------------------------------------------------------------+ |
| | VFIO | |
| | | |
| +-----------------------+ | +------------------------+ +---------------------------------+| |
| | Core Driver vGPU | | | | | || |
| | Support <--->| <----> || |
| +-----------------------+ | | NVIDIA vGPU Manager | | NVIDIA vGPU VFIO Variant Driver || |
| | NVIDIA GPU Core | | | | | || |
| | Driver | | +------------------------+ +---------------------------------+| |
| +--------^--------------+ +----------------------------------------------------------------+ |
| | | | | |
+-----------------------------------------------------------------------------------------------+
| | | |
+----------|--------------------------|-----------------------|----------------------|----------+
| v +----------v---------+ +-----------v--------+ +-----------v--------+ |
| NVIDIA | PCI VF | | PCI VF | | PCI VF | |
| Physical GPU | | | | | | |
| | (Virtual GPU) | | (Virtual GPU) | | (Virtual GPU) | |
| +--------------------+ +--------------------+ +--------------------+ |
+-----------------------------------------------------------------------------------------------+






Дополнительно можно отметить принятие в состав Mesa Vulkan-драйвера gfxstream (Graphics Streaming Kit), который может применяться для организации доступа к API Vulkan из гостевых систем на базе Linux, Android и Fuchsia. Основой драйвера выступает одноимённый генератор кода (Graphics Streaming Kit), применяемый для перенаправления обращений к графическим API при виртуализации API Vulkan. Драйвер разработан компанией Google и используется в эмуляторе платформы Android, виртуальном Android-устройстве Cuttlefish, сервисе Google Play Games и операционной системе Fuchsia. Поддержка gfxstream уже включена в состав QEMU и crosvm. Поддерживается совместное использование с виртуальными устройствами virtio-gpu и goldish.



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61921

Жизнь за Нер'зула!

Ответить