Использовать графический процессор NVidia от VirtualBox?

Как заставить гостя VirtualBox использовать графику NVidia?

Настройка хоста:

  • Windows 7 x64

  • NVidia Optimus

  • В Панель управления NVIDIA , я явно выбрал высокопроизводительный процессор NVIDIA для:

      C:  Program Files   oracle  VirtualBox  VirtualBox.exe C:  Program Files  Oracle  VirtualBox  VBoxSVC.exe  
  • Когда VirtualBox запущен, Программное обеспечение NVidia не указывает его как приложение, использующее графический процессор NVidia. Поэтому я предполагаю, что VirtualBox действительно не использует графический процессор Nvidia.

Гость:

  • Windows 7 x64 (то есть такой же, как хост)

  • Гостевые дополнения установлены

  • 3D-ускорение включено в настройках VirtualBox: Display/Video/Enable 3DAcceleration

  • What Rhinoceros, приложение с поддержкой OpenGL, сообщает как видеоадаптер :

      Версия HumperChromiumOpenGL: 2.1 Chromium 1.9 Версия рендера: 2.0 Язык шейдинга: 1.40 - Intel Build 9.17.10.3517 Дата драйвера: NADriver Версия: NAM Максимальный размер текстуры: 8192 x 8192 Z-Buffer  глубина: 32 бита Максимальный размер области просмотра: 8192 x 8192 Общий объем видеопамяти: 64 МБ  

    Мне кажется, что виртуальная машина действительно использует аппаратное 3D-ускорение хоста, но, к сожалению, Intel.


Я понимаю, что прошло несколько лет, но хотел ответить, так как этот пост отображается довольно высоко, когда вы вводите в Google запрос «virtualbox 3d multiple GPU» . С течением времени все стало намного проще и лучше.

Люди, которые наткнулись на эту тему, скорее всего, попадут сюда, потому что у них есть ноутбук или ПК с двумя графическими процессорами, что довольно обычное дело в наши дни — особенно на игровых ноутбуках. Встроенный графический процессор Intel используется для рендеринга окон и общих приложений, но приложения, использующие 3D-функции графического процессора, должны делать это с помощью более производительного графического процессора Nvidia.

Сегодня я собирал виртуальную машину Ubuntu на своем ноутбуке для кросс-платформенной разработки, и все было в порядке, за исключением того, что гостевая виртуальная машина была очень медленной, и этому не было объяснения, потому что процессор, память, все диски показывали низкое использование.

Не потребовалось много времени, чтобы понять, что проблема была в производительности видео. Запуск приложений, максимизация/минимизация окон — все, что мы считаем само собой разумеющимся в 2019 году, но требует 3D-ускорения для работы на любой разумной скорости — с использованием графического процессора 0.

Это было легко определить, потому что В Windows 10 теперь есть возможность видеть использование графического процессора с помощью «диспетчера задач», а затем вкладки «производительность». И я мог видеть, как я перемещал окна, разворачивал их, сворачивал, что происходило через графический процессор на хосте. Этот графический процессор на хосте — это интегрированный графический процессор Intel HD, и я хотел использовать NVidia GTX-1050ti, который был GPU1.

После поиска я действительно не нашел нигде, где можно было бы указать, какой GPU использовать. Но эта ветка и некоторые другие напомнили мне, что при таких настройках вам нужно зайти в панель управления NVidia, затем «управлять настройками 3D», затем на вкладке «Настройки программы».

Вы вряд ли найдете «Virtualbox» в списке. Но вы можете нажать кнопку «Добавить» и добавить virtualbox.exe. Возможно, вам придется развернуть диск/путь, где находится ваша установка виртуального бокса. После того, как вы добавили его, в настройках ниже убедитесь, что в пункте 2. «Выберите предпочтительный графический процессор для этой программы» установлен графический процессор, который вы хотите использовать, который в моем случае был «Высокопроизводительный процессор NVIDIA». .

Не устанавливайте его в автоматическом режиме и, конечно же, не устанавливайте его в интегрированный. Конечно, вам нужны настройки виртуальной машины с установленным флажком 3D-ускорение и гостевые дополнения, установленные на хосте. Но после того, как вы установили параметры 3d видео хоста, как описано выше, выключите гостевую виртуальную машину, выйдите из виртуального окна, а затем повторно запустите виртуальный бокс и виртуальную машину.

Если вы используете диспетчер задач | Performacne и посмотрите на процесс «диспетчера виртуальных боксов» и посмотрите, какой графический процессор используется при навигации по пользовательскому интерфейсу гостевой виртуальной машины, вы должны увидеть, что теперь он использует лучший графический процессор. Смотрите изображение, вставленное ниже.

С учетом всего сказанного, не ожидайте, что у вас появится возможность запускать игры на гостевой виртуальной машине. Прохождение 3D-ускорения все еще не так далеко. Но вы можете рассчитывать на то, что у вашего гостя будет современная ОС и пользовательский интерфейс, и у вас будет приемлемый опыт. Можно было бы играть в старые игры на гостевой виртуальной машине, как и во все, что основано на DirectX9. К сожалению, по мере развития возможностей виртуализации графического процессора технология трехмерных игр развивается быстрее.


21

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

Однако есть кое-что, что вы можете попробовать. Сначала установите нужный графический процессор на хороший на панели управления NVidia ( Настройки 3D Управление настройками 3D Предпочитаемый графический процессор ). Это может заставить VirtualBox работать с картой NVidia для OpenGL.

Если это не помогает, попробуйте установить гостевые дополнения в безопасном режиме на гостевой системе..

Наконец, на хостах Linux вы можете попробовать передать GPU на виртуальную машину, но это будет работать только для карт PCI, а я не Вы можете определить, является ли ваш компьютер PCI, и даже в этом случае у вас есть хорошие шансы оторвать графический процессор от хоста или вызвать другие проблемы. Сначала найдите адрес PCI (шина, устройство и функция) для исправной карты. Установите чипсет вашей виртуальной машины на ICH9; это не сразу ничего сломало, когда я попробовал. Затем используйте утилиту VBoxManage, чтобы прикрепить карту:

  vboxmanage modifyvm "Имя вашей виртуальной машины" --pciattach BB: DD.F@bb: dd.f  

Замените имя вашей виртуальной машины соответствующим образом. BB — номер шины вашего графического процессора на хосте; DD — устройство; F — это функция. После @ введите слот PCI, который будет на гостевой. Например:

  vboxmanage modifyvm "Windows 7 x64" --pciattach 01: 00.0@03.01.0  

В общем, Сквозной трафик GPU более вероятен на хосте Linux. См. Как настроить игровой автомат с сквозной передачей графического процессора.

Поделиться
Улучшите этот ответ
отредактировано 31 января ’19 в 17:08
ответил 31 декабря 2015 г., в 17:15
  • 3
    Предпосылка, что подключение графического процессора к виртуальной машине является «плохой вещью» неверно; существует большое сообщество людей, которые хотят создать игровые виртуальные машины на голых гипервизорах. Если бы кто-то хотел сделать это в Linux, потребовалось бы занести в черный список графический процессор PCIe, чтобы ядро ​​перешло только на графику набора микросхем; это предотвращает проблемы с «общей памятью». Предотвратить получение карты Windows, вероятно, является самой сложной проблемой для решения этого вопроса, и для этого, вероятно, потребуется отключить устройство или удалить optimus и драйвер nvidia. — Тим Джи 04 авг., 01:26
  • @TimG Хорошее замечание, я немного уточнил свой пост. Благодаря! — Бен Н 04 авг., В 1:28
  • @BenN Отличный ответ, но мне нужно прояснить момент. Вы сами пробовали это на хосте Windows? В руководстве говорится, что это доступно только на хостах Linux (virtualbox.org/manual/ch09.html#pcipassthrough), и мне самому не повезло, что он работал с хостом Windows. — Барис Демирай, 22 янв. ’19 в 09:32
  • @BarisDemiray Если я правильно помню, команда не сообщала об ошибках, когда я ее пробовал, но я не думаю, что проверял, может ли виртуальная машина использовать Устройство. Хотя, извините, это было давно. — Бен Н, 30 янв., В 16:12
  • Привет, @BenN, спасибо, что нашли время ответить. Это именно то, что произошло, когда я попытался, без ошибок в командной строке и без видеокарты в виртуальной машине. — Барис Демирай 31 янв. ’19 в 8:49
| показать 1 дополнительный комментарий

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

Однако есть кое-что, что вы можете попробовать. Сначала установите нужный графический процессор на хороший на панели управления NVidia ( Настройки 3D Управление настройками 3D Предпочитаемый графический процессор ). Это может заставить VirtualBox пойти с картой NVidia для OpenGL.

Если это не поможет, попробуйте установить гостевые дополнения в безопасном режиме на гостевой машине.

Наконец, на хостах Linux вы можете попытаться передать графический процессор на виртуальную машину, но это будет работать только для карт PCI, и я не смог определить, является ли ваша карта PCI, и даже в этом случае , у вас есть хороший шанс оторвать графический процессор от хоста или вызвать другие проблемы. Сначала найдите адрес PCI (шина, устройство и функция) для исправной карты. Установите чипсет вашей виртуальной машины на ICH9; это не сразу ничего сломало, когда я попробовал. Затем используйте утилиту VBoxManage, чтобы прикрепить карту:

  vboxmanage modifyvm "Имя вашей виртуальной машины" --pciattach BB: DD.F@bb: dd.f  

Замените имя вашей виртуальной машины соответствующим образом. BB — номер шины вашего графического процессора на хосте; DD — устройство; F — это функция. После @ введите слот PCI, который будет на гостевой. Например:

  vboxmanage modifyvm "Windows 7 x64" --pciattach 01: 00.0@03.01.0  

В общем, Сквозной трафик GPU более вероятен на хосте Linux. См. Раздел «Как настроить игровой автомат с сквозным подключением графического процессора».

Оцените статью
Botgadget.ru
Добавить комментарий