Преди няколко дни, NVIDIA обяви, чрез пощенските списъци на Kernel, пускайки набор от пачове, които прилагат неговата vGPU технология. Тези пачове позволяват използването на виртуални графични процесори на NVIDIA в системи за виртуализация, осигурявайки мощна GPU производителност за различни работни натоварвания, вариращи от виртуални работни станции с интензивна графика до приложения за наука за данни и изкуствен интелект.
vGPU разделя физическите GPU ресурси на NVIDIA на хардуерни, присвояване на всеки vGPU собствена PCI Express виртуална функция (VF). Това означава, че могат да се изпълняват системи за гости, които изпълняват различни задачи, като се възползват максимално от наличните ресурси.
Споменава се, че Всеки NVIDIA vGPU функционира подобно на конвенционален GPU, тъй като има фиксирано количество кадров буфер и един или повече изходи на виртуален екран, известни също като "глави". Буферът за кадри на vGPU се разпределя от буфера за кадри на физическия GPU в момента на създаването му и vGPU поддържа изключителното използване на този буфер, докато не бъде унищожен.
Той позволява на ИТ отделите да се възползват от предимствата на управлението и сигурността на виртуализацията, както и от производителността на NVIDIA GPU, необходима за съвременни работни натоварвания. Инсталиран на физически графичен процесор в облак или сървър на корпоративен център за данни, софтуерът NVIDIA vGPU създава виртуални графични процесори, които могат да се споделят между множество виртуални машини.
Контролерът е съвместим с графични карти Базирана на NVIDIA Микроархитектурата на Ada Lovelace, а броят на vGPU, които можете да създадете, зависи от модела на вашата видеокарта.
В хост системата, модифицираният Nouveau драйвер е отговорен за създаването и сдвояването на vGPU със системи за гости. Междувременно в системата за гости се използват стандартни собствени драйвери на NVIDIA. Това гарантира, че възможностите на vGPU наподобяват тези на обикновения GPU, позволявайки част от паметта да бъде разпределена от физическия GPU framebuffer към vGPU, като се гарантира, че тя се използва само от vGPU.
Има няколко вида vGPU, всеки от които е проектиран за различни цели, с различен капацитет на видео паметта, брой виртуални екрани и максимални разделителни способности.
Прилагането обхваща основния драйвер за nvkm, който е изграден върху отворения драйвер Nouveau, както и мениджъра на vGPU, наречен vgpu_mgr, който работи като VFIO (Virtual Function I/O) модул. Този мениджър се грижи за ключови функции като създаване и изтриване на vGPU, избор на техния тип и предоставяне на API за контрол от потребителското пространство.
Модулът NVIDIA vGPU VFIO заедно с VFIO се намира във VFs, осигурява разширени функции и управление, например избор на типове vGPU, поддръжка за Миграция на живо и гореща актуализация на драйвера.
Подобно на други устройства, съвместими с VFIO, VFIO предоставя
API за стандартно потребителско пространство за управление на жизнения цикъл на устройството и Поддръжка за разширени функции.NVIDIA vGPU Manager осигурява необходимата поддръжка на NVIDIA vGPU VFIO вариантен драйвер за създаване/унищожаване на vGPU, вижте наличните типове vGPU, изберете вида на vGPU и др.
Администраторът на vGPU взаимодейства с базовия GPU драйвер, който има директен достъп до хардуера. Освен това заредете GSP фърмуера, NVIDIA vGPU Manager изпълнява следните функции:
- Управлява споделени/разделени хардуерни ресурси. Например резервирайте FB памет,
канали за мениджъра на vGPU за създаване на vGPU. - Обработка на изключения. Например доставяне на GSP събития на vGPU мениджъра.
- Изпращане на домакински събития. Например спиране/възобновяване.
- Изброяване на хардуерна конфигурация.
И накрая, ако сте се интересувам да научим повече за това, можете да проверите подробностите в следваща връзка, както и можете да видите кода в действие в следващото видео. Тестовете на кода бяха проведени на Ubuntu 24.04 като гост операционна система.