GPU Passtrhough auf AMD Epyc mit 2x Vega 56, 1x W5700 und 1x Grid K2

nexusband

Member
Jan 27, 2020
14
0
6
34
Hallo zusammen,

wir sind gerade dabei zu evaluieren, welchen Weg wir mit unserer VDI weiterhin einschlagen, da uns die Lösung, die das Grüne NV-Team vorgibt mit den Lizenzkosten schlicht zu teuer ist. Noch dazu läuft viel SolidEdge bei uns und da hat AMD Leistungstechnisch auch schlicht die Nase vorne.
Momentan haben wir zwei R730er mit jeweils einer Grid K2 und XenServer am Laufen. Wir würden - falls möglich - gerne zu Proxmox wechseln.

Leider scheitert das jetzt am GPU Passthrough der AMD Grafikkarten. Ich bekomme es schlicht und ergreifend nicht hin. Die GPUs werden in der VM erkannt, sobald man aber drauf zugreifen möchte (RDP, VNC...), hängt sich die VM auf und kommt beim nächsten Boot auch nicht mehr hoch - ich muss also die durchgereichte GPU wieder entfernen.

Nun hab ich schon so viel hin und her ausprobiert, dass ich komplett den Faden verloren habe oder mich in irgend etwas verrant habe und nicht mehr weiter weiß.

Ein paar Beobachtungen die mir auf die schnelle Aufgefallen sind:

Die IOMMU Gruppen sind nicht ganz sauber:

Code:
IOMMU Group 0:
        00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:1470] (rev c3)
        02:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:1471]
        03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] [1002:687f] (rev c3)
        03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64] [1002:aaf8]
IOMMU Group 10:
        00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 0 [1022:1490]
        00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 1 [1022:1491]
        00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 2 [1022:1492]
        00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 3 [1022:1493]
        00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 4 [1022:1494]
        00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 5 [1022:1495]
        00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 6 [1022:1496]
        00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 7 [1022:1497]
IOMMU Group 18:
        40:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        40:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        43:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (rev ef)
        43:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
IOMMU Group 19:
        40:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 2:
        00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        00:03.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        00:03.5 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        04:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
        04:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01)
        06:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 04)
        07:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 41)
IOMMU Group 33:
        80:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        80:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        81:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:1470] (rev c3)
        82:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:1471]
        83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] [1002:687f] (rev c3)
        83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64] [1002:aaf8]
IOMMU Group 8:
        00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 9:
        00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
        00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)

Das Verhalten ist so ziemlicih mit allen Optionen gleich, bzw. Aktiviere ich z.B. rombar startet die Maschine gar nicht und bleibt mit 6,45-6,55% CPU Auslastung "hängen". VNC/SPICE zeigen einfach nur Schwarz.

AMGPU ist blacklisted, Kernel module sind geladen, die Device-IDs sind an VFIO weitergeleitet, lspci -nnk zeigt auch, dass der VFIO-PCI Kerneltreiber genutzt wird. Q35 ist als Machine-Type geladen, Windows 10 2004 ENT ist auch im EFI Modus installiert.

Interessanterweise hat mir die Maschine beim letzten Versuch angezeigt, dass nicht genügend Ressourcen für das Gerät da wären. Nach einem Neustart der VM war die RX Vega ohne Ausrufezeichen in der Maschine, beim Versuch sich per RDP zu verbinden, Bluescreened die VM aber.

Die W5700 hab ich gar nicht zum laufen gebracht - die hab ich wieder ausgebaut momentan und die GRID K2 ist noch Produktiv.

Ich weiß tatsächlich jetzt nicht mehr weiter - noch dazu läuft die RX570 Problemlos...

Freue mich über jegliche Hilfe und Hinweise, vielen Dank!
 
Ja, hab ich. Hat leider nichts gebracht.

Ich hab aber zumindest mal einen "Workaround" gefunden:

Ich habe args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off' und "for good measure" hab ich noch ein cpu: host,hidden=1,flags=+pcid in die conf datei geschmissen.

Damit läuft die Maschine und auch der AMD-Treiber lässt sich absolut Problemlos installieren. Interessanterweise hat wohl AMD den gleichen Weg eingeschlagen, wie Nvidia und wirft Fehler 182 bei der (aktuellen) Treiberinstallation, wenn eine VM erkannt wird. Performance ist sehr gut, nahezu gleich wie Bare Metal mit einem Ryzen 3700X (und gleicher GPU)

Ich werde jetzt mal nach und nach die Argumente wieder entfernen und schaue sozusagen mal, welche Spaghetti an der Wand kleben bleibt...

Bzw - ich werde womöglich sogar die Commercial Support Subscription jetzt schon versuchen bei den oberen Rigen durchzuboxen und das ganze dann in einem Support Ticket verpacken.
 
Finde ich super das du eine Subskription kaufen willst, aber PCIe pasthrough ist als experimental- gekennzeichnet und damit aus dem Support ausgeschlossen.
 
Ich hab jetzt sowohl das Subscription Agreement durch geschaut, als auch jegliches anderes Dokument, was ich finden konnte. Wo genau ist PCIe Passthrough als experimental gekennzeichnet und damit vom Support ausgeschlossen?
 
Code:
hostpci[n]: [host=]<HOSTPCIID[;HOSTPCIID2...]> [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]
Map host PCI devices into guest.

This option allows direct access to host hardware. So it is no longer possible to migrate such machines - use with special care.

Experimental! User reported problems with this option.[/TD]
Proxmox VE Dokumentaion section 10.13.3. Options
https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_configuration
 
  • Like
Reactions: nexusband
Wie löst ihr das mit der vdi? Seit Windows 2019 wird die Ressource Grafikkarte nicht aufgeteilt sondern nur einem User gegeben. Somit pro User eine Grafikkarte oder steh ich auf dem Schlauch?
 
Um ehrlich zu sein, kann ich dir das nicht beantworten, da wir (noch) auf Server 2012 R2 sind und demnächst erst mal auf 2016 Updaten werden. Die Software die wir "nebenher" einsetzen ist noch nicht mit 2019 kompatibel.
 
Ok Terminalserver Service ist ja gekündigt und wird ja durch vdi abgelöst
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!