Grafik-Beschleunigung ohne Passthrough

SlaterTh90

Member
Feb 14, 2019
7
0
6
25
Moin,

da KVMGT/GVT aktuell immer noch nicht auf den Coffe-Lake CPUs funktioniert (jedenfalls nicht mit dem Kernel was Proxmox nutzt), frage ich mich gerade wie ich so lange die Zeit überbrücken kann. Ich habe ein NUC der 8. Generation mit i5.

Ich will gerne eine VM haben, am liebsten mit irgendeiner Linux-Distro - Windows geht aber auch, die flüssig läuft (wie nen normaler Desktop) wenn ich mich z.B. mit VNC, RDP oder sowas verbinde. Es muss nicht mal unbedingt 3D-Beschleunigung sein. Der Host kann auf die Iris+ GPU zugreifen, also sollte sich ja irgendwas machen lassen. Wie kann ich das am besten anstellen?
 
Also ich habe hier nen Server mit Supermicro x10 Board und onboard Grafik der ruckelfrei 10 RDP Sessions auf nem virtuellen 2016 Server bereit stellt. Das einzige was etwas ruckelig läuft sind zbsp HD Videos. VM Grafik Einstellung steht auf Standard.
Nen xubuntu rennt da genauso ruckelfrei.
 
Hmm, bei mir ist das ganze OS unflüssig. So als wenn die Grafiktreiber fehlen würden. Vielleicht versuche ich nochmal nen fresh-install vom Guest.
 
Sicher das es die Grafikkarte ist und nichts anderes? Zbsp io wait, etc pp. Ich finde nen nuc nun nicht gerade ideal ein Desktop zu virtualisieren und nebenbei weitere vms zu betreiben.
 
Naja für meine Zwecke reichts. Das Teil hat immerhin 4 Kerne 8 Threads, ne SATA-SSD (NVME kommt noch irgendwann) und im Moment 16GB RAM. Sonst laufen nur zwei, drei Container darauf - und auch alles nichts anspruchsvolles. Eigentlich sollte sowas kein Problem darstellen.

Vielleicht habe ich auch nur falsche Vorstellungen von Remote Desktop. Immerhin geht ja alles auch nur durch ne Gigabit-Leitung, irgendwo muss ja gespart werden. Mit Spice läuft es relativ gut, aber Ruckler gibts immer noch wenn man Fenster rumschiebt.
 
Hast du die Desktop in Containern? Ich arbeite bei sowas nur mit richtigen vms und habe damit wie gesagt keine Probleme.
 
Hallo liebes Forum,

ich habe ein ähnliches Problem. Wir haben einen Proxmox VE Server eingerichtet (32 Kerne AMD EPYC, Gigabyte-MB, 256 GB RAM, SSD-Raid, 10 Gigabit-Anbindung); auf dem nun aktuell 3 VM`s laufen (Win 10 PRO). Leider ist die Grafik wirklich unzureichend, wenn man auf einer der virtuellen Maschinen ein Video abspielt. Dabei spielt es keine Rolle, ob das Video lokal auf der VM im Conrtainer liegt oder das File aus dem Netzwerk gestreamt wird. Dummerweise haben wir schon eine NVidia Grid organisiert, da wir dachten, das müsse ja klappen. Leider sind wir dann eines besseren belehrt worden. --> Wird daran aktuell überhaupt gearbeitet?

Hat jemand eine Idee, wie man die Grafik auf den virtuellen beschleunigen kann? Da wir gedenken mindestens 10 Virtuelle auf dem System laufen zu lassen, kommt ein PCI-Passtrough nicht in Frage.

Sonst ist die Performance und Stabilität wirklich zufriedenstellend.Unbenannt.png
 
Hallo auch,

wir wollen das ganze Thema auch angehen. Haben ein paar Architekten als Kunden. Klappt das mit der Grid Karte nicht? Wie sieht es mit der AMD Variante aus, die ja von Proxmox supported ist? Können wir dazu mal ein Erfahrungs-Thread aufmachen?

Thx
Mac
 
Hi Mac,

also scheinbar wird die Grid nicht unterstützt. Es gibt einen Treiber für RedHat Linux. Unter Windows Server ist das mit VMWare und Co. kein Problem, da hatte ich bisher mit den Grid`s wirklich gute Erfahrungen machen können. Ich hatte dann noch versucht auf den Proxmox den Redhat Treiber zu prügeln, musste das Projekt aber nach zwei Arbeitstagen aufgeben. Seitdem dient die Grid nur als PCIe-Heizelement :cool:

Meinst Du wirklich, dass z.B. eine AMD FirePro S7150 von Proxmox unterstützt werden würde? Das wäre noch ein Versuch wert...

Grüsse
Gladiolah
 
@gladiolah

wie wird denn auf die vm zugegriffen? mit vnc? spice? rdp?

mit vnc wird die performance für video nie wirklich gut sein, liegt am format das novnc/qemu verwendet
mit spice kann es gut sein, es sind gerade patches[0] reingekommen, mit denen man die video detection von spice verwenden kann (dann wird ein erkanntes video besser en/dekodiert)
die werden mit dem nächsten qemu-server paket reinkommen

mit rdp (oÄ) sollte es aber besser funktionieren, vor allem wenn als display 'SPICE' verwendet wird (vielleicht auch das video memory erhöhen)
virtio-gpu hat gerade für windows noch nicht wirklich gute treiber, da es noch relativ neu ist

also scheinbar wird die Grid nicht unterstützt. Es gibt einen Treiber für RedHat Linux. Unter Windows Server ist das mit VMWare und Co. kein Problem, da hatte ich bisher mit den Grid`s wirklich gute Erfahrungen machen können. Ich hatte dann noch versucht auf den Proxmox den Redhat Treiber zu prügeln, musste das Projekt aber nach zwei Arbeitstagen aufgeben. Seitdem dient die Grid nur als PCIe-Heizelement :cool:

unter [1] findet man einen thread im englischen forum, wo zumindest ein paar user es hinbekommen haben (mit ein paar tweaks). wir haben leider keine grid hier zum testen...

Meinst Du wirklich, dass z.B. eine AMD FirePro S7150 von Proxmox unterstützt werden würde? Das wäre noch ein Versuch wert...
ich kann auf jeden fall helfen beim einrichten falls es notwendig ist, siehe auch den forums-thread[2] und wiki artikel[3] (sollte alles für pve 6 auch gelten)
hab hier eine drin, die funktioniert auf jeden fall (solange man windows gäste verwendet, hab aber schon länger keine linux gäste versucht)

ich hoffe ich konnte helfen

0: https://git.proxmox.com/?p=qemu-server.git;a=commitdiff;h=c4df18db91aadafcc330463fb85fc0ecf4ae2687
1: https://forum.proxmox.com/threads/proxmox-5-3-tesla-p40-vgpu-issues.51871/#post-263769
2: https://forum.proxmox.com/threads/amd-s7150-mxgpu-with-proxmox-ve-5-x.50464/
3: https://pve.proxmox.com/wiki/MxGPU_with_AMD_S7150_under_Proxmox_VE_5.x
 
@gladiolah

wie wird denn auf die vm zugegriffen? mit vnc? spice? rdp?

mit vnc wird die performance für video nie wirklich gut sein, liegt am format das novnc/qemu verwendet
mit spice kann es gut sein, es sind gerade patches[0] reingekommen, mit denen man die video detection von spice verwenden kann (dann wird ein erkanntes video besser en/dekodiert)
die werden mit dem nächsten qemu-server paket reinkommen

mit rdp (oÄ) sollte es aber besser funktionieren, vor allem wenn als display 'SPICE' verwendet wird (vielleicht auch das video memory erhöhen)
virtio-gpu hat gerade für windows noch nicht wirklich gute treiber, da es noch relativ neu ist



unter [1] findet man einen thread im englischen forum, wo zumindest ein paar user es hinbekommen haben (mit ein paar tweaks). wir haben leider keine grid hier zum testen...


ich kann auf jeden fall helfen beim einrichten falls es notwendig ist, siehe auch den forums-thread[2] und wiki artikel[3] (sollte alles für pve 6 auch gelten)
hab hier eine drin, die funktioniert auf jeden fall (solange man windows gäste verwendet, hab aber schon länger keine linux gäste versucht)

ich hoffe ich konnte helfen

0: https://git.proxmox.com/?p=qemu-server.git;a=commitdiff;h=c4df18db91aadafcc330463fb85fc0ecf4ae2687
1: https://forum.proxmox.com/threads/proxmox-5-3-tesla-p40-vgpu-issues.51871/#post-263769
2: https://forum.proxmox.com/threads/amd-s7150-mxgpu-with-proxmox-ve-5-x.50464/
3: https://pve.proxmox.com/wiki/MxGPU_with_AMD_S7150_under_Proxmox_VE_5.x


Hallo dcsapak,

Vielen Dank erst einmal. Wenn die AMD S7150 funktioniert, funktioniert dann auch die AMD S7150 x2? Ich bin mir sicher, dass die weitere GPU kein Defizit darstellt, aber bevor ich viel Geld in den Sand setze, frage ich lieber noch einmal nach ;-).

Vielen Dank!
 
Last edited:
Hallo liebe Mitstreiter,

ich habe nun die GraKa (Firepro S7150 x2) gekauft und im System verbaut. Da ich Proxmox 6.0 am laufen habe ist die Beschreibung unter:

https://pve.proxmox.com/wiki/MxGPU_with_AMD_S7150_under_Proxmox_VE_5.x

Nicht wirklich zielführend. Einige Kommandos funktionieren auch nicht. Ich komme leider mit der Installation / Einrichtung nicht wirklich parat, scheinbar muss ich VulkanSDK installieren, und GIM von Github, allerdings scheitert es schon, da mein apt-get das Paket GIM nicht finden will. Manuell habe ich es versucht aus der .sh zu kompilieren (ich weiss nicht mal ob das Sinn macht oder wirklich nötig ist) und auch aus der .sh mit chmod +x zu installieren aber irgendwie findet er das Paket nicht wennich gim mit modprobe abfrage.

Ich bin etwas verzweifelt, vielleicht auch nicht der mega Linuxcrack aber ich habe einen eisernen Willen. Und bekanntermassen ist auch ein Weg vorhanden, wenn der Wille gegeben ist.

Hat jemand von euch Superusern einen sinnvollen Ratschlag für mich??


Liebe Grüsse aus der Schweiz

Gladiolah
 
scheinbar muss ich VulkanSDK installieren,
wieso das ?

und GIM von Github, allerdings scheitert es schon, da mein apt-get das Paket GIM nicht finden will.
braucht man und es gibt auch kein paket in debian dh selbst kompilieren

hier eine grobe anleitung:

Code:
apt install pve-headers make git gcc
git clone https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization
# zurzeit muss man für kernel >= 5.0 meinen branch auschecken
git remote add flumm https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization
git fetch --all
git checkout kernel5.0
cd MxGPU-Virtualization/drv
make
insmod gim.ko

mit dieser anleitung wird das modul nicht so installiert dass es mittels 'modprobe' verfügbar ist
und wird auch nicht automatisch neu kompiliert bei einem kernel update

dafür am besten dkms verwenden (link ist im wiki artikel)
hier meine dkms config:
Code:
PACKAGE_NAME=gim
PACKAGE_VERSION=3.0
MAKE[0]="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build"
CLEAN="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean"
BUILT_MODULE_NAME=gim
DEST_MODULE_LOCATION=/extra
REMAKE_INITRD=yes
AUTOINSTALL=yes

die liegt gemeinsam mit den sourcen aus dem ordner 'drv' im ordner
/usr/src/gim-3.0

und wird dann mittels 'dkms add' hinzufgefügt
so wird das modul dann bei jedem kernel upgrade neu kompiliert (automatisch) und
an die richtige stelle kopiert

hoffe das hilft :)
 
Also ich habe mich mal rangewagt. Das Installieren mit dkms ist kein Problem, da habe ich mich schon mit veeam und veeamsnap für den genutzen Kernel erfolgreich durchgebissen.

Folgende Befehle haben nicht funktioniert:


git checkout kernel5.0
Meldung:
error: pathspec 'kernel5.0' did not match any file(s) known to git


und dann:
make
Meldung:

root@XXX:~/MxGPU-Virtualization/drv# make make -C /lib/modules/5.0.21-3-pve/build M=/root/MxGPU-Virtualization/drv modules make[1]: Entering directory '/usr/src/linux-headers-5.0.21-3-pve' CC [M] /root/MxGPU-Virtualization/drv/gim_adapter.o /root/MxGPU-Virtualization/drv/gim_adapter.c: In function ‘idle_vf’: /root/MxGPU-Virtualization/drv/gim_adapter.c:1799:9: error: implicit declaration of function ‘timespec_sub’; did you mean ‘timespec64_sub’? [-Werror=implicit-function-declaration] tmp = timespec_sub(tmp, func->time_log.active_last_tick); ^~~~~~~~~~~~ timespec64_sub /root/MxGPU-Virtualization/drv/gim_adapter.c:1799:7: error: incompatible types when assigning to type ‘struct timespec’ from type ‘int’ tmp = timespec_sub(tmp, func->time_log.active_last_tick); ^ /root/MxGPU-Virtualization/drv/gim_adapter.c:1801:4: error: implicit declaration of function ‘timespec_add’; did you mean ‘timespec64_add’? [-Werror=implicit-function-declaration] timespec_add(func->time_log.active_time, tmp); ^~~~~~~~~~~~ timespec64_add /root/MxGPU-Virtualization/drv/gim_adapter.c:1800:30: error: incompatible types when assigning to type ‘struct timespec’ from type ‘int’ func->time_log.active_time = ^ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:286: /root/MxGPU-Virtualization/drv/gim_adapter.o] Error 1 make[1]: *** [Makefile:1608: _module_/root/MxGPU-Virtualization/drv] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.0.21-3-pve' make: *** [Makefile:39: all] Error 2 root@XXX:~/MxGPU-Virtualization/drv#

Scheinbar klappt etwas beim Kompilieren nicht. Aber mit dem programmieren habe ich wirklich keine Ahnung. Was ich allerdings machen kann: Stur nach Vorgabe Befehle eingeben oder Skripte nach Vorgabe mit nano editieren. Kann es sein dass timespec 64 Bit nicht unterstützt?

Beste Grüsse und Danke vorab

Gladiolah
 
Nun sieht das schon anders aus aber noch nicht so, als hätte es geklappt:

Code:
root@XXX:~/MxGPU-Virtualization/drv# make

make -C /lib/modules/5.0.21-3-pve/build M=/root/MxGPU-Virtualization/drv modules
make[1]: Entering directory '/usr/src/linux-headers-5.0.21-3-pve'
  CC [M]  /root/MxGPU-Virtualization/drv/gim_adapter.o
/root/MxGPU-Virtualization/drv/gim_adapter.c: In function ‘idle_vf’:
/root/MxGPU-Virtualization/drv/gim_adapter.c:1799:9: error: implicit declaration of function ‘timespec_sub’; did you mean ‘timespec64_sub’? [-Werror=implicit-function-declaration]
   tmp = timespec_sub(tmp, func->time_log.active_last_tick);
         ^~~~~~~~~~~~
         timespec64_sub
/root/MxGPU-Virtualization/drv/gim_adapter.c:1799:7: error: incompatible types when assigning to type ‘struct timespec’ from type ‘int’
   tmp = timespec_sub(tmp, func->time_log.active_last_tick);
       ^
/root/MxGPU-Virtualization/drv/gim_adapter.c:1801:4: error: implicit declaration of function ‘timespec_add’; did you mean ‘timespec64_add’? [-Werror=implicit-function-declaration]
    timespec_add(func->time_log.active_time, tmp);
    ^~~~~~~~~~~~
    timespec64_add
/root/MxGPU-Virtualization/drv/gim_adapter.c:1800:30: error: incompatible types when assigning to type ‘struct timespec’ from type ‘int’
   func->time_log.active_time =
                              ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:286: /root/MxGPU-Virtualization/drv/gim_adapter.o] Error 1
make[1]: *** [Makefile:1608: _module_/root/MxGPU-Virtualization/drv] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.0.21-3-pve'
make: *** [Makefile:39: all] Error 2
root@XXX:~/MxGPU-Virtualization/drv#
 
Nun sieht das schon anders aus aber noch nicht so, als hätte es geklappt:
man muss natürlich alle schritte danach nochmal ausführen
Code:
git fetch --all
git checkout kernel5.0
 

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!