Existe-t-il une machine virtuelle avec un accès direct au CPU et au GPU pour les jeux?

10

Désolé pour la longue question.

Avec l'arrivée de Steam pour Linux, j'étais peut-être trop optimiste et je me suis débarrassé de l'installation de Windows. Le problème est que j'ai environ 100 jeux Steam qui ne sont pas (et ne seront peut-être jamais) portés sur Linux. Quoi qu'il en soit, je suis fatigué du double démarrage, et les solutions Wine (wineprefix et playonlinux) ne fonctionnent pas toujours. Je me demandais donc s'il existe une solution pour utiliser une machine virtuelle (ou quelque chose de similaire) avec un accès direct aux spécifications matérielles afin d'y exécuter des jeux Windows. (quelque chose comme ce que fait Parallels sur mac). Réinstaller Windows n'est pas un gros problème mais j'espérais l'éviter car j'aimerais utiliser Ubuntu comme mon système d'exploitation quotidien avec des distributions plus "difficiles" ... pour en savoir plus sur Linux.

Edit: Merci pour toutes vos réponses: je vais réfléchir à la solution que vous proposez. Honnêtement, à ce jour, je n'ai jamais entendu parler de Xen, alors je vais devoir en lire plus ... et peut-être acheter une nouvelle carte graphique ... et un nouveau moniteur. Je pense que je vais finir par réinstaller Windows sur l'un de mes disques ... C'est dommage cependant. Merci encore.

psylockeer
la source
2
Voir cette question sur les limitations importantes pour pouvoir accéder au GPU à partir de Virtual Box.
Takkat
@Takkat Avez-vous déjà eu l'occasion d'essayer le pass-through PCI? Cela a-t-il bien fonctionné?
Chad Harrison
@hydroparadise: non, mes matériels ne prennent pas en charge IOMMU. Je suppose que ce n'est pas vraiment facile à réaliser, et vous avez besoin de 2 cartes graphiques.
Takkat

Réponses:

11

La réponse courte est: Non.
La réponse plus longue est: Pas encore ...

Le support 3D de VBox compte à peine. Il fournit un support 3D mais absolument aucune performance. VMWare semble beaucoup plus performant (notez que le benchmark est sur un Mac) et cela pourrait être jouable. L'inconvénient ici est un gros tas d'argent (je ne sais pas à quoi ressemble le support 3D dans leurs offres gratuites).

Mais si vous voulez tirer pleinement parti de votre matériel pour les jeux Windows uniquement, il n'y a qu'une seule solution et c'est de démarrer dans Windows. J'ai peur de dire que ce sera probablement toujours le cas pour ce sous-ensemble de jeux.

Les seules autres solutions presque acceptables disponibles:

  • Fight Wine (quand ça marche, ça marche très bien)
  • Achetez une console.
  • Faites pression sur le développeur pour un port.

Il existe toutes sortes de technologies de serveur qui peuvent filtrer dans le temps :

  • Nvidia + Vmware travaille sur une plate-forme de jeu virtualisée à plusieurs têtes, mais je ne m'attends honnêtement pas à ce que ce niveau d'intégration soit entre les mains des consommateurs pendant une décennie, sinon plus. Les fabricants de graphiques veulent que nous achetions des dizaines et des dizaines de cartes et de virtualiser les blessures qui visent.

  • Vous pouvez l'inverser et avoir une machine virtuelle hôte Windows Server et paravirt un bureau Ubuntu, avec 3D partagé mais encore une fois, je ne suis pas sûr de ce que seraient les performances. Et c'est une tonne d'argent à faire légalement. L'hôte de bureau n'est pas aussi bon du tout.

  • Xen ne paravirtera pas une installation de Windows, il n'y a donc aucun intérêt à y regarder pour le moment. Il possède des modules relais PCI et VGA mais ils sont verrouillés sur une machine virtuelle, vous devez donc avoir une carte graphique pour chaque installation. Urgh.


Notez que je ne parle vraiment que des graphiques 3D car les autres sont des problèmes résolus ou presque résolus. La virtualisation du processeur est mature avec la paravirtualisation et les extensions de processeur comme Intel VT-x et AMD-V. Le passthrough périphérique est une bande passante assez faible et est donc simple à partager.

Les graphiques sont à la traîne parce que les partager de la manière dont nous parlons n'est pas une nécessité commerciale pour les fabricants. Cela semble toutefois aller dans ce sens (pour les fermes de rendu haut de gamme et la consolidation des postes de travail sur serveur), alors surveillez cet espace.

Oli
la source
En ce qui concerne le vin, PlayOnLinux vaut vraiment le détour ... playonlinux.com/fr
Chad Harrison
@Oli votre réponse était très complète, merci. Quoi qu'il en soit, j'ai vu qu'il est possible de monter une installation Windows existante sur une machine virtuelle (après un travail correct). Dans ce cas, l'accélération matérielle serait-elle la même que la virtualisation palin?
psylockeer
@psylockeer Vous voulez dire monter un disque physique (avec une vraie installation de Windows dessus) à l'intérieur d'une VM? Cela peut être fait dans tous les principaux logiciels de virtualisation, mais vous pourriez trouver que Windows se dérobe. La dernière fois que j'ai essayé de changer le matériel sur une installation Windows, il s'est retourné et n'est jamais allé plus loin qu'un écran bleu. J'espère que les États membres ont amélioré les choses depuis lors. L'accès n'est toujours pas direct (AFAIK) car le client VM accède toujours au lecteur via Linux - ce n'est tout simplement pas sur un autre système de fichiers aussi (si cela a du sens) - alors ne vous attendez pas à une augmentation importante des performances.
Oli
7

Si votre matériel et vos logiciels prennent en charge IOMMU (alias passthrough PCI, AMD-Vi et Intel VT-d), vous pouvez affecter des périphériques d'E / S (par exemple, la carte graphique) aux VM.

Sur les versions actuelles d'Ubuntu, vous pouvez utiliser Xen , tant que votre carte mère et votre CPU prennent en charge IOMMU.

J'utilise actuellement une machine virtuelle Windows 7 avec deux GPU AMD 7950, et cela fonctionne très bien pour les jeux et l'exploitation minière Bitcoin / Litecoin.

Tutoriels, etc.:

Notez que vous pouvez utiliser le GPU sur cette machine virtuelle si vous le transmettez.

Dennis
la source
Je pense qu'il ne pourra pas partager un seul GPU entre des machines virtuelles. Cependant, s'il a deux cartes vidéo (en particulier s'il a plusieurs moniteurs ou un moniteur avec deux entrées appropriées), ou s'il est d'accord pour accéder à l'interface graphique GNU / Linux uniquement via VNC, SPICE ou similaire, le passthrough GPU de Xen semble être un moyen de aller.
drdaeman
@drdaeman: Vrai. Lors du passage via un GPU, il n'est accessible qu'à partir de cette machine virtuelle.
Dennis
merci les gars, malheureusement pour le moment cette solution est hors de ma connaissance ... et mes poches :-)
psylockeer
3

Votre machine virtuelle Windows fonctionne principalement sur du matériel émulé. Ce matériel est généralement relativement simple.

Ayant dit cela:

  1. Il est possible d'émuler des fonctions 3D. La performance est généralement inférieure à la normale et parfois elle ne fonctionne pas comme prévu. (Par exemple, l'exécution de Baldur's Gate 1 avec l'accélération 3D activée dans la station de travail Vmware 8 bloque tout mon hôte. Pas seulement la machine virtuelle). Cela s'améliorera avec le temps pour toutes les machines virtuelles.
    En fait, vmware workstation 9 réclame des améliorations significatives, mais je n'ai pas encore testé cette version. Je sais que 5,5 et 8 ne suffisaient pas.
  2. Au lieu d'émuler, vous pouvez accéder directement au matériel à partir d'une machine virtuelle. Le mot clé est le passthough PCI [e]. Il s'agit d'une fonctionnalité généralement utilisée pour passer par des cartes spéciales, des cartes réseau 10 Gbit, etc., mais elle devrait également fonctionner pour les cartes graphiques. Notez que n'utilisera une carte que pour la machine virtuelle. Avec les cartes graphiques, cela signifie utiliser une deuxième carte graphique pour la machine virtuelle.
Hennes
la source
donc j'aurais besoin de 2 moniteurs trop à droite? ... de toute façon j'ai vérifié et je ne pense pas que mon CPU (premier Gen i5 750) supporte vt-d.
psylockeer
Ce truc de moniteur est un bon point. Je ne l'ai jamais envisagé depuis que je regroupe des cartes PCI vers des cartes réseau, des cartes RAID et autres. --- Notez que la plupart des moniteurs ont plus d'une entrée de signal. Par exemple DVI, DP, composite, S-Vidéo et composante ... Pas que la commutation de l'entrée d'un moniteur entre deux sources soit une solution formidable.
Hennes
0

Avez-vous essayé Virtual Box ? En lisant la liste des fonctionnalités, on dirait qu'il a ce dont vous avez besoin ... l'accès au GPU et au CPU.

JackLock
la source
Virtualbox vous permet en effet d'installer des fenêtres, mais pour autant que je sache, le jeu en 3D n'est pas si facile à réaliser.
psylockeer
Honnêtement, je n'ai jamais essayé ça. J'ai toujours préféré le double démarrage avec Windows uniquement pour jouer à des jeux. Et il semble que certains jeux fonctionnent, d'autres non, donc cela dépend surtout des jeux que vous souhaitez exécuter
JackLock
0

Essayez de jouer n'importe où . Ce n'est pas exactement une machine virtuelle, plutôt une solution de jeu open source, mais vous pouvez toujours diffuser votre bureau ou vos jeux en entier.

Luc
la source
0

Lorsque vous dites "accès direct au matériel", vous ne parlez plus de machines virtuelles, vous parlez de machines réelles. Pour un accès direct aux jeux Windows, vous aurez besoin de Windows.

Jason
la source