Wie händelt eine Virtual Machine Zugriff auf Hardware?

Solix0x

Newbie
Registriert
Mai 2020
Beiträge
3
Mal angenommen ich möchte ein Programm entwickeln, welches die Grafikkarte zum Rendern benutzt mit OpenGL oder Vulkan. Und das Programm ist etwas spezieller und möchte das Programm in einer VM testen. Greift die VM dann auf die Grafikkarte zu und würde bei schweren Programmfehlern auch dem Hostbetriebssystem schaden? Gibt es bei sowas wie VirtualBox eine Dokumentation wo man nachlesen kann, wie mit verschiedenen Situationen umgegangen wird?

Das Ding ist, dass eine VM natürlich ohne einen Host nicht laufen kann. Und die einzige Lösung für so eine VM um Hardware wie Grafikkarte und Festplatten zu schützen, wäre es nur die CPU zu benutzen. Also müsste die VM alles mit der CPU rendern. Kann ich davon ausgehen? Ich weiß schon grundsätzlich, was eine VM macht, aber im Detail weiß ich noch nicht so viel.
 
Bei GPU Passthrough, sofern unterstützt, wird direkt auf die Grafikkarte zugegriffen, sonst nicht. OpenGL und Vulkan dürfte aber ohne GPU Passthrough sowieso nicht funktionieren.
 
Normal erzeugt eine Virtualisierung auch eine virtuelle GPU, in einigen Fällen kann man die Host-Grafikkarte durchreichen.
 
Solix0x schrieb:
Greift die VM dann auf die Grafikkarte zu
Ja, aber bei weitem nicht mit der möglichen Leistung. Man kann Geräte zwar an eine VM durchreichen, dann sind sie für den Host nicht mehr verfügbar. Mit einer einzigen Grafikkarte geht das dann natürlich nicht. Generell kann Passthrough ein extrem schwieriges Thema sein, bei GPUs mehr wie allem anderen.

Solix0x schrieb:
würde bei schweren Programmfehlern auch dem Hostbetriebssystem schaden?
Nein, das ist ja der Sinn einer VM.

Solix0x schrieb:
Gibt es bei sowas wie VirtualBox eine Dokumentation wo man nachlesen kann, wie mit verschiedenen Situationen umgegangen wird?
Die Doku zu VirtualBox findest du hier: https://www.virtualbox.org/wiki/Documentation
Was du suchst ist aber eher generell eine Einführung in Virtualisierung (Google).
 
Es gibt "Software-Rendering" - zB 2010 - schon lange bevor es 3D Grafikkarten gab.
-> POV-Ray

Solix0x schrieb:
eine Dokumentation wo man nachlesen kann, wie mit verschiedenen Situationen umgegangen wird?
Unter Linux ist der Quellcode offen und kann studiert werden.
Für Vulkan und OpenGL existieren diverse Testprogramme/-suiten und Debug-Tools - damit können zB iirc komplette Abläufe aufgenommen und abgespielt werden hier , hier, hier , hier

Ansonsten sind manchmal die Details über echte Grafikhardware nur gegen Unterschreiben einer NDA verfügbar.

Hardwarebeschreibung zB:
https://developer.amd.com/wp-content/resources/RDNA_Shader_ISA.pdf

Außerdem gibt es echte virtuelle GPUs / Software-GPUs in qemu: Virgil3D
 
  • Gefällt mir
Reaktionen: Natriumchlorid
Zurück
Oben