2014-07-09 20:41:04 +0000 2014-07-09 20:41:04 +0000
30
30

Utiliser le GPU NVidia de VirtualBox ?

Comment faire pour que l'invité de la VirtualBox utilise les graphiques NVidia ?

Configuration de l'hôte :

  • Windows 7 x64

  • NVidia Optimus

  • Dans le Panneau de configuration NVIDIA, j'ai explicitement sélectionné Processeur NVIDIA haute performance pour :

  • Lorsque VirtualBox fonctionne, le logiciel NVidia ne le répertorie pas comme une application utilisant le GPU NVidia. Par conséquent, je suppose que VirtualBox n'utilise effectivement pas le GPU Nvidia.

Invité :

  • Windows 7 x64 (c'est-à-dire identique à l'hôte)

  • Ajouts invités installés

  • Accélération 3D activée dans les paramètres de VirtualBox : Affichage / Vidéo / Activer l'accélération 3D

  • Quoi Rhinocéros , une application compatible OpenGL signale comme adaptateur vidéo :

Réponses (2)

22
22
22
2019-01-18 20:23:51 +0000

Je réalise que quelques années ont passé mais je voulais répondre puisque ce post apparaît assez haut quand on cherche sur Google “virtualbox 3d multiple GPU”. Au fil du temps, les choses se sont beaucoup simplifiées et améliorées.

Les gens qui tombent sur ce sujet atterriront probablement ici parce qu'ils ont un ordinateur portable ou un PC qui a deux GPU, ce qui est assez courant de nos jours - surtout sur les portables de jeu. Le GPU Intel intégré est utilisé pour le rendu des fenêtres et des applications générales, mais les applications qui utilisent la fonctionnalité GPU 3D devraient le faire via le GPU Nvidia, plus performant.

Aujourd'hui, je construisais une VM Ubuntu sur mon portable pour faire du développement multiplateforme, et tout allait bien sauf que la VM invitée était extrêmement lente, et il n'y avait pas d'explication à cela parce que le CPU, la mémoire, le disque étaient tous faiblement utilisés.

Il n'a pas fallu longtemps pour comprendre que c'était la performance vidéo qui causait le problème. Le lancement d'applications, la maximisation/minimisation des fenêtres – tout ce que nous considérons comme acquis en 2019 mais qui a besoin d'une accélération 3D pour fonctionner à une vitesse raisonnable – utilisait le GPU 0.

Il a été facile de le déterminer car Windows 10 a maintenant la possibilité de voir l'utilisation du GPU en utilisant le “gestionnaire de tâches”, puis l'onglet “performances”. Et je pouvais voir en déplaçant les fenêtres, en maximisant, en minimisant, que cela se faisait par le biais du GPU sur l'hôte. Ce GPU sur l'hôte est le GPU Intel HD intégré, et je voulais utiliser le NVidia GTX-1050ti, qui était le GPU1.

Après avoir fait des recherches, je n'ai pas vraiment trouvé d'endroit où l'on puisse spécifier quel GPU utiliser. Mais ce fil de discussion, et quelques autres, m'ont rappelé que pour ce genre de configuration, il faut aller dans le panneau de configuration NVidia, puis “gérer les paramètres 3d”, puis l'onglet “Program Settings”.

Vous ne trouverez probablement pas “Virtualbox” dans la liste. Mais vous pouvez appuyer sur le bouton “Ajouter”, et ajouter virtualbox.exe. Il se peut que vous deviez forer le lecteur/chemin d'accès où se trouve votre installation de Virtualbox. Une fois que vous l'avez ajoutée, dans les paramètres ci-dessous, assurez-vous que le point 2. “Sélectionner le processeur graphique préféré pour ce programme” est réglé sur le GPU que vous voulez qu'il utilise, qui dans mon cas était “processeur NVIDIA à haute performance”.

Ne le réglez pas sur auto, et certainement pas sur intégré. Bien sûr, il faut que les paramètres de la VM soient réglés avec la case d'accélération 3D cochée, et il faut que les ajouts invités soient installés sur l'hôte. Mais une fois que vous avez défini les paramètres 3d de la vidéo hôte comme décrit ci-dessus, fermez la VM invitée, quittez la virtualbox, puis relancez la virtualbox et la VM.

Si vous utilisez le task manager|performacne et que vous regardez le processus du “virtualbox manager” et que vous regardez quel GPU est utilisé lorsque vous naviguez dans l'interface utilisateur de la VM invitée, vous devriez voir qu'elle utilise maintenant le meilleur GPU. Voir l'image collée ci-dessous.

Tout cela dit, ne vous attendez pas à pouvoir exécuter des jeux dans une VM invitée. L'accélération 3D n'est pas encore très avancée. Mais vous pouvez vous attendre à avoir un système d'exploitation et une interface utilisateur modernes dans votre VM invitée, et avoir une expérience acceptable. On pourrait jouer à des jeux plus anciens dans la VM invitée, comme tout ce qui est basé sur directX9. Malheureusement, à mesure que la capacité de virtualisation du GPU se développe, la technologie de jeu en 3D évolue plus rapidement.

17
17
17
2015-12-31 17:15:00 +0000

Il n'est probablement pas possible de donner à l'invité un accès complet au GPU. Si une machine virtuelle avait un accès direct à votre GPU pendant que votre hôte l'utilise, de mauvaises choses se produiraient car le partage de la mémoire entre deux ordinateurs effectivement différents n'est pas une chose ; les pointeurs et les adresses et autres seraient très différents entre eux. (Aucune carte disponible chez le consommateur ne permet de gérer deux ordinateurs à la fois.)

Il y a cependant des choses que vous pouvez essayer. Tout d'abord, réglez votre processeur graphique préféré sur le bon dans le panneau de configuration NVidia (3D SettingsManage 3D settingsPreferred graphics processor). Cela pourrait permettre à VirtualBox de fonctionner avec la carte NVidia pour OpenGL.

Si cela ne vous aide pas, essayez installation des ajouts de l'invité en mode sans échec sur l'invité.

Enfin, sur les hôtes Linux, vous pouvez essayer de faire passer le GPU à la machine virtuelle, mais cela ne fonctionnera que pour les cartes PCI et je n'ai pas pu trouver si la vôtre est PCI, et même ainsi, vous avez de bonnes chances d'arracher le GPU à l'hôte ou de causer d'autres problèmes. Trouvez d'abord l'adresse PCI (bus, appareil et fonction) de la bonne carte. Réglez le chipset de votre VM sur ICH9 ; cela n'a rien cassé immédiatement quand j'ai essayé. Ensuite, utilisez l'utilitaire VBoxManage pour attacher la carte :

vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f

Remplacer Your VM Name selon le cas. BB est le numéro de bus de votre GPU sur l'hôte ; DD est le périphérique ; F est la fonction. Après le @, entrez l'emplacement PCI qui sera sur l'invité. Par exemple :

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

En général, le passage du GPU est plus susceptible d'être possible sur un hôte Linux. Voir Comment configurer une machine de jeu avec passage GPU .