Компания Intel представила новый открытый проект KVMGT, в рамках которого подготовлена открытая реализация технологии полной виртуализации GPU (Intel GVT-g) для гипервизора KVM. Ранее, похожая реализация виртуального GPU для Xen была подготовлена в рамках проекта XenGT, обновление которого вышло одновременно с анонсом KVMGT.

KVMGT позволяет предоставить для каждого виртуального окружения отдельный виртуальный GPU, в котором при выполнении требующих высокой производительности операций могут быть задействованы ресурсы реального системного GPU. Виртуальный GPU позволяет использовать внутри гостевых систем обычные видеодрайверы, не требующие вмешательства гипервизора для обеспечения должной производительности. В итоге, KVMGT позволяет добиться хорошего баланса между производительностью, функциональностью и совместным использованием ресурсов, приближая производительность виртуализированной графической подсистемы к конфигурациям с полным пробросом GPU, но предоставляя возможность совместного использования GPU между виртуальными машинами без применения полной эмуляции или трансляции API DirectX/OpenGL.

Сравнение производительности KVMGT и нативного GPU:

Для организации работы виртуальных GPU на стороне хост-системы (dom0) запускается специальный драйвер vgt, который берёт на себя функции планировщика, координирующего совместный доступ и распределение ресурсов реального GPU между виртуальными машинами. Ресурсы GPU логически разделяются на две категории: критичные для обеспечения высокой производительности (работа с видеопамятью и буферами команд в памяти) и все остальные (MMIO/PIO, регистры конфигурации PCI, таблицы GTT и пополнение очереди команд GPU). Для первой категории обеспечивается прямой проброс к реальному GPU, для второй выполняется диспетчеризация через промежуточную прослойку, на стороне которой выполняется разделение доступа и эмуляция виртуальных GPU.

KVMGT пока находится на начальной стадии разработки, но уже работают основные функции виртуализации GPU, позволяющие выполнять в гостевой системе такие 3D-приложения, как lightsmark, nexuiz, urbanterror и warsow. В гостевых системах пока поддерживается только Linux c отключенным в ядре механизмом PPGTT. В конечном счёте, после доведения кода до должного уровня, его планируется унифицировать с проектом XenGT (около 90% общей кодовой базы, отличаются только специфичные для гипервизора части) и включить в состав штатного драйвера i915. Код проекта составляет используемый на хост-системе драйвер для ядра Linux, а также компоненты для QEMU и SeaBIOS.

Источник: http://www.opennet.ru/opennews/art.shtml?num=41187