GPU vs. CPU Rendering – ein empirischer Vergleich.
GPU–Render-Engines werden immer beliebter und bieten immer mehr Funktionen. Mit Sicherheit haben auch Sie schon daran gedacht GPUs in ihren Workflow zu integrieren. Die treibende Kraft hinter einer Migration zum GPU-Rendering ist seit jeher die Geschwindigkeit. Immer häufiger steht die folgende Frage im Raum: „Wie viel schneller ist das Rendern von Grafikprozessoren im Vergleich zum Rendern von CPUs“.
Das folgende Video veranschaulicht einen Parallelvergleich zwischen einem 17-HexaCore-Prozessor und dem GeForce GTX 970 Grafikprozessor:
Mit diesem Artikel möchten wir ihnen ein besseres Verständnis für die Bildqualität in Bezug auf die Renderzeiten von verschiedenen Rendering–Engines mit unterschiedlichen Renderern ermöglichen. Zudem werden wir ihnen eine Methode vorstellen, wie Sie das CPU-Rendering besser mit dem GPU-Rendering vergleichen können.
Höchstwahrscheinlich sind Sie bereits mit Benchmarks fürs CPU-Rendering in Berührung gekommen. Das Konzept ist einfach: eine Benchmark-Szene einrichten und die Renderzeiten auswerten, wobei die einzige Variable das zu testende CPU-Modell ist. Die Szenendatei, Beleuchtung, Shader und Rendereinstellungen bleiben während des gesamten Tests konstant. Das Benchmarking gestaltet sich beim Vergleich des GPU- und CPU-Renderings vergleichsweise komplexer. So hat z.B. die V-Ray der Chaos Group eine beliebte GPU-Rendering-Engine (V-Ray RT für GPUs). Auch wenn V-Ray RT dem traditionellen CPU-basierten V-Ray Advanced hinsichtlich der Usability sehr ähnlich ist, handelt es sich um eine völlig andere Rendering-Engine mit eigenen, einzigartigen Einstellungen, die innerhalb einer Szene leicht unterschiedliche Ergebnisse liefert.
Aus diesem Grund werden viele Benutzer versuchen, die visuelle Bildqualität des CPU-Renderers zu erreichen. Aber dieses Vorhaben allein durch Beobachtung zu realisieren, gestaltet sich für Benchmarking-Prozesse zu subjektiv und unzuverlässig. Bezogen auf ein Bild mit GPU-Rendering lässt sich festhalten, dass die Ergebnisse auf der CPU vergleichbar gut aussehen. Simultan könnten die Renderzeiten dazu verwendet werden, um Sie mit der Renderzeit der CPU zu vergleichen. Für einen aussagekräftigen Vergleich ist eine empirische Herangehensweise erforderlich.
Bildqualität berechnen.
Jede Person, die sich mit der Verarbeitung digitaler Fotografien beschäftigt, hat sich mit Sicherheit schon mit dem Rauschen in seinen Bildern auseinandergesetzt. Besonders einzelne Bereiche der digitalen Fotografie wie z.B. die Astrofotografie, leidet unter übermäßigen Rauschen. Astronomen möchten nur mit Bildern von höchster Qualität arbeiten, wenn Sie Bilddaten stapeln. Um schlechte Bilder aus ihren Datensätzen zu entfernen, muss für jedes Bild eine Bildqualitätsanalyse durchgeführt werden.
Um dies zu erreichen hat der Lehrstuhl Physik/Astronomie der Universität Manitoba den sogenannten Image Quality Calculator entwickelt. Das Tool, ein Plug-In für ImageJ, kann die Qualität von 3D-Renderings analysieren. Um die Fähigkeiten des Tools zur Rauschanalyse in 3D-Renderings zu demonstrieren, wurde die Renderzeit mit V-Rays RT für GPUs schrittweise erhöht sowie die Werte für die Bildqualität für 30 gerenderte Bilder aufgetragen.
Daraus ergab sich eine Kurve, die man so erwarten würde. Die Menge an messbaren Lärm nahm im Laufe der Zeit kontinuierlich ab. Diese Kurve ahmt auch die Beobachtung nach, dass der Grad der visuellen Verbesserung mit zunehmender Renderzeit schwieriger einzuschätzen ist.
Berechnung des Image Quality Factor.
Der Faktor berechnet sich aus der Summe der Differenzen benachbarter horizontaler und vertikaler Pixel. Dies erfolgt auf drei verschiedenen Skalen (ursprüngliche Größe, halbe Größe und Viertelgröße). Bilder, die viel Kontrast und scharfe Kanten enthalten, sollten mit dieser Methode einen höheren Qualitätsfaktor haben.
Festlegung des Richtwerts für die Bildqualität.
Durch die genaue Methode zur Messung der Bildqualität zwischen zwei verschiedenen Engines, können wir die Leistung von GPU- und CPU-Rendering besser beurteilen. Dazu muss zunächst ein Richtwert für die Bildqualität bestimmt werden, die den endgültigen Anforderungen des zugrundeliegenden Projekts entspricht. Wenn z.B. eine Animation erstellt wird, basiert der Richtwert der Bildqualität auf Rendereinstellungen, welche akzeptable geräusch- und flackerfreie Animationssequenzen erzeugen.
Die zugrundeliegende Annahme ist, dass Benutzer von V-Ray Advanced auf V-Ray RT GPU umsteigen.
Vergleich der Ergebnisse.
Mit den IQ-Wert (und der GPU-Rendering-Engine) liegt nun ein Ziel vor, welches angepasst werden kann. Um die CPU mit der GPU zu vergleichen, wurde ermittelt, wie lange die GPU-Engine benötigte, um die Bildqualität des Richtwerts zu erreichen. In einem Test wurden mit dem CPU-Rendering genau 19 Minuten und 11 Sekunden benötigt, um den Richtwert für die Bildqualität zu erreichen, während die Grafikkarte dafür insgesamt 3 Minuten und 4 Sekunden benötigte. Damit war der Grafikprozessor (2688 CUDA Kerne) insgesamt 6,2 mal schneller als die CPU.
Auswahl der richtigen Hardware.
Unabhängig davon, ob Sie sich in ihrer Rendering-Pipeline auf CPUs oder GPUs verlassen. Sie sollten sich vor einer Entscheidung und dem Kauf einer Hardware gründlich informieren.
Haben Sie sich schon für eine Rendering-Engine entschieden? Oder sind Sie noch am grübeln? Wenn Letzteres zutrifft empfehlen wir ihnen den folgenden Artikel zu lesen.