Encoding: Herausfinden welche GPU genutzt wird

  • Wer seinen Hackintosh feintunen möchte und neben der Prozessor Grafik (IGPU) auch eine dedizierte Grafikkarte nutzt (DGPU), steht früher oder später vor dem Thema Video Beschleunigung. Dabei geht es um das Decodieren und Encodieren von Videos (H.264 und H.265 alias HEVC) mit den Video Decoding und Encoding Einheiten in der GPU. Diese sind dazu da, den Vorgang deutlich zu beschleunigen und dabei den Prozessor zu entlasten.

    Auf den meisten Macs (wenn IGPU vorhanden) wird fürs Video Encoding und Decoding "Quick Sync" genutzt. In der Theorie teilen sich die DGPU und die IGPU die Arbeit. In der Praxis sieht das bei macOS allerdings anders aus und die IGPU übernimmt die meiste Arbeit. Je nach Modell der dedizierten Grafikkarte kann das von Nachteil sein - z.B. bei den Vega 56 und Vega 64 Karten. Diese können Videos wesentlich schneller En- und Decodieren als die IGPUs in heutigen Intel Prozessoren (Stand 2018).


    Beim Feintuning stellt sich dann die Frage, ob man daran nicht etwas ändern kann. Neben der Frage, ob macOS überhaupt den Hardware De-/Encoder der genutzten DGPU unterstützt, stellt sich immer auch die Frage nach dem "Status Quo": Was wird aktuell genutzt? Wie man zum Status Quo kommt, soll diese kurze Anleitung beantworten.


    Schritt 1: Läuft Hardwarebeschleunigung schon?

    Diese Frage muss zuerst geklärt werden, denn sonst kann man in diese Richtung auch nichts testen. Am einfachsten lässt sich das prüfen, indem man Video Proc nutzt. Video Proc ist ein Tool zum Konvertieren von Videos, welches Auskunft darüber gibt, welche Art von Hardware Beschleunigung unterstützt wird. Herunterladen kann man sich das Tool hier: https://www.videoproc.com/

    Kaufen müsst ihr es nicht, der Test funktioniert auch ohne Lizenz. Nach der Installation öffnet ihr Video Proc und klickt unten rechts auf "Anpassen".



    Im folgenden Fenster klickt ihr bei Hardware Beschleunigung auf "Anpassen".



    Anschließend führt VideoProc einen Test durch, in welchem geprüft wird, ob Hardware Beschleunigung für H.264 und H.265 zur Verfügung steht. Das Ergebnis sieht im Bestfall so aus. Ist hier mindestens ein Punkt grün, kann es weiter gehen.



    Schritt 2: Welche GPU wird denn nun genutzt?

    Da nun geklärt ist, dass Hardware Beschleunigung für Videos in irgend einer Art und Weise funktioniert, können wir prüfen, welche GPU genutzt wird. Dazu solltet ihr euch eine Video Datei besorgen, mit welcher ihr das testen könnt. Hier ist zum Beispiel eine gute Quelle: http://4ksamples.com/


    Zur Vorbereitung öffnet ihr nun die macOS "Aktivitätsanzeige". Dort gebt ihr in der Suche "VTDecoder" ein.



    Als nächstes kickt ihr im Video Proc Startbildschirm auf "Video" und fügt anschließend die bereitgelegte Video Datei mit dem "+ Video" Button ein. Das Fenster sollte dann so aussehen (stellt sicher, dass der Haken bei "Hardwarebeschleunigung" gesetzt ist und wählt unten bei Zielformat ein HEVC oder H.264 Preset aus):



    Nun könnt ihr auf "Run" klicken um den Konvertierungs-Prozess zu starten. Wenn ihr zeitgleich die Aktivitätsanzeige beobachtet, sehr ihr, dass dort ein "VTDecoder" Prozess auftaucht, bei welchem eine CPU Last angezeigt wird.



    Markiert genau diesen Prozess und klickt oben in der Titelleiste auf den Info Button. Im folgenden Fenster klickt ihr dann auf "Geöffnete Dateien und Ports".



    Und genau hier kann man nun sehen, welche Karte tatsächlich genutzt wird. In diesem Beispiel wird eine Vega 64 genutzt, weshalb dort der "RadeonVADriver2" auftaucht. VA steht für Video Acceleration. Würde die IGPU genutzt werden, würde man hier etwas von Intel lesen. Würden beide genutzt werden, könnte man Einträge für Intel und AMD bzw. Radeon sehen.


    Hier noch ein Beispiel von einem MacBook Pro mit Intel Iris Pro (AppleIntelHSWA und AppleIntelHD5000GraphicsVADriver Eintrag):



    Nachtrag

    Bei aktiver IGPU (Quick Sync) hat die Anzeige leider wie sich mittlerweile herausgestellt hat keine Aussagekraft. Ist Quick Sync aktiv, wird immer auf der IGPU encodiert. Dennoch werden in dem Fall sowohl der Radeon VA Treiber als auch der Intel VA Treiber geladen. Dass die dedizierte GPU allerdings nicht genutzt wird, lässt sich über den Vergleich der Werte ohne IGPU und mit IGPU herausfinden. Am Beispiel einer Vega 64 sieht das dann so aus:


    Vega 64 Standalone

    Quellmaterial 4k60 (1:47)

    H.264 zu H.265: 1:30 Minuten

    H.265 zu H.264: 1:56 Minuten


    Vega 64 + IGPU (Quick Sync)

    Quellmaterial 4k60 (1:47)

    H.264 zu H.265: 3:05 Minuten

    H.265 zu H.264: 2:25 Minuten


    Wie ihr seht ist die Performance bei deaktivierter IGPU deutlich besser.

    => Fazit: Quick Sync sollte man nur dann nutzen, wenn es nicht anders geht. Wer die Chance hat die Hardware Encoder / Decoder seiner verbauten Grafikkarte (DGPU) zu nutzen, der sollte das auch tun.

Share