Next-Gen-APIs: AMD will neben der CPU auch die GPU besser auslasten

Wolfgang Andermahr
160 Kommentare
Next-Gen-APIs: AMD will neben der CPU auch die GPU besser auslasten

Das Hauptaugenmerk der Next-Gen-APIs DirectX 12, Vulkan und Mantle ist die Reduzierung des Treiber-Overheads, um die CPU deutlich effizienter nutzen zu können. Der 3DMark zeigt, dass der theoretische Vorteil groß ist. Mit Hilfe von Asynchronous Shaders will AMD auch die GPU-Auslastung im GPU-Limit verbessern.

Asynchronous Shaders funktionieren nur mit den drei Next-Gen-APIs DirectX 12, Mantle und Vulkan. AMDs Ansatz macht sich dabei die Tatsache zu Nutze, dass die neuen APIs Aufgaben in mehrere Threads aufteilt und diese nicht immer seriell, sondern genauso parallel abgearbeitet werden können, wenn diese unabhängig voneinander sind. Dies gilt in Spielen zum Beispiel für Grafik-, Compute- und für Kopieranweisungen.

Für die GPU wird die Auslastung der Rendering-Pipeline mit den parallelen Aufgaben der API komplexer. Eine Lösung besteht in der Priorisierung von Aufgaben durch das Front-End des Chips. Die Effizienz der Pipeline kann durch diese Maßnahme allerdings sogar sinken, weil hoch priorisierte Aufgaben weniger wichtige zum Warten zwingen und die Priorisierung als solche Overhead erzeugt.

AMDs GPUs auf Basis der Graphics-Core-Next-Architektur (GCN) sollen den Anforderungen der neuen APIs durch Einbeziehung der Asynchronous Compute Engines (ACE) Herr werden. Jede einzelne ACE kann dabei acht unabhängige Kommandoströme erstellen, die unabhängig voneinander in der Berechnungspipeline eingespeist werden, wann immer Ressourcen frei sind. Die Fertigstellung anderer Aufgaben ist für das Einspeisen einzelner Kommandos aus einem anderen Strom nicht erforderlich. AMD bedient sich dem Beispiel einer Straße, bei der der auffahrende Verkehr die vorhandenen Lücken auffüllt und so die Auslastung der Autobahn maximiert.

Auf Basis des neuen LiquidVR-SDK gibt AMD einen ersten Einblick auf die erwartete Leistungsfähigkeit. Das Beispiel zeigt eine einfach gerenderte Szene, die auf einer Radeon-R9-290X-Grafikkarte 245 Bilder pro Sekunde erreicht. Inklusive eines gewöhnlichen Unschärfeeffektes im Post-Processing sinkt die Framerate auf 158 FPS. Nutzt der Test Asynchronous Shaders, erhöht sich die Bildausgabe auf 230 FPS.

Asynchronous Shaders wird von jeder GPU unterstützt werden, die auf GCN basiert – Also allen Grafikkarten seit der Radeon-HD-7000-Serie. Allerdings hat sich die Anzahl der ACE-Einheiten mit der Zeit geändert, sodass die Effizienz von Asynchronous Shaders unterschiedlich hoch ausfallen kann. So besitzt Tahiti als erste GCN-GPU nur zwei ACE-Einheiten. Obwohl Bonaire eine deutlich kleinere GPU ist, sind dort vier ACE-Einheiten verbaut und Hawaii als aktuelles Flaggschiff verfügt über deren acht. Gegenüber Nvidia sieht sich AMD in diesem Aspekt im Vorteil. Maxwell von Nvidia sei nicht in der Lage, mehrere parallele Kommandoströme zu erstellen. Belege gibt es dafür bisher nicht.

Die Technik soll nicht nur in der klassischen 3D-Grafik, sondern ebenso bei Virtual Reality Verwendung finden. So soll beispielsweise Asynchronous Time Warp, also das Rendern der Bilder aus verschiedenen Perspektiven, massiv beschleunigt werden können. Auch die auftretenden Latenzen sollen geringer ausfallen. In diesem Fall werden Rendering und Compute parallelisiert.