Gibt es eine virtuelle Maschine mit direktem Zugriff auf CPU und GPU für Spiele?

10

Entschuldigung für die lange Frage.

Mit dem Erscheinen von Steam für Linux war ich möglicherweise zu optimistisch und habe die Windows-Installation losgeworden. Das Problem ist, dass ich ungefähr 100 Steam-Spiele habe, die nicht auf Linux portiert sind (und möglicherweise nie portiert werden). Wie auch immer, ich habe den Dual-Boot satt und Wine-Lösungen (Wineprefix und Playonlinux) funktionieren nicht immer. Ich habe mich also gefragt, ob es eine Lösung gibt, um eine virtuelle Maschine (oder ähnliches) mit direktem Zugriff auf die Hardwarespezifikation zu verwenden, um Windows-Spiele darin auszuführen. (so etwas wie das, was Parallels auf dem Mac macht). Die Neuinstallation von Windows ist kein großes Problem, aber ich hatte gehofft, es zu vermeiden, da ich Ubuntu als mein tägliches Betriebssystem zusammen mit "schwierigeren" Distributionen verwenden möchte, um mehr über Linux zu erfahren.

Edit: Danke für all deine Antworten: Ich werde über die von dir vorgeschlagene Lösung nachdenken. Ehrlich gesagt habe ich bis heute noch nie von Xen gehört, also muss ich darüber lesen ... und vielleicht eine neue Grafikkarte kaufen ... und einen neuen Monitor. Ich denke, ich werde am Ende Windows auf einem meiner Laufwerke neu installieren ... Schade. Danke noch einmal.

Psylockeer
quelle
2
In dieser Frage finden Sie Informationen zu schwerwiegenden Einschränkungen für den Zugriff auf die GPU über Virtual Box.
Takkat
@Takkat Hattest du jemals die Gelegenheit, den PCI-Pass-Through auszuprobieren? Hat es gut geklappt?
Chad Harrison
@hydroparadise: Nein, meine Hardware unterstützt IOMMU nicht. Ich denke, es ist nicht wirklich einfach zu erreichen, und Sie benötigen 2 Grafikkarten.
Takkat

Antworten:

11

Die kurze Antwort lautet: Nein.
Die längere Antwort lautet: Noch nicht ...

Die 3D-Unterstützung von VBox zählt kaum. Es bietet 3D-Unterstützung, aber absolut keine Leistung. VMWare scheint eine viel bessere Leistung zu erbringen (beachten Sie, dass der Benchmark auf einem Mac ausgeführt wird), und das ist möglicherweise spielbar. Der Nachteil hier ist ein großer Haufen Geld (ich bin mir nicht sicher, wie 3D-Unterstützung in ihren kostenlosen Angeboten aussieht).

Wenn Sie jedoch Ihre Hardware für reine Windows-Spiele optimal nutzen möchten, gibt es nur eine Lösung, mit der Sie Windows starten können. Ich habe Angst zu sagen, dass dies bei dieser Untergruppe von Spielen wahrscheinlich immer der Fall sein wird.

Die einzigen anderen nahezu akzeptablen Lösungen:

  • Fight Wine (wenn es funktioniert, funktioniert es normalerweise sehr gut)
  • Kaufen Sie eine Konsole.
  • Lobby beim Entwickler für einen Port.

Es gibt alle Arten von Servertechnologien, die sich mit der Zeit durchsetzen können :

  • Nvidia + Vmware arbeitet an einer virtualisierten Gaming-Plattform mit mehreren Köpfen, aber ich erwarte ehrlich gesagt nicht, dass dieser Integrationsgrad für ein weiteres Jahrzehnt, wenn nicht länger, in den Händen der Verbraucher liegt. Grafikhersteller möchten, dass wir Dutzende von Karten kaufen und die Virtualisierung schadet diesem Ziel.

  • Sie könnten es umkehren und eine Windows Server-Host-VM haben und einen Ubuntu-Desktop mit gemeinsam genutztem 3D paravirten, aber ich bin mir auch nicht sicher, wie die Leistung aussehen würde. Und es ist eine Menge Geld, um legal zu tun. Der Desktop-Host ist überhaupt nicht so gut.

  • Xen wird eine Windows-Installation nicht paravirten, daher macht es noch keinen Sinn, dort nachzuschauen. Es verfügt zwar über PCI- und VGA-Passthrough-Module, diese sind jedoch an eine VM gebunden, sodass Sie für jede Installation eine Grafikkarte benötigen. Urgh.


Hinweis: Ich spreche hier wirklich nur von 3D-Grafiken, da der Rest gelöste oder fast gelöste Probleme sind. Die CPU-Virtualisierung ist mit Paravirtualisierung und CPU-Erweiterungen wie Intel VT-x und AMD-V ausgereift. Peripheral Passthrough hat eine relativ geringe Bandbreite und ist daher einfach zu teilen.

Grafiken bleiben zurück, da es für Hersteller keine kommerzielle Notwendigkeit ist, sie so zu teilen, wie wir es uns vorstellen. Dies scheint jedoch der Fall zu sein (für High-End-Renderfarmen und serverbasierte Workstation-Konsolidierung). Achten Sie also auf diesen Bereich.

Oli
quelle
Was Wein betrifft
Chad Harrison
@Oli deine Antwort war sehr vollständig, danke. Wie auch immer, ich habe gesehen, dass es möglich ist, eine vorhandene Windows-Installation in eine virtuelle Maschine einzubinden (nach ordnungsgemäßer Arbeit). Wäre in diesem Fall die Hardwarebeschleunigung dieselbe wie bei der Palin-Virtualisierung?
Psylockeer
@psylockeer Sie meinen, ein physisches Laufwerk (mit einer echten Windows-Installation) in einer VM zu mounten? Dies kann in allen gängigen Virtualisierungssoftware durchgeführt werden , Windows wird jedoch möglicherweise ausgeblendet. Das letzte Mal, als ich versuchte, die Hardware bei einer Windows-Installation zu ändern, flippte sie aus und schaffte es nie weiter als bis zu einem Bluescreen. Hoffentlich hat MS die Dinge seitdem verbessert. Der Zugriff ist immer noch nicht direkt (AFAIK), da der VM-Client immer noch über Linux auf das Laufwerk zugreift - er befindet sich nur nicht in einem anderen Dateisystem (wenn dies sinnvoll ist). Erwarten Sie also keine große Leistungssteigerung.
Oli
7

Wenn sowohl Ihre Hardware als auch Ihre Software IOMMU (auch bekannt als PCI-Passthrough, AMD-Vi und Intel VT-d) unterstützen, können Sie VMs E / A-Geräte (z. B. die Grafikkarte) zuweisen.

In den aktuellen Versionen von Ubuntu können Sie Xen verwenden , sofern sowohl Ihr Motherboard als auch Ihre CPU IOMMU unterstützen.

Ich verwende derzeit eine Windows 7-VM mit zwei AMD 7950-GPUs und sie funktioniert sehr gut für Spiele und Bitcoin / Litecoin-Mining.

Tutorials usw.:

Beachten Sie, dass Sie die GPU in dieser VM verwenden können, wenn Sie sie durchlaufen.

Dennis
quelle
Ich glaube, er kann keine einzige GPU zwischen VMs teilen. Wenn er jedoch zwei Grafikkarten hat (insbesondere wenn er mehrere Monitore oder einen Monitor mit zwei geeigneten Eingängen hat) oder wenn er nur über VNC, SPICE oder ähnliches auf die GNU / Linux-GUI zugreifen kann, scheint Xen's GPU-Passthrough eine Möglichkeit zu sein gehen.
Drdaeman
@drdaeman: Stimmt. Wenn Sie eine GPU passieren, können Sie nur von dieser VM aus darauf zugreifen.
Dennis
Danke Jungs, leider für den Moment ist diese Lösung aus meinem Wissen ... und meinen Taschen :-)
Psylockeer
3

Ihre Windows-VM wird hauptsächlich auf emulierter Hardware ausgeführt. Diese Hardware ist normalerweise relativ einfach.

Trotzdem:

  1. Es ist möglich, 3D-Funktionen zu emulieren. Die Leistung ist normalerweise unterdurchschnittlich und funktioniert manchmal nicht wie erwartet. (Wenn Sie beispielsweise Baldur's Gate 1 mit aktivierter 3D-Beschleunigung in VMware Workstation 8 ausführen, stürzt mein gesamter Host ab. Nicht nur die VM). Dies wird sich im Laufe der Zeit für alle VMs verbessern.
    Tatsächlich behauptet VMware Workstation 9 signifikante Verbesserungen, aber ich habe diese Version noch nicht getestet. Ich weiß, dass 5.5 und 8 nicht ausreichten.
  2. Anstatt zu emulieren, können Sie direkt von einer VM auf Hardware zugreifen. Das Schlüsselwort lautet PCI [e] passthough. Dies ist eine Funktion, die normalerweise zum Übergeben von Spezialkarten, 10-Gbit-Netzwerkkarten usw. verwendet wird. Sie sollte jedoch auch für Grafikkarten funktionieren. Beachten Sie, dass eine Karte nur für die VM verwendet wird. Bei Grafikkarten bedeutet dies, dass eine zweite Grafikkarte für die VM verwendet wird.
Hennes
quelle
Ich würde also auch 2 Monitore brauchen, oder? ... trotzdem habe ich nachgesehen und glaube nicht, dass meine CPU (erste Generation i5 750) vt-d unterstützt.
Psylockeer
Das mit 2 Monitoren ist ein guter Punkt. Ich habe es nie in Betracht gezogen, da ich PCI-Durchgänge auf Netzwerkkarten, RAID-Karten und dergleichen übertragen habe. --- Beachten Sie, dass die meisten Monitore mehr als einen Signaleingang haben. ZB DVI, DP, Composite, S-Video und Komponenten ... Nicht, dass das Umschalten des Eingangs eines Monitors zwischen zwei Quellen eine großartige Lösung wäre.
Hennes
0

Haben Sie Virtual Box ausprobiert ? Wenn Sie die Funktionsliste lesen , sieht es so aus, als hätte sie genau das, was Sie brauchen ... Zugriff auf GPU und CPU.

JackLock
quelle
Mit Virtualbox können Sie zwar Windows installieren, aber soweit ich weiß, ist 3D-Gaming nicht so einfach zu erreichen.
Psylockeer
Ehrlich gesagt habe ich das nie versucht. Ich habe es immer vorgezogen, mit Windows doppelt zu booten, nur um Spiele zu spielen. Und es sieht so aus, als würden einige Spiele funktionieren, andere nicht. Meistens hängt es davon ab, welche Spiele Sie ausführen möchten
JackLock
0

Versuchen Sie, überall zu spielen . Es ist nicht gerade eine VM, sondern eine Open-Source-Gaming-Lösung, aber Sie können trotzdem Ihren gesamten Desktop oder Ihre Spiele streamen.

Luke
quelle
0

Wenn Sie "direkter Zugriff auf die Hardware" sagen, sprechen Sie nicht mehr von virtuellen Maschinen, sondern von tatsächlichen Maschinen. Für den direkten Zugriff auf Windows-Spiele benötigen Sie Windows.

Jason
quelle