[Lösung] Passthrough für Nvidia Geforce GTX Consumer GPUs in VSphere (ESXi) 6.0

Schon alles irgendwie komisch. Mit einem Threadripper 3960X und dem ASRock TRX40 Taichi braucht's wieder andere Passthrough-Settings, damit die 2080Ti im passthrough läuft:

ESXi frisch aufgesetzt mit 6.7U3b.

Frische Win10-VM installiert mit 1909 ISO aus dem Media Creation Tool.

Nur hypervisor.cpuid.v0 = FALSE, keine sonstigen Anpassungen in den erweiterten VM-Optionen (insb. kein msiEnabled = FALSE).
Nur GPU durchgereicht (aktuell kein Audio, kein USB, kein UCSI Device durchgereicht).
Kein Edit der passthru.map notwendig.

GPU lüppt anscheinend (Bild auf dem Monitor hab ich jedenfalls, Games muss ich noch testen). VM-Reboot funzt.

Anhang anzeigen 484100

Wenn ich mit der VM auch daddeln kann und das Streaming noch gescheit hinbekomme, komme ich so langsam zum ultimativen Gaming-Mainframe im Keller... :d

Coming up next: 2. VM auf gleichem Host mit TitanXp im Passthrough für Game-Streaming an Wohnzimmer Schmalspur-PCchen (Up2).
Mir gefallen deine verrückten Ideen :bigok:
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Jetzt laufen die VMs, aber das Streaming will noch nicht so recht. Moonlight meckert, dass die Netzwerkverbindung zu schlecht sei - da muss ich nochmal genauer nachschauen...

EDIT: Auch das scheint (teilweise) gelöst - hab die NIC in der VM von VMXNET3 auf SR/IOV umgestellt und dann waren die Netzwerk- und Jitter drops bei 0,00%. :d Zumindest wenn ich als Client eine andere VM mit einer kleinen Quadro P400 nutze. Die Intel iGPU von meinem Up2 ist allerdings wohl zu schwach auf der Brust. :(
 
Zuletzt bearbeitet:
Also ich habe gerade im Proxmox völlig unproblematisch eine ATI 7850 an ein Win10 Pro Workstation durchgereicht. Epyc lässt grüßen: Jedes Gerät mit eigener IOMMU-Gruppe, PT läuft klasse.
Das Streaming muss ich von Dir noch kopieren....
 
ATI gilt generell als unproblematisch(er). NVIDIA‘s Treiber zickt halt, wenn er erkennt, dass er in einer virtuellen Umgebung läuft - wobei NVIDIA das wohl auch nur halbherzig verhindert, denn die Workarounds sind ja recht easy/billig.
 
AMD hat da eigentlich noch nie Probleme gemacht.
 
@danielmayer was ist denn deine Hardware-Basis für die Proxmox-Kiste? Epyc? Single/Dual?
 
Epyc 7551p auf SM H11SSL, im Zulauf sind gerade 2x 64GB DDR4@2666. Dazu WD SN550/1TB M
2, besagte ATI 7850 und eine Draytek 132F für Telekom Glasfaser - wenn in ein paar Monaten mal das Haus fertig ist. Bin mir noch unschlüssig. Aus der Diskussion um die Epyc3xxx habe ich mir ein Board bestellt, das evtl Firewall (Draytek) und TV-Karte vorwegstellt und der Dicke dann getrennt rein interne Services bereitstellt.
Das Game-Streaming fand/finde ich ich in Anbetracht der fürchterlich gelangweilten vorhandenen Rechenleistung interessant.
 
...fand/finde ich in Anbetracht der fürchterlich gelangweilten vorhandenen Rechenleistung interessant.

:d

Hast Du schon eine Idee, wie du das mit dem Streaming realisieren willst?

Ich muss leider noch herausfinden, wie man den Client möglichst schmal halten kann. Das Streaming bringt ja nichts, wenn man dann doch wieder eine Graka braucht, um den Stream zu decodieren. Dass der up2 das nicht packt, hat mich schon enttäuscht.
 
Hallo,

so es ging nun ein Stück weiter, nachdem ich die Versionen bis 6.0 runter durchprobiert hatte und die GPUs nicht laufen wollten habe ich die zwei 960er nun durchgereicht bekommen.
Das Problem waren anscheinend die iGPU (Intel HD 4600) mit dem zugehörigen Audiodevice, beide im Bios deaktiviert und es läuft...
 
Hallo,

nächstes Update. Die GPUs (GTX 960) dürfen MSI nicht deaktiviert bekommen sonst haben die Eingabegeräte einen üblen delay. Der USB-Controller hingegen muss MSI deaktiviert bekommen da dieser sonst beim 2. Start der VM einen Fehler hervorruft und die komplette VM vom starten abhält.
Die zwei NVIDIA laufen aktuell sehr zuverlässig, auch Spiele laufen.
Die AMD RX 480 hingegen läuft aktuell extrem instabil, verbessert hat die situation MSI für GPU und Audio zu deaktivieren und den Takt 10% runterzustellen, sowie die CPUID.V0 zu deaktivieren, das sollte aber doch nicht die Lösung sein... Zurückgesetzt wird mit D3D0.
Hat hier jemand Tipps zur AMD? :unsure:
 
Hallo,

nächstes Update. Die GPUs (GTX 960) dürfen MSI nicht deaktiviert bekommen sonst haben die Eingabegeräte einen üblen delay. Der USB-Controller hingegen muss MSI deaktiviert bekommen da dieser sonst beim 2. Start der VM einen Fehler hervorruft und die komplette VM vom starten abhält.
Die zwei NVIDIA laufen aktuell sehr zuverlässig, auch Spiele laufen.
Die AMD RX 480 hingegen läuft aktuell extrem instabil, verbessert hat die situation MSI für GPU und Audio zu deaktivieren und den Takt 10% runterzustellen, sowie die CPUID.V0 zu deaktivieren, das sollte aber doch nicht die Lösung sein... Zurückgesetzt wird mit D3D0.
Hat hier jemand Tipps zur AMD? :unsure:

Meine RX480 Red Devil von Powercolor läuft. Der Reset Bug wurde mit einem AMD BIOS Update gefixt, wobei es für ich nicht so wild war. Da ein simpler Reboot des ganzen ESXi Abhilfe geschafft hat.

Für die RX480 Passtrough über die vCenter oder ESXi Webgui aktiviert, RAM Reservierung eingerichtet und svga.enabled auf false gesetzt damit die vmware svga verschwindet und kein dritter Monitor dranhängt.

Hab das Setup unter 6.5 so als Desktop-VM am laufen gehabt und es läuft auch unter 6.7 U3 derzeit mit neuem Mainboard als HTPC-ESXi in einer VR-VM.
Für die Desktop VM im anderen Rechner werkelt die 5700XT Red Devil, flutscht auch einwandfrei :-)

Kein Hexenwerk oder solche Verrenkungen wie bei nvidia :-)

Aber ich hatte auch damals unter Windows Ärger mit so mancher RX480 oder RX580. Die Saphhire und die Strix Karten waren empfindlicher als die PowerColor RX480 Red DEvil, weshalb ich auch bei der 5700XT wieder zu Powercolor Red Devil gegriffen habe :)

Nebenbei werden auch an beiden ESXi jeweils USB-PCI Geräte durchgeschliffen.
Wobei eine USB-Karte für Lags bei der Tastatur sorgt (als ob ne Taste klemmt).
Die ist etwas zickig:
Name FL1100 USB 3.0 Host Controller
Geräte-ID1100
Untergeräte-ID1100
Klassen-IDC03
Anbietername Fresco Logic
Anbieter-ID1B73
Unteranbieter-ID1B73

Die läuft einwandfrei und hat auch die Oculus angebunden.
Nameu PD720201 USB 3.0 Host Controller
Geräte-ID14
Untergeräte-IDFFFF
Klassen-IDC03
Anbietername Renesas Technology Corp.
Anbieter-ID1912
Unteranbieter-IDFFFF
 
Zuletzt bearbeitet:
Hallo,
danke erstmal,
Der Reset Bug wurde mit einem AMD BIOS Update gefixt
ich hatte schon das aktuelle BIOS F8 auf der GPU (Gigabyte RX 480 G1 Gaming 8G), bin nun auf ein 580 BIOS gewechselt. Der Restet Bug ist nicht weg jedoch läuft die Karte im ESXi nun stabil :rolleyes2:
Dass muss nun nur noch der Reset Bug behoben werden :cautious:
Kein Hexenwerk oder solche Verrenkungen wie bei nvidia :-)
Die beiden Asus STRIX GTX 960 2G laufen bei mir ohne Probleme, die brauchen nur den Schlüssel hypervisor.cpuid.v0 mit Wert FALSE :LOL:

das nervt alles...


MfG Basti
 
Zuletzt bearbeitet:
ESXI 7.0.0 Erfolg. :banana:

X399D8A-2T mit TR 1920X und Quadro P400 . Win10 20H1-Preview mit Update 2020.04. Treiberbezug für die GPU via Windows. Win10 VM im Bios-Mode.
Standardrezept mit passthru.map funktioniert. VM hat mehrmals neu gebootet bzw. Server Ein-/Ausschalten überlebt ohne Hänger überlebt.
Eigene USB-Geräte für die VM muss ich noch testen.
Die P400 ist im untersten PCIE-Slot, die Optane vom BSD-Versuch im mittleren 16er Slot.
Nachdem mich das Board am WE mit den PCIE-Slots etwas angezickt hat, hat es nun alles wettgemacht.

ESXI startet dabei von einer 500er USB-USB, die Win-VM ist am Datastore auf dem gleichen USB-Device. Die vdisk für Windows ist aktuell als Sata-Controller
eingestellt. (Vdisk als SCSI-Device bekomm ich USAP-Fehler.) Windows hat als PCIE-Passthrough Devices 0 und 1 die P400 GPU und P400 Audio .

In der VM einzutragen:
hypervisor.cpuid.v0 = false
pciPassthru0.msiEnabled = "FALSE"
pciPassthru1.msiEnabled = "FALSE"


P400 (GPU und Audio) in der GUI auf Passthrough stellen und dann
in der passthru.map eintragen:
#NVIDIA P400 gpu
10de 1cb3 d3d0 false
#nvidia p400 audio
10de 0fb9 d3d0 false



Mit meinem Lenovo P300 Haswell hat das GPU-Passthrough in fast der gleichen Config nicht funktioniert (Nvidia Error 43). Eventuell hab ich dort für die P400 Audio aber nicht pciPassthru1.msiEnabled = "FALSE" gestellt.
 
Zuletzt bearbeitet:
Hi

Hat schon einer auf ESXi 6.7 u3 oder 7.0 eine 1080Ti durchgereicht bekommen? Oder ist das aussichtslos?
 
Müsste eigentlich gehen - hab das mit zwei TitanXp‘s zumindest auf verschiedenen Systemen mit 6.7U3 hinbekommen.
 
Ich habe mal gelesen, wenn man die GPU VM neu startet, dass man gleich den Host mit neu starten muss. Ist das immer noch so?
 
Nein. Musst nur ggf. in der passthru.map rumfummeln.
 
Bin ja mal gespannt, was das (SR-IOV für "alle Amperes") am Ende heißt:


Immerhin von Ryan Smith von Anandtech - die Jungs (er und Ian) wissen ja normalerweise schon, worüber sie schreiben und sind regelmäßig nah am Puls. :)

Also Freunde der gepflegten Gaming VM, dann lasst's ab Ende September mal Krachen. :d

Mit etwas Glück sind dann auch die Frickeleien rund um den "Error 43" erledigt - würde ja aus meiner Sicht wenig Sinn machen, ein klassisches Virtualisierungsfeature vorzusehen und das dann per Treiber wird zu verhindern. Oder Nvidia hält da gesondert die Tasche für auf...
 
Na da bin ich ja mal gespannt wie sich die dann nutzen lassen, sollte es sich bewahrheiten und in wie viele VMs man die einbinden kann.

Ob es wohl geht eine an eine HTPC VM und per Kabel an TV und eine weitere in eine zB Plex VM fürs encoding...bzw RDP Grafik Power - also simultan.
 
Wäre topp wenn das mal endlich funktionieren würde. Sonst hatte Nvidia immer für Geld verlangt.
 
Naja, nur weil es die GeForce Amperes es können, heist es ja nicht, das NV für den entsprechenden Treiber kein Geld haben will.
Könnte dann an die Seriennummer oder sonst was eineindeutiges gebunden werden, damit die nicht so einfach verteilt werden kann etc...

Aber mal sehen was/wie da kommt, bin gespannt ^^
 
Die lassen sicher nicht eines ihrer "Sparschweine" so einfach laufen; kann ich mir nicht vorstellen. Den Weg machen die sicher nicht auf, eher kommen noch mehr Stolpersteine.
 
Mich wundert etwas dass die P400 nicht o.o.t.b funktioniert, bzw. das
hypervisor.cpuid.v0 = FALSE noch immer als Mogellösung angegeben werden musste, eigentlich sollte doch die Quadro der Geforce Schlinge entkommen dürfen oder sehe ich das falsch..(?!)
.
 
Ich hatte mal wieder etwas Zeit: ich habe also nicht nur gefühlt den halben Keller umgeräumt, 4 Rechner umgezogen/umkonfiguriert, sondern auch noch einmal mit NVME-Boot auf alten Systemen (nicht erfolgreich) und NVIDIA Consumer-GPU-Passthrough (erfolgreich) herumgespielt.

Hardware: Intel S1200BTLR mit Xeon E3-1225v1
Graka: NVIDIA Geforce GT 610
USB-Controller: Sedna – PCI Express 4 Port (4E) USB 3.0 Adapter
Hypervisor: ESXi-6.5.0-20170702001-standard

HOWTO: ESXi 6.5U1 NVIDIA CONSUMER GPU PASSTHROUGH

0. Vorbereitung:

a) BIOS-Settings (Mainboard-abhängig!): vt-x/vt-d sind Pflicht. Ich habe bei mir außerdem im BIOS "Dual Monitor" auf "enabled" gesetzt. Hat den kleinen Vorteil, dass der Host noch einen Bildschirm hat und zusätzlich die onboard-Grafik für die ESXi-Browserkonsole funktioniert. Macht die Fehlersuche ggf. etwas einfacher, man sieht z.B. den Purple-Screen-of-Death sofort. ;)
Darüber hinaus habe ich UEFI-Boot eingestellt, allerdings auch Legacy BIOS von Adapterkarten (HBA, Graka & Co.) zugelassen.
Hinweis: ESXi habe ich dann auch von einem UEFI-Bootlaufwerk installiert.
b) In ESXi Passthrough für die gewünschten Geräte aktivieren (USB-Controller für Keyboard/Maus, Graka für...na was wohl).

1. Host: VM erstellen
Hinweis 1: ich habe als Startoption nichts verändert, d.h. die VM hat ein "legacy BIOS".
Hinweis 2: ich habe VMXNET3 als NIC ausgewählt.

2. Host: VM anpassen (Teil 1)
a) CPU-Einstellungen
Anhang anzeigen 416360

b) RAM-Einstellungen
Anhang anzeigen 416361

c) Erweiterte Einstellungen
Anhang anzeigen 416362

d) USB-Controller durchreichen
Anhang anzeigen 416363

3. VM: OS Installieren
Hinweis: bei mir Windows 10 64Bit Fall Creators Update (1709)

4. VM: VMware Tools installieren (ich mach immer "vollständig")

5. VM: Herunterfahren

(Vorsichtshalber, um den Ruhemodus zu vermeiden: cmd-->shutdown /s /t 0)

6. Host: VM anpassen (Teil 2)
a) Grafikkarte als PCI-Passthrough-Gerät hinzufügen

7. VM: starten / Windows konfigurieren
a) NVIDIA-Treiber installieren (ich hab den aus dem Windows-Update genommen)
Anhang anzeigen 416364

b) reboot
c) VMware-GPU (VMware SVGA 3D) deaktivieren
d) reboot


8. Success!
"Old-school-Screenshot" ;)
Anhang anzeigen 416365



NACHTRAG zu ESXi 6.7:

Seit 6.7(U1?) reichen die oben beschriebenen Einstellungen teilweise nicht mehr, dass eine VM problemlos rebootet. Häufig funktioniert nach einem VM-Reboot die Nvidia passthrough-GPU nicht mehr und meldet "Error 43". Habe dazu einen Workaround herausgeknobelt, der jedenfalls mit einer 2080Ti, ESXi 6.7U3 und einem AMD X399-Chipsatz / Threadripper funktioniert.
Moin zusammen, ähnlich wie in diesem Post Versuche ich eine Nvidia GT 610 in eine meiner unter ESXi laufenden VMs durchzureichen, nur eben mit 6.7 U3 anstelle wie hier 6.5 U1.

Bin wie beschrieben vorgegangen, wobei es mir nicht möglich war die Win10 64bit VM mit eingehängter GPU + GPU-Audio zu starten, sie bleibt immer am blauen Win10 Logo stehen. Auch mit Anpassung der passthru.map kein Erfolg. Wobei ich unter ESXi 6.7 U3 im Tab CPU die Option "CPU/MMU-Virtualisierung" nicht habe, aber dafür "IOMMU" (bringt aber keine Veränderung), und die Option "Hardwarevirtualisierung" kann ich bei durchgereichter GPU nicht aktivieren, ESXi verweigert das.

System ist ein Asus Z10PA-D8 mit zwei Intel Xeon E5-2640 v3, ESXi 6.7 U3 unter Legacy installiert.

Vielleicht habt ihr ja einen Tipp für mich, in den meisten der wenigen Threads die ich zum Thema ESXi Passthrough GT 610 gefunden habe, heißt es einfach es würde wegen eines fehlerhaften resets mit der GPU nicht funktionieren, aber es muss ja scheinbar doch irgendwie klappen.
 
Probier mal ohne Audio. Geht das?

Was steht in der passthru.map? Mal auf d3d0 gesetzt wie hier: https://www.hardwareluxx.de/community/threads/nas-server-hardwareguide-2019.1229533/post-27115981 ?

vt-D/x aktiv im BIOS?

Mal UEFI-Installation von ESXi/als VM Startoption probiert? (Ist doch schnell mal installiert.)
Nur GPU durchreichen hat leider keinen Erfolg gebracht.

Die passthru.map sieht im Abschnitt zu Nvidia wie folgt aus, der Rest ist Default, also unverändert:
Code:
# NVIDIA
# 10de  ffff  bridge   false
10de  ffff  d3d0    false
muss ich den Host komplett neu starten, damit Änderungen an der passthru.map greifen? (hatte ich gemacht)

vt-D/x sollte aktiviert sein, checke ich heute Abend nochmal. Sobald ne GPU auf dem Board steckt, zeigt mir das IPMI per remote kein Bild mehr. Kann also so von außen nicht ins Bios :unsure:

ESXi neu installieren ist echt schnell gemacht, da hast du recht. Nur laufen auf dem System noch drei weitere VMs denen ich je ein Dell Perc H310 auf IT Mode durchgereicht habe, die dafür sorgen das ESXi unter EFI bzw. UEFI nicht bootet. Somit kann ich das mit der Maschine leider nicht machen.

Aber wenn du schreibst du hast unter ESXi 6.7 nur hypervisor.cpuid.v0 = FALSE in der Config eingetragen und sonst keine weiteren Anpassungen gemacht, kann es ja nur am Legacy Mode oder an der GT 610 selbst liegen.

In den nächsten Wochen werde ich noch eine zweite Maschine mit einem Asus Z9PE-D16 aufsetzen, dort könnte ich das dann auch nochmal mit UEFI testen. Sollte ich bis dahin keine Lösung gefunden haben..
 
Ist bei mir inzwischen auch ein Weilchen her. Ich hab' aber bei mir aktuell mit 6.7U3 zwei GPUs im Passthrough laufen, allerdings nicht mehr die GT610 sondern eine TitanXp und Quadro P400. Eine 2080Ti lief auch.

Ja, ich meine Du musst den Host nach Änderungen an der Passthru.map neu starten. Wenn d3d0 nicht funktioniert, mal "link" in die passthru.map eintragen. Wenn ich mich richtig erinnere war ich damit zuerst erfolgreich und brauchte ich d3d0 dann für die Pascal/Turing Karten.

Wenn Du schon 3 Percs im passthrough laufen hast, vielleicht beisst sich da ja etwas? Hab' das auch noch nie mit Multi-CPU-Systemen ausprobiert.

Ansonsten vielleicht einfach mal zu Testzwecken einen Perc mit dem es funktionierte rausnehmen und in den Slot die Graka stecken. Im Zweifel definitiv GPU mal in Slot 3 oder 5 (die x16 Slots) und Slot 2 bzw. 4 frei lassen (wenn Slot 2/4 belegt sind, gehen 3/5 von elektrisch x16 auf x8).

Achtung: wenn die GPU in PCIe-Slot1 (ganz "unten") steckt, wird das wohl auch nicht funktionieren, da dieser Slot am Chipsatz hängt.

Ist leider ein bisserl trial&error. Hab leider keine 610 mehr hier.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh