Как в vmware подключить видеокарту

Обновлено: 04.07.2024

NVIDIA GRID — это платформа для виртуализации графики, которая обеспечивает работу виртуальных рабочих столов и приложений с использованием графической акселерации, демонстрируя превосходные графические возможности для работы различных приложений: начиная от офисных и заканчивая всевозможными дизайнерскими. Суть технологии GRID заключается именно в виртуализации рабочих мест и существенном снижении энергопотребления и себестоимости по сравнению с предшествующими схожими решениями.

При использовании хоста VMware ESXi функционирование NVIDIA GRID возможно в двух режимах:

  • Virtual Shared Graphics Acceleration (vSGA) — это технология виртуализации GPU, позволяющая запускать теоретически неограниченное количество виртуальных машин использующих ресурсы одной графической карты. Обладает множеством ограничений по функционалу виртуальных карт, однако может обеспечить максимальную “плотность” виртуальных машин на одну видеокарту. Список видеокарт, поддерживающих данную технологию можно получить в VMware Compability Guide.
  • Virtual Graphics Processing Unit (vGPU) — технология виртуализации GPU, где каждая виртуальная машина получает свой vGPU, практически без потери производительности. Очевидным недостатком данной технологии является ограниченное количество графических юнитов на плате: например, для NVDIA GRID K1 доступно 4 юнита.

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

Подготовка хоста ESXi.

В первую очередь не о бходимо скачать драйвер с сайта NVDIA. Здесь есть vib-пакеты, как для добавления драйвера в установочный образ ESXi (offline bundle), так и для последующей установки драйвера на хост ESXi. Для того, чтобы разместить vib-пакет на хранилище хоста ESXi можно использовать vSphere Client, или передать его по SSH c помощью WinSCP. Далее, подключившись к хосту ESXi, переводим его в Maintance Mode (из vSphere Client, или напрямую из консоли) и выполняем установку пакета командой в следующем формате:

Полный путь к vib-пакету обязательно нужно указывать, даже если вы запустили команду из той же директории. Подробней об установке vib-пакетов можно прочитать здесь.

Далее необходимо запустить Xorg:


Нажать “Start” и выбрать “Start and stop with host”.

Запустить Xorg можно так же через SSH:

Для того, чтобы удалить или обновить драйвер на хосте ESXi необходимо сначала остановить Xorg:

и удалить NVIDIA VMkernel драйвер командой:

Теперь необходимо идентифицировать VIB-пакет:

и удалить его командой:

Для обновления vib-пакета можно использовать команду:

Virtual Shared Graphics Acceleration (vSGA).

После того, как установлен драйвер и запущен Xorg, всем виртуальным машинам хоста будет доступен графический адаптер, определяемый в системе, как VMware SVGA 3D. (для некоторых гостевых систем, таких как Windows, может так же потребоваться установка WMware Tools).



Теперь можно перейти в свойства виртуальной машины, увеличить объем используемой видеопамяти и включить поддержку 3D-опций (Enable 3D Support).

Обратите внимание, что использование 3D-опций для Windows 2008/2012 Server отключено по умолчанию. Для их активации необходимо:

  1. Поменять тип ОС на Windows 7/8 (в Options > General Options)
  2. Добавить в конец файла VMX (файла-конфигурации виртуальной машины) строку:

и перезагрузить виртуальную машину командой:

Более подробную информацию можно получить здесь.

Virtual Graphics Processing Unit (vGPU).

Режим vGPU представляет из себя “проброс” (passthrough) графических юнитов видеокарты в гостевые системы. Например, для NVDIDA GRID K1 возможен “проброс” четырех агрегированных устройств vGPU и, следовательно, можно использовать видеокарту на четырех виртуальных машинах.



Для активации “проброса” устройства м выбора агрегирования устройства откройте:

Выберите нужное количество vGPU для “проброса” через хост ESXi, нажмите ОК и перезагрузите хост ESXi.

Теперь после перезагрузки в свойствах виртуальной машины можно добавить PCI Device, где в открывшемся списке появятся проброшенные на хост vGPU. Остается скачать и установить соответствующий вашей гостевой системе драйвер. Например, драйвер для OS Windows 7/8/10/2008/2012 можно скачать здесь, а после его установки система распознает устройство, как NVDIDIA GRID K1/K2.

vSGA vs. vGPU.

Разумеется, доступность тех, или иных функций API видеокарты их работоспособность в софте будет еще зависеть и от используемой технологии для публикации приложений и рабочих столов: наиболее высокую графическую производительность на сегодняшний день дают Citrix XenDesktop и VMware Horizon.

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


GPU-Z для vSGA выдает неутешительную картину, отзываясь о большинстве параметров как “Unknown”, тогда как по результатам Everest видно, что даже поддержка OpenGL осуществляется не полностью:

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


Если требуется более расширенный режим, то стоит задуматься о переходе к vGPU. Здесь показания GPU-Z уже выглядят намного солидней (поддерживаются следующие API: DirextX, OpenCL, Direct Compute и CUDA), EVEREST говорит о 100% совместимости со всеми версиями OpenGL и, так же, уже стоит обратить внимание на результаты GPU Shark. Таких графических возможностей уже должно быть достаточно для использования дизайнерских программ. В остальном, работоспособность функционала различных API и производительность подлежит тестированию в конкретном программном обеспечении.

Прошу помочь в решении проблемы с "пробросом" видеокарты в гостевую OS X. Хостовая система - Windows 10. При подключении образа виртуалки в программе VMwere Workstation все работает без нареканий, но жутко "лагает".
Моя конфигурация:

a5036956d85c43be8756c1fcdece89dc.jpg

Подскажите пожалуйста что можно предпринять в данной ситуации? Может нужен другой софт? Или лучше поменять местами системы, к примеру Windows 10 запускать как виртуалку из OS X?
Думал уже устанавливать отдельно каждую из систем на SSD, без всяких виртуалок. Но SSD нет, а без него у меня получасовая перезагрузка.
Буду очень признателен за помощь.

Средний 7 комментариев

vmware tools установлены в os x? ускорение включено в настройках вирт машины?
"Может нужен другой софт?"
parallels mac умеет 3d ускорение в госте windows.

dummyman

А у вас 4 видеокарты? Оно вообще может работать по отдельности? Просто если была бы видеокарта одна, пробросив ее в виртуалку вы лишитесь возможностью ей пользоваться из хоста.

Marusis

123459: Сейчас рассматриваю Ваш совет по программе parallels mac. Возник пока только один вопрос: будут ли игры нормально функционировать в такой связке? Анатолий Талугин: если хотите проверить - сделайте образ вашей текущей системы, сохраните его на другой диск. поставьте хакинтош и проверьте parallels

Marusis

Marusis

Мною была установлена связка Хакинтош+Parallels+Windows 10. При одновременной работе этой связки лаги конечно есть, но без Parallels все работает без лагов. С учетом моего железа, хакинтошем доволен.

TrueBers

Вам нужно убедиться, что ваша плата поддерживает технологию VT-d. Это раз.

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

Если плата поддерживает технологию, то проще поставить линукс с kvm и в нём придётся пошаманить с детачем всех модулей, которые используют видео-драйвер. При этом ещё нужно будет одно устройство, чтобы дебажить это дело по ssh, когда монитор проброшен на гостя, который не запустился :D


Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
  • VMware Technology Network
  • :
  • Global
  • :
  • Russian
  • :
  • Russian Discussions
  • :
  • Проброс физической PCI-E видеокарты в виртуалку
Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Сам так делал с PCI-E адаптековским контроллером ASR 3805 и всё отлично работало.

Кто пробрасывал видеокарту? Слышал, там не всё так гладко.

Dmitry_G
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Хороший пост на русском:

Для какой цели пытаетесь орагнизовать такой проброс?

Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Это уже читал. Не радужные перспективы

Работа специфического ПО с использованием рассчетов на GPU

Dmitry_G
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Статью с хабра писал мой тех. директор :smileylaugh: , у vmware дейтсвительно все не радужно с пробросом видеокарт.

Вечером попробую на домашнем стенде попробую пробросить встроенную HD2500 в виртуалку, но как проверить что она дейтсвительно работает в VM не знаю.

Можно подождать VGX от NVidia :smileymischief:

LordAlfred
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

С горем пополам, но осилил проброс видеокарты nvidia в гостевую ОС Ubuntu.

Самое тяжелое было победить все ошибки, которые выходили при попытке установить драйвера на убунту 16.04. Но вроде как всё сложилось более-менее, поэтому я несколько раз проверил это на тестовых виртуалках и написал подробное руководство в своем блоге.

Ссылка на статью о том, как пробросить видеокарту в Ubuntu из хостовой ESXi и корректно установить драйвера + CUDA Toolkit: Проброс (passthrough) видеокарты nVIDIA в виртуалку Ubuntu 16.04 для хоста VMWare vSphere ESXi 6.5

Те, кто пользуются гуглом - обязательно наткнутся на этот комментарий и в итоге не будут мучаться 3 дня как это было у меня

Проверяем BIOS ./rom-parser image.rom
Если вы видите подобное PCIR: type 3(EFI ROM), то ваша видеокарта поддерживает OVMF.
Ваш конфиг виртуалки будет немножко отличаться.

1. Устанавливаем необходимый софт pacman -S qemu libvirt synergy
2. Нужно подкорректировать загрузку ядра, что бы не подцеплялась, наша видеокарта которую мы будем прокидывать. Нужно узнать id вендора и кода нашей видеокарты. Для этого выводим lspci Находим там код видеокарты, запоминаем его, и вводим уже lspci -n Теперь правим параметры загрузки grub, для этого открываем /etc/default/grub
и добавляем параметр в GRUB_CMDLINE_LINUX_DEFAULT vfio-pci.ids=10de:11c6,10de:0e0b
У меня следующего вида
Применяем параметры grub-mkconfig -o /boot/grub/grub.cfg , после перезагрузки, должно быть нечто подобное dmesg | grep vfio_pci :
Подкорректируем /etc/mkinitcpio.conf:
Применим mkinitcpio -p linux (linux изменить на имя вашего ядра)

3. После окончания установки, настало время прокинуть видеокарту.
Раскоментируем строку в конфиге
и запустим виртуалку.

Если все прошло хорошо, должно определиться новое устройство, скачиваем и устанавливаем драйвера для видеокарты, я не ставил никакого лишнего софта, только драйвера, пишут что Catalyst control center да и nvidia experience загоняет в синий экран, не проверял.

Нужно не забыть установить synergy, без этой программы управление(мышкой и клавиатурой) виртуалкой будет невозможно.
Найдете ее на торрентах или прочих сайтах, там в настройках надо указать client: 10.0.2.2(дефолтный ip хоста) и имя экрана, допустим Windows. Теперь настроим synergy на хосте(компьютер с Linux), создадим конфиг следующего содержания:
synergy.conf
Windows и Linux это имена экранов, измените на ваши
Запустим synergy synergys --config synergy.conf --debug INFO , и при передвижение мышки за левую часть экрана, она должна переходить на виртуалку.
Если все получилось, выключаем виртуальную машину, в конфиге меняем строку -vga std на -vga none , подключаем к выходу проброшенной видеокарты кабель к монитору, запускаем виртуалку и у нас на экране должна появится картинка с процессом загрузки. Проверяем функциональность synergy, кнопка F12 блокирует курсор на текущем экране.


Выклаываю полный скрипт запуска виртуалки
Так же рекомендую отключить запрос на восстановление системы при загрузке после сбоев
В данную тему я нырнул лишь ради интереса и возможности поиграть в ММО Black Desert, отлично кстати работает.

UPD 01.06.2019
Обновил компьютер до Ryzen и столкнулся с проблемой
Подробности здесь AMD Ryzen и проблемы с пробросом видеокарты в QEMU KVM

UPD 15.09.2019
После очередного обновления начались неприятности, qemu падал в core-dump при попытке издать малейший звук, решилась эта проблема добавлением строки
1000 — id вашего юзера, все переменные QEMU_AUDIO можно убрать.

Если будет писать что нет доступа

Можно скопировать пользовательские cookie в root
На 15.09 проблема с Ryzen еще присутствует, приходится патчить ядро.

Читайте также: