Guten Morgen zusammen!
ich hatte ja schonmal herausgefunden, dass man die IGPU im iMac Pro SMBIOS zusammen mit der Vega 64 obwohl das SMBIOS dafür nicht ausgelegt ist. Tatsächlich funktioniert der klassische Ansatz für Quick Sync mit "Inject Intel" und einer "Connectorless ig-platform-id" in diesem SMBIOS nicht. (siehe Anmerkung unten).
Interessanterweise funktioniert es beim iMacPro1,1 SMBIOS genau so, wie es bei anderen SMBIOS Varianten nicht funktioniert: IGPU aktivieren, -disablegfxfirmware setzen und sonst nichts. Kein Inject Intel, keine ig-platform-id. Im Zuge des macOS 10.14.1 Updates hat das ganze nicht mehr funktioniert, mittlerweile läuft es aber wieder (ich war in Experimentier-Laune).
Warum?!
Das wird sich nun jeder fragen, welcher das iMacPro1,1 SMBIOS für eine bessere Encoding Performance mit den Vega Karten nutzt. Immerhin bremst Quick Sync die Karte ja aus. Und ja, das tut Quick Sync tatsächlich, aber augenscheinlich nicht bei dieser unkonventionellen Methode. Ich habe mal ein wenig rumgespielt und festgestellt, dass sich das ganze so verhält, wie man sich das von Quick Sync auf den anderen SMBIOS Varianten (z.B. iMac18,3) wünschen würde. Die Vega wird stark ausgelastet, die IGPU aber ebenfalls. Die GPUs teilen sich die Arbeit.
In dem Screenshot seht ihr schön, wie die Vega stark ausgelastet wird und auch die IGPU einiges zu tun bekommt. In der Aktivitätsanzeige sieht man im VTDecoderXPCService sehr schön, dass sowohl die Video Accelerator Treiber für die Intel GPU als auch die AMD GPU geladen sind. Bei der regulären Quick Sync Implementierung im iMac18,3 SMBIOS ist das nicht der Fall. Hier ist immer NUR der Intel Treiber geladen.
Interessant ist auch ein Blick in die System Infos. Bei Grafik wird die Intel IGPU überhaupt nicht angezeigt. Ganz so, als wäre sie connectorless eingebunden, obwohl ich überhaupt keine ig-platform-id gesetzt habe. Auch ein Blick in IOJones / IOReg bestätigt das. Die Graphics Acceleratoren für die IGPU werden geladen.
Testest es doch mal und teilt eure Erfahrungen!
Ich habe den Test so durchgeführt:
- i7-8700k IGPU (UHD 630) aktiviert
- iMacPro1,1 SMBIOS
- Kein Inject Intel
- Keine ig-platform-id
- -disablegfxfirmware angehakt
- Vega 64 ohne Whatevergreen oder sonstige relevante Kexte (bis auf AGPMEnabler)
Wer eine Vega GPU nutzt, sollte das ohne Probleme nachstellen können. Mich würde da insbesondere interessieren, wie es sich mit anderen Prozessoren verhält, aber auch wie bei euch die Performance im Vergleich ausfällt (klassisches Quick Sync in iMac18,3 vs. Vega Only im iMac1,1 vs. unkonventionelles Quick Sync im iMac1,1).
Frohes Testen!
Nachtrag: Ich habe nun ein paar Vergleiche durchgeführt. Auch wenn die GPUs mit dieser Methode gleichmäßiger ausgelastet werden, so leidet die Performance trotzdem erheblich darunter.
Ein Beispiel: Mit VideoProc ein VP9 4k Video nach FHD HEVC encodieren.
- UHD630 + Vega 64: 62fps Peak (1 Minute 32 Sekunden)
- Nur Vega 64: 204fps Peak (21 Sekunden)
Also scheint auch diese Methode keine Vorteile zu bringen. Zumal mir aufgefallen ist, dass FinalCut in der aktuellen Version mit diesem Setup gar nicht mehr startet. Dies kann allerdings durch Inject Intel + ig-platform-id gelöst werden, was zu meiner Überraschung in der aktuellen Beta von 10.14.3 im iMacPro1,1 SMBIOS funktioniert.