iMac Pro in Kooperation mit Vega 64 als eGPU unter Resolve


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /www/htdocs/w00984ae/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

Das Trauerspiel geht weiter. Dieses mal in den Hauptrollen: ein 2018er iMac Pro eines Kollegen in Vollkonfiguration (okay, bei den SSDs war dann wohl Schluss, da mussten 1 TB reichen) in Gespann mit meiner eGPU-Lösung. Die Aufgabe: bessere, sprich performantere und plausiblere Ergebnisse zu Tage fördern als es bei mir der Fall war (ich berichtete).

Das Ergebnis: insgesamt das gleiche Trauerspiel. Während Raw-Workflows (getestet wurde hier Cine-Raw, was u.a. von der Phantom Flex 4k Highspeed-Kamera genutzt wird) deutliche Performance-Gewinne verzeichnen (zumindest bei der Konvertierung in DNxHD 36 / 8-bit in 1080p), gibt es bei ProRes und anderen komprimierten Codecs die gleichen unplausiblen Ergebnisse: mal gewinnt der Workflow keinerlei Performance (vlt. bremst hier ja die CPU als Decoder), mal behindert er sogar den Workflow (Renderzeiten im Vergleich zu einem Setup ohne eGPU verlängern sich, Playback leidet unter Mikro-Rucklern). Die eGPU als Wunderwaffe, um einen iMac Pro im täglichen Resolve-Workflow eines DITs performanter und damit auch nützlicher zu gestalten, geht somit also bis jetzt – ähnlich wie bei mir – in wenigen Fällen auf. Es scheint als würde Davinci Resolve zwar eGPUs unterstützen und bei Bedarf auch auf sie zurückgreifen können, das Ergebnis ist jedoch alles andere als eitel Sonnenschein.

Besonders auffällig: setzt man in Resolve die GPU-Auswahl auf „auto“ anstatt „manuell“ selbst zu wählen, wer alles Mitspielen darf, so läuft das Gespann insgesamt deutlich stabiler und manchmal auch etwas performanter ab. Wählt man hingegen nur die eGPU als Solo-Render-GPU aus, so ist die RX Vega64 sogar schneller als die intern verbaute Pro Vega 64 und das trotz Thunderbolt3-Bottleneck, sowie um die Hälfte reduzierten VRAM (8 GB müssen der RX-Variante des Vega-Chips reichen). Resolve kann also die eGPU durchaus komplett auslasten, aber anscheinend nicht im Gespann mit der intern verbauten GPU des iMac Pro. Es bleibt als die Hoffnung, dass Blackmagic Design hier schnellst möglich weiter optimiert und Apple für alle angewiesenen Anwender weiter an einer guten eGPU-Integration in weitere macOS-Instanzen arbeitet. Ich bliebe dran…

2013er Mac Pro und eine AMD Vega 64 als eGPU, oder wie ich lernte Resolve zu hassen


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /www/htdocs/w00984ae/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

Dieses Blog ist tot, die DSGVO macht eh alle privaten Blogs zur abmahngefährdeten Achillesferse ihrer Besitzer und auch sonst, Internet außerhalb großer Social-Hubs wie Facebook, Instagram und Co. ist eh tot. Ein Niemansland, in das sich keiner mehr verirrt und wenn doch, hier nicht lange verweilen mag. Warum schreibe ich dann hier nach fünf Jahren wieder was und mach mir überhaupt die Mühe, das hier weiter zu betreiben. Tja, irgendwo muss der Gedankenmatsch ja nunmal hin, auch wenn er in diesem Fall mit dem Thema Videospielen nicht mehr viel gemein hat (nungut, der Begriff AMD Vega 64 dürfte Hardcore-PC-Gamern was sagen, das wars dann aber auch schon…). Nungut, here we go…

Das Gute: Mit macOS 10.13.4 untersützt Apple nun offiziell eGPUs am Mac. Einfach ein passendes Gehäuse kaufen (davon gibt es Unzählige, siehe hier), eine potente GPU als Herz darein verpflanzen und ab gehts. Mein MacPro ist schließlich aus dem biblischen Jahr 2013 entsprungen, und die in ihm verbauten D700er waren zwar damals HighEnd und so und mit 6 GB VRAM utopisch gut ausgestattet, heute hat das aber jede MidRange-Gamingkarte gepaart mit einer deutlich potenteren GPU. Um es also mit Jeremy Clarksons Worten zu sagen: „How hard can it be?“

Das Graue: High-Sierra ist immer noch ein ziemliches Bugfest, was u.a. das Festplattendienstprogramm immer mal wieder beweist und Apples „Plug&Play“-eGPU-Idee ist mit einigen Einschränkungen verbunden, die da wären:

  1. No Thunderbolt-3-Mac, no eGPU-Support. Wer also, wie ich, einen „alten“ MacPro mit Thunderbolt2-Ports zur Verfügung hat bzw. aufrüsten möchte, kann auch mit einem passenden Adapterm von TB3- auf TB2-Anschluss ofiziell keine eGPU fahren.
  2. No nVidia in da House, please. Team grün muss ofiziell draußen bleiben, unterstützt werden nur GPUs aus dem Hause AMD und da auch nur der neueste Shizzle. Wer noch ne alte R9 Fury rumliegen hat und die gerne weiter verwenden möchte, schaut ofiziell in die Röhre. Alle nVidia-Fans und somit alle Anwender, die auf CUDA angewiesen sind, erleiden das gleichen Schicksal. Apple setzt halt auf ihre eigene Metal-API bzw. Open-CL, da ist CUDA halt ungern gesehen. Kann man verstehen, muss man aber nicht.

Das Erfreuliche: Ofiziell mag vieles nicht gehen, inofiziell gibt es aber genügend findige Tüftler da draußen, die macOS das machen lassen, was Apple schlicht nicht will. Das Nachteil ist klar: Apples SIP (System Integrity Protection) muss auf jeden Fall weichen und jedes OS-Update sollte in wohler Rücksichtnahme aller Kernel-Patch-Kompatibilitäten erfolgen. Blindes Updaten um des Updates willen ist also nicht mehr unbedingt möglich, was man dafür gewinnt ist aber beträchtlich:

Die wunderbare Community von egpu.io stellt für jedes der oben beschriebenen Probleme einen wunderbaren Patch als Lösung zur Verfügung und das stehts aktuell und verständlich beschrieben. Vorher sollte man natürlich noch ein aktuelles TimeMachine-Backup von seinem System machen, safe ist sicher und so.

Mit wenigen Handgriffen lässt sich so auch auf alten Macs mit Thunderbolt-Schnittstellen der ersten und zweiten Generation der in 10.13.4 eingeführte ofizielle Support für aktuelle AMD-GPUs in externen Gehäusen aktivieren. Auch wer eine alte AMD-GPU weiter verwenden möchte, oder eine nVidia-GPU zwecks CUDA braucht findet im verlinkten Thread Lösungen. Bei mir liefen alle Patches ohne größere Probleme durch und nach zwei Neustarts schnurrte die Vega64 in Sonnets eGFX-550-Gehäuse ohne Probleme am Thunderbolt2-Port meines Mac Pros, den ja die meisten „liebevoll“ Trashcan oder Urne getauft haben. Tja, wenn Apple das wüsste…

Warum der ganze Aufwand? „Billisch is dat aber nich!“ Ja, umsonst bekommt man natürlich nichts und wenn es mit Thunderbolt und Apple zu tun hat, dann wirds schon mal absurd teuer. Die meisten Pro-User mit einer Urne können sich noch lebhaft an die Zeiten erinnern, wo eGPUs ein vager Traum und externe Thunderbolt-PCIe-Gehäuse, in die eine Grafikkarte passte, bei knappen 1000 Euro oder auch mal leicht darüber lagen. Da sind 350 Euro für Sonnets eGPU-Gefäß also durchaus als Schnäppchen zu betrachten und jeder, der beruflich viel mit Resolve zu tun hat, wird mir zustimmen, dass 950 Euro Gesamt-Investition auf jeden Fall lohnenswert sind, wenn sich Renderzeiten drastisch verkürzen und das Playback auch mit der x-ten Node noch flüssig auf dem Kundenmonitor läuft. Oder anders ausgedrückt: wer nicht gerade Technik-Enthusiast ist oder aus beruflichen Gründen mehr Leistung aus seiner Urne quetschen muss, dem ist von solcher Art Spielerein eher abzuraten: Kosten und Nutzen stehen selbst bei einem perfekt laufenden System in einem eher zwiespältigen Verhältnis zueinander.

Das Schlechte: „Perfekt laufendes System“ Tja, schön wärs. DaVinci Resolve und eGPU, das ist ein eher zweischneidiges Schwert. Wenn es läuft ist es schnell, stabil und gut, ansonsten kann dir der schöne neue GPU-Anhang aber schnell alles zerstören. Wo eben ein UHD-ProRes noch brav mit 90 FPS in ein DNxHR umgerechnet wurde behindert die eGPU auf einmal den ganzen Prozess und die Performance bricht auf lausige 30 FPS ein, obwohl theoretisch mehr Rechenpower zur Verfügung steht. Theoretisch bedeutet in diesem Fall, dass in den branchenüblichen Benchmarks wie Geekbench und Co. die eGPU so funktioniert wie sie soll und ordentlich FPS aufs Parkett bügelt. Nur DaVinci Resolve bekommt davon nichts mit, bzw. bekommt es in vielen Fällen (hier besonders bei komprimierten Intermediate-Codecs wie ProRes, DNxHD, h264 usw. usf.) nicht hin die eGPU auch nur Ansatzweise auszulasten. Nein schlimmer noch, auf einmal wird die eGPU zum Flaschenhals und bremst den kompletten Workflow aus. Dass es anders geht wird dann auf einmal bei der Bearbeitung von ARRI RAW deutlich, wo sich Rendergeschwindigkeiten von 60 FPS auf 90 FPS hochschrauben. Aber auch hier gilt: nicht jeder Zielcodec und jede Auflösung profitieren davon. Wer von einem 3.4k-ARRI-RAW in ein 1080p DNxHD 36/8-bit für den Offline-Schnitt konvertieren möchte, der darf sich über eine top Performance freuen. Wer dasselbe RAW-Format jedoch in ein 2160p DNxHR LB wandeln möchte,  darf die eGPU getrost abkoppeln, da arbeiten die beiden D700er alleine deutlich schneller. Warum, weshalb und wieso? Ich hab keine Ahnung! Mein Trouble-Shooting hat leider kein Erfolg gebracht, dabei hab ich alles versucht. Ja, wirklich alles, hier mein Weg:

  1. DaVinci Resolve mehrfach neu installiert, verschiedenste Versionen probiert: von 12.5 bis 15 beta 4 war alles dabei. Ab 14.2 ist die Perfomance identisch geblieben.
  2. Team Green ausprobiert und mit einer Titan X dasselbe Trauerspiel erlebt, nur dass jetzt die beiden D700er dank CUDA überhaupt keine Rolle mehr spielen konnten und alles noch langsamer wurde.
  3. Dasselbe Setup an einem 2016er MacBook Pro mit Thunderbolt3-Port ohne Adapter ausprobiert und die gleichen Phänomene betrachtet. Die limitierende Bandbreite des TB2-Ports ist somit also nicht Schuld an der Tragödie.
  4. Unterschiedliche Quell-Datenträger vom schnellen HDD-Raid über Thunderbolt bis hin zu PCIe-SSDs ausprobiert: keine Verbesserung in Sicht.
  5. Kabel und Adapter mit allem getaucht was mein Ersatzteil-Lager hergegeben hat (und das ist ne Menge). Auch das hätte ich mir sparen können.
  6. Mal die eGPU als Display-GPU mit angeschlossenem Monitor probiert, mal nur als Render-GPU ohne direkten Monitor-Kontakt. Fazit: als diskrete Render-GPU funktioniert sie deutlich stabiler und zumindest die anfangs auftretenden Mikroruckler im Playback waren verschwunden.

Kurzum: DaVinci Resolve und eGPU, das ist eine Kombination, die man sich zumindest am Mac egal ob nun mit Patch über Thunderbolt 2 oder ganz ohne Bastelei dank Thunderbolt 3 erstmal sparen kann: Zu inkonsistent sind die Ergebnisse, zu unblausibel plötzliche Performance-Einbrüche. Zurück bliebt die Erkenntnis, dass Apple dringend einen ordentlichen Mac-Pro-Nachfolger bringen muss und das Thema eGPU primär etwas für Gamer bleibt, die mit ihrem Notebook zocken möchten, da ihnen ein altmodischer Tower nicht mehr ins Haus kommt oder kommen kann.

Das Hässliche: Ein eGPU-Case, das aktuell zu nichts mehr taugt als ein 950-Euro-Briefbeschwerer auf meinem Schreibtisch zu sein plus die Erkenntnis, dass Blackmagic Design vielleicht die Engine von Resolve optimieren sollte anstatt das x-te Feature ins Programm zu stopfen (hallo Fusion, ick hör dir Trapsen).

Die Hoffnung: Dass irgendwo da draußen jemand mit demselben Problem geplagt war und erfolgreich eine Lösung gefunden hat.