Проброс графического процессора (vDGA) в VMware: полное руководство.

Последнее обновление: 14/01/2026
Автор: Исаак
  • Функция сквозной передачи графического процессора (vDGA/VMDirectPath I/O) в VMware позволяет сопоставить полноценный физический графический процессор с виртуальной машиной для достижения производительности, близкой к нативной.
  • Его использование требует соблюдения строгих требований. аппаратные средства (VT‑d/AMD‑V, IOMMU, MMIO 64‑bit) и прошивка EFI/UEFI на виртуальной машине.
  • Включение vDGA приводит к потере ключевых функций vSphere, таких как vMotion, DRS и моментальные снимки виртуальной машины, использующей графический процессор в режиме сквозной передачи.
  • В отличие от vGPU и других решений, vDGA отдает приоритет выделенной производительности, а не гибкости и возможности совместного использования графического процессора несколькими виртуальными машинами.

Проброс графического процессора vDGA в VMware

Подключение физического графического процессора напрямую к виртуальной машине в VMware. Это одно из тех изменений, которое имеет решающее значение при работе с ресурсоемкими графическими приложениями. IA или 3D-рендеринг. Переход от эмулированной видеокарты к прямому доступу через сквозную передачу (vDGA / VMDirectPath I/O) может приблизить производительность виртуальной машины к производительности физической машины, но взамен добавляет немало требований и ограничений, которые следует четко понимать перед началом работы.

Кроме того, в современной экосистеме существует несколько способов использования графического процессора в виртуализированных средах: Выделенная сквозная передача данных, совместное использование vGPU и такие технологии, как BitFusion или разделение графического процессора.Понимание того, для чего предназначена каждая из этих технологий, в каких случаях она подходит и как она настраивается в vSphere/ESXi (а также как она связана с аналогичными технологиями, такими как Hyper-V DDA), является ключом к тому, чтобы не зайти в тупик с оборудованием или выбранной версией гипервизора.

Что такое сквозная передача данных GPU (vDGA / VMDirectPath I/O) в VMware?

Сквозная передача данных с графического процессора в VMware, также известная как vDGA или VMDirectPath I/O.Это режим работы, при котором физическая видеокарта, установленная в хосте ESXi, напрямую назначается виртуальной машине. Вместо использования графического адаптера, эмулируемого гипервизором, гостевая операционная система видит графический процессор почти так же, как если бы он был подключен к физической материнской плате.

Этот ярлык позволяет виртуальной машине воспользоваться преимуществами. Вся мощь графического чипа, его видеопамять и расширенные возможности. Такие технологии, как CUDA, OpenCL, Direct3D и OpenGL, поддерживаются нативно, с минимальными дополнительными затратами со стороны гипервизора. В лабораторных тестах VMware обычно отмечается потеря производительности примерно на 4-5% по сравнению с работой того же графического процессора на физическом оборудовании.

На практике использование сквозной передачи данных через графический процессор означает, что Эта карта полностью предназначена для одной виртуальной машины.В отличие от решений с использованием vGPU, здесь отсутствует тонкое распределение ресурсов между несколькими виртуальными машинами, а также не загружается сторонний программный слой на ESXi для совместного использования видеокарты. NVIDIA СЕТКА.

Важно отличать этот подход от других способов использования графических процессоров в виртуализации, таких как NVIDIA vGPU (совместно используемый vGPU), RemoteFX/разделение ресурсов в решениях типа Hyper-V или BitFusion.которые стремятся распределить графический процессор или пул графических процессоров между несколькими машинами с использованием различных методов виртуализации или удаленного перенаправления.

Когда мы говорим о vDGA в мире VMware, мы, по сути, описываем следующее: прямое назначение устройства PCIe графического процессора виртуальной машине. Использование VMDirectPath I/O со всеми вытекающими отсюда преимуществами (производительность) и недостатками (ограничения на мобильность и высокую доступность).

Архитектура графического процессора VMDirectPath от VMware

Преимущества использования сквозной передачи графического процессора в vSphere

Основная причина перехода на vDGA заключается в том, что Графическая и вычислительная производительность очень близка к производительности физического компьютера.Исключение значительной части уровня виртуализации для этого устройства PCIe устраняет типичные узкие места эмулируемого графического процессора, и виртуальная машина может гораздо плавнее работать с играми, 3D-приложениями или движками искусственного интеллекта.

Это особенно заметно в сценариях, где встроенные графические процессоры или эмулируемая по умолчанию виртуальная видеокарта значительно отстают: Продвинутый графический дизайн, САПР, 3D-моделирование и рендеринг, видеомонтаж, анимация и разработка игр.Это также имеет решающее значение при обучении моделей машинного обучения и задач искусственного интеллекта, которые в значительной степени полагаются на CUDA или аналогичные технологии.

Еще одно очевидное преимущество — более гибкое использование оборудования на уровне центра обработки данных. Вместо того чтобы иметь физическое рабочее место на пользователя или на проектМожно выделить достаточно мощный хост ESXi для нескольких виртуальных машин, каждая из которых будет иметь собственный графический процессор в режиме сквозной передачи, и экспериментировать с расписанием или пиковой нагрузкой.

В некоторых условиях, особенно если уже имеются серверы со свободными слотами PCIe, стоимость на одного пользователя или на один проект Это может оказаться дешевле, чем содержать целый парк мощных физических рабочих станций, особенно если видеокарта не требуется круглосуточно и может быть перенастроена в зависимости от периодов интенсивной работы.

Наконец, есть еще и косвенная выгода с точки зрения безопасности и работы: за счет поддержания работоспособности графических приложений. внутри изолированных виртуальных машинЕсли что-то пойдет не так (эксплойт, проблемный драйвер, неправильная конфигурация), проще ограничить последствия, вернуться к предыдущему снимку или восстановить данные из резервной копии, при условии соблюдения ограничений сквозной передачи данных, которые мы рассмотрим позже.

Сравнение сквозной передачи GPU и vGPU, а также другие альтернативы.

В экосистеме VMware существует несколько способов использования видеокарты, и не все из них предполагают её полное выделение для одной виртуальной машины. Наиболее известные из них: vDGA / VMDirectPath I/O, vGPU (NVIDIA GRID или другие) и решения для удаленного доступа/вычислений, такие как BitFusion.

  Как отключить автозаполнение в веб-браузерах шаг за шагом

В режиме прямой передачи (vDGA) графический процессор выделяется отдельно. исключительно для виртуальной машиныВычислительные ядра и видеопамять не используются совместно несколькими виртуальными машинами, а роль гипервизора практически отсутствует, за исключением маршрутизации устройства PCIe к гостевой системе. Это самый простой для понимания вариант, наиболее точно напоминающий физический сервер с выделенной видеокартой.

В подходе vGPU используется специализированное программное обеспечение (например, NVIDIA GRID vGPU на VMware vSphereОн обрабатывает виртуализацию графического процессора на уровне контроллера и предоставляет виртуальные экземпляры графического процессора, которые могут быть одновременно назначены нескольким виртуальным машинам. Каждая гостевая машина видит «фрагмент» графического процессора с гарантированными или совместно используемыми ресурсами.

vGPU позволяют нескольким виртуальным рабочим столам или серверам совместно использовать одну видеокарту, что очень полезно в VDI, облегченные ускоренные офисные среды, графические рабочие станции для сотрудников розничной торговли или сферы гостеприимства.или в сценариях, где пиковое использование графики неравномерно распределено между пользователями. Взамен возникают некоторые накладные расходы, и пиковая производительность не достигается так же, как при использовании целого физического графического процессора, выделенного для одной виртуальной машины.

Существуют также такие решения, как... BitFusion Flexdirect и аналогичные технологииЭто позволяет использовать графические процессоры по сети из разных виртуальных машин, что идеально подходит для задач искусственного интеллекта и высокопроизводительных вычислений, где графический процессор выступает скорее в качестве удаленного вычислительного ресурса, чем видеокарты для графического интерфейса пользователя.

Выберите модель графического процессора: vDGA, vGPU или удаленный графический процессор. Это зависит от того, нужно ли вам в полной мере использовать графический процессор на одной машине (сквозная передача), хотите ли вы распределить дорогостоящую карту между множеством пользователей со средней нагрузкой (виртуальный графический процессор) или же ключевым моментом является организация пула графических процессоров для распределенных вычислений (BitFusion и аналогичные сервисы).

Требования к оборудованию для использования vDGA на ESXi

Перед планированием развертывания сквозной передачи графических процессоров в VMware необходимо убедиться в следующем: Аппаратная платформа отвечает ряду условий. которые выходят за рамки простого "подключения видеокарты к серверу".

Во-первых, процессор и чипсет материнской платы хост-системы ESXi должны поддерживать виртуализация с помощью IOMMU. En Intel Это достигается с помощью Intel VT-x плюс VT-dy, а также с помощью AMD через AMD-V с IOMMU. В BIOS/UEFI сервера обычно есть специальные параметры для этого. активировать расширения виртуализации ввода/вывода.

Во-вторых, вам нужно проверить опорную пластину. Отображение памяти MMIO объемом более 4 ГБ (иногда обозначается как «декодирование выше 4G», «ввод-вывод с отображением в память выше 4G» или аналогично). Это особенно важно для высокопроизводительных графических процессоров, таких как TeslaP100, V100 и их аналоги, которые объявляют очень большие области памяти в своих регистрах базового адреса (BAR).

Некоторые из этих высокопроизводительных видеокарт могут отображать более 16 ГБ пространства MMIOСледовательно, помимо игры... BIOSЗатем потребуется скорректировать определенные параметры в расширенных настройках виртуальной машины в vSphere, чтобы она могла загрузиться с этим графическим процессором без ошибок, связанных с нехваткой ресурсов.

Конечно, сам графический процессор должен быть совместим с серверной платформой и поддерживаться производителем хост-приложения (Dell, HPE, Lenovoи т. д.) при использовании в режиме сквозной передачи. На практике большинство современных видеокарт PCIe работают, но рекомендуется проверять списки совместимости, особенно для карт GRID или очень новых моделей.

Требования к программному обеспечению и совместимость версий

На уровне программного обеспечения важно четко понимать, что Компания VMware поддерживает vDGA в vSphere 6.x и более поздних версиях.Однако некоторые пользователи сообщали о специфических проблемах с определенными комбинациями оборудования (например, с графическими процессорами NVIDIA GRID в серверах Dell R720 с ESXi 6.x).

В таких случаях часто встречаются ошибки, например, «устройство уже используется», или симптомы, указывающие на то, что... Функция сквозной передачи данных перестала работать после обновления с ESXi 5.5 до 6.x.В действительности же речь идёт о конкретных ошибках, изменениях в управлении PCI-устройствами или драйверах, а не об официальном прекращении поддержки.

Гостевая операционная система, которая будет использовать графический процессор в режиме сквозной передачи, должна иметь В виртуальную машину установлены официальные драйверы от производителя. (NVIDIA, AMD, Intel), поскольку ESXi не загружает какой-либо специальный драйвер для этой карты при использовании ввода-вывода VMDirectPath; гипервизор просто предоставляет доступ к устройству гостевой системе.

Кроме того, виртуальную машину необходимо настроить для загрузки в Режим EFI или UEFI При использовании графических процессоров, объявляющих большие области памяти MMIO, эта деталь имеет решающее значение: некорректная прошивка виртуальной машины может привести к сбоям. Загрузка или что графический процессор не инициализируется должным образом гостевой операционной системой.

На стороне клиента, если доступ к виртуальной машине осуществляется через Удаленный рабочий стол (RDP или другие протоколы)Необходимо активировать соответствующие политики, чтобы гостевая система использовала аппаратный графический адаптер в удаленных сессиях и не была привязана к стандартному драйверу без аппаратного ускорения.

  Центр обновления Windows не работает в Windows 7. Что мне делать?

Настройка сквозной передачи графического процессора в VMware

Настройка хоста ESXi для использования графического процессора в режиме сквозной передачи.

Первый практический шаг — это подготовка Сервер vSphere/ESXi предоставляет доступ к графическому процессору в качестве устройства ввода-вывода DirectPath.Это включает в себя доступ к BIOS, проверку списка PCI-карт на хосте и маркировку карты для ее назначения виртуальным машинам.

Если графический процессор требует больших областей памяти MMIO (16 ГБ или более), вам необходимо проверить BIOS/UEFI сервера на наличие таких опций, как... «Декодирование выше 4G» или «Обработка 64-битных ресурсов PCI выше 4G» и активировать их. Конкретное название может варьироваться в зависимости от производителя, но обычно его можно найти в настройках PCI или в разделе расширенных ресурсов.

После запуска ESXi с этими настройками в клиенте vSphere вы можете перейти к соответствующему хосту и получить доступ. «Настройка → Оборудование → PCI-устройства → Редактировать» Чтобы просмотреть список обнаруженных PCI-устройств, вы увидите карты NVIDIA, AMD или аналогичные, а также остальное PCI-оборудование сервера.

Если поддержка ввода-вывода DirectPath для графического процессора еще не включена, просто поставьте галочку. Пропускной ящик у вашего входа в этом списке. При сохранении изменений vSphere предложит перезапустить хост для применения конфигурации, поскольку гипервизору необходимо зарезервировать и подготовить устройство для переназначения виртуальным машинам.

После перезапуска, при возвращении в раздел «Настройка → Оборудование → PCI-устройства» Отобразится окно с заголовком типа «Устройства ввода-вывода PCI DirectPath, доступные для виртуальных машин», в котором будет перечислены все устройства, ставшие доступными для использования в виртуальных машинах, включая графические процессоры и, во многих случаях, передовые сетевые адаптеры, такие как Mellanox.

Подготовка и настройка виртуальной машины

После подготовки хоста следующим шагом является создание или адаптация виртуальной машины, которая будет использовать графический процессор. Первым делом необходимо убедиться, что виртуальная машина настроена. Он создан с использованием соответствующей прошивки EFI/UEFI.особенно в сценариях с высокопроизводительными графическими процессорами и большим количеством операций ввода-вывода (MMIO).

В клиенте vSphere просто выберите виртуальную машину и перейдите в... «Изменить настройки → Параметры виртуальной машины → Параметры загрузки» и убедитесь, что в поле «Прошивка» выбран параметр «EFI» или «UEFI». Если это не так, его необходимо изменить (а в некоторых случаях потребуется пересоздать виртуальную машину или операционную систему, если она не поддерживает горячую замену).

При использовании сквозной передачи данных с картами, отображающими более 16 ГБ пространства MMIO, рекомендуется настроить некоторые расширенные параметры в конфигурации виртуальной машины, доступной по адресу «Редактировать настройки → Параметры виртуальной машины → Дополнительно → Параметры конфигурации → Редактировать конфигурацию»Там можно добавить ключи, связанные с pciPassthru, для управления способом резервирования адресного пространства.

В частности, обычно включается использование 64-битного MMIO, и для этой области определяется размер, вычисляемый на основе Сколько высокопроизводительных графических процессоров будет выделено виртуальной машине?Как правило, принято умножать 16 на количество графических процессоров и округлять результат до следующей степени двойки (например, два таких графических процессора обеспечат 64 ГБ 64-битного MMIO).

После настройки этих параметров выполняется установка или проверяется, что Гостевая операционная система поддерживает EFI/UEFI и способна обрабатывать соответствующий объем памяти и графический процессор.На данном этапе видеокарта еще не подключена к виртуальной машине; среда просто подготавливается, чтобы после подключения все запустилось без ошибок, связанных с нехваткой ресурсов или несовместимым программным обеспечением.

Назначьте графический процессор виртуальной машине, используя интерфейс ввода-вывода VMDirectPath.

После того как хост отметит графический процессор как доступный для ввода-вывода DirectPath и виртуальная машина будет правильно настроена, можно приступать к следующему шагу. физически связать карту с этой виртуальной машинойЭтот шаг необходимо выполнить при полностью выключенной виртуальной машине.

В клиенте vSphere выберите виртуальную машину и введите Чтобы просмотреть виртуальное оборудование, нажмите «Изменить настройки».В списке устройств можно нажать «Добавить новое устройство» и выбрать «Устройство PCI», если графический процессор еще не указан в списке. Затем выберите устройство PCI, соответствующее видеокарте (например, видеокарта NVIDIA или AMD, обнаруженная на хосте).

После сохранения конфигурации виртуальная машина отобразит на своем оборудовании примерно следующее. «Устройство PCI 0», связанное с конкретным графическим процессором.С этого момента при запуске гостевой операционной системы она будет видеть дополнительный адаптер PCIe, соответствующий физической видеокарте.

Крайне важно, чтобы виртуальная машина имела зарезервировано все выделенное для него пространство памятиВ vSphere это настраивается в разделе «Изменить параметры → Виртуальное оборудование → Память», где значение параметра «Резервирование» устанавливается равным объему оперативной памяти, выделенной для виртуальной машины. Без полного резервирования передача PCI может завершиться неудачей или возникнуть периодические проблемы.

  Время ожидания светофора истекло | Решения

После включения виртуальной машины в системе Linux Наличие графического процессора можно проверить с помощью команды тип lspci | grep nvidiaВ Windows же он будет отображаться в разделе «Видеоадаптеры». Диспетчер устройствВполне нормально видеть как эмулируемый VMware графический адаптер, так и выделенный физический графический процессор.

Последний шаг — установка следующего программного обеспечения на гостевое устройство: драйверы Представители производителей графических процессоровЗагрузите драйверы с веб-сайтов NVIDIA, AMD или Intel, избегая использования универсальных драйверов или драйверов, поставляемых производителями. Центр обновления Windowsкоторые могут быть не оптимизированы для сценариев сквозной передачи.

Ограничения и функции vSphere, несовместимые с vDGA.

Обратная сторона сквозной передачи графического процессора в VMware заключается в том, что Некоторые расширенные функции платформы утрачены. За счёт выделения физического устройства непосредственно для виртуальной машины. Такова цена за производительность, близкую к нативной.

Первая большая жертва – это vMotion и DRSВиртуальную машину с графическим процессором в режиме сквозной передачи невозможно перенести на другой хост без остановки работы, поскольку видеокарта физически привязана к исходному серверу. Также нельзя использовать автоматические политики балансировки нагрузки, предполагающие перемещение виртуальной машины между хостами в кластере.

Такие особенности, как Традиционные моментальные снимки или определенные механизмы обеспечения высокой доступности Это относится именно к этой виртуальной машине. Поскольку она зависит от очень специфического физического оборудования, возможность замораживания и восстановления сложных состояний ограничена.

Ещё один аспект, который следует учитывать, заключается в том, что в этом режиме... Графический процессор не используется совместно несколькими виртуальными машинами.Если на одной машине требуется несколько настольных компьютеров или серверов с графическим ускорением, потребуется одна видеокарта на каждую виртуальную машину, или же можно использовать модель vGPU, где видеокарта виртуализирована для нескольких экземпляров.

Что касается технической поддержки, могут быть отдельные случаи, когда Определенные сочетания оборудования и драйверов могут вызывать проблемы.Как отмечали некоторые пользователи при обновлении до ESXi 6.x с видеокартами NVIDIA GRID на определенных серверах (например, Dell R720), в таких случаях рекомендуется ознакомиться с документацией VMware и производителя видеокарт, а при необходимости открыть заявку в службу поддержки.

Наконец, следует отметить, что некоторые технологии или сервисы, взаимодействующие с графикой, такие как удаленные рабочие столы, подсистемы Linux в Windows или расширенные функции операционной системы.Они могут создавать помехи или вызывать ошибки "код 43" в драйверах NVIDIA, если обнаружат, что вы работаете внутри виртуальной машины с передачей графического процессора.

Проброс графического процессора в других гипервизорах: параллельная обработка с Hyper-V.

Хотя основное внимание здесь уделяется VMware, стоит понимать, как... другие гипервизоры (например) виртуализация с помощью KVM и virt-manager) удовлетворяет ту же потребность в выделении физического графического процессора виртуальной машине.Потому что терминология и инструменты меняются, но основная идея остается схожей.

В Hyper-V эквивалентом VMware VMDirectPath I/O является Прямое назначение устройств с использованием DDA (Discrete Device Assignment)Этот метод позволяет напрямую подключать конкретное устройство PCIe, например, графический процессор или NVMe, к виртуальной машине Windows, обеспечивая уровень контроля и производительности, аналогичный сквозной передаче в ESXi.

В более старых версиях Windows Server использовалась эта технология. RemoteFX Предлагает виртуализацию графических процессоров и позволяет использовать одну видеокарту несколькими виртуальными машинами. El TiempoИз-за проблем с безопасностью и ограничений производительности (таких как ограничение в 1 ГБ видеопамяти на виртуальную машину и 30 кадров в секунду) Microsoft отказалась от RemoteFX и оставила DDA в качестве основного решения для сценариев с использованием выделенных графических процессоров.

В Windows 10 и Windows 11В частности, в некоторых компиляциях появилась поддержка для Разделение графического процессора и повторное использование механизмов из WSL2 и Windows Sandbox.Однако его настройка обычно включает в себя сложные скрипты и копирование драйверов с хоста на гостевую систему, что не так просто, как назначение устройства в vSphere.

Знание этих альтернатив позволяет нам понять, что Философия заключается в предоставлении доступа к графическому процессору практически нативно через прямой канал PCIe. Это характерно для нескольких гипервизоров, хотя каждый из них имеет свои нюансы, команды и ограничения совместимости.

Вся эта экосистема сквозной передачи данных, vGPU и DDA демонстрирует, что при правильной настройке и наличии подходящего оборудования, Вполне возможно использовать мощные графические процессоры внутри таких устройств. виртуальные машины для производства Для рабочих нагрузок, варьирующихся от требовательных графических настольных систем до ИИ и высокопроизводительных вычислений, всегда следует исходить из того, что вам придется отказаться от некоторых удобств традиционной виртуализации, и уделять пристальное внимание драйверам, версиям гипервизора и поддержке со стороны производителя графического процессора.

аппаратная виртуализация
Теме статьи:
Как включить виртуализацию из BIOS или UEFI пошагово