> > > > Asynchronous Shader sollen AMD-Grafikkarten weiter beschleunigen

Asynchronous Shader sollen AMD-Grafikkarten weiter beschleunigen

DruckenE-Mail
Erstellt am: von

Seite 1: Asynchronous Shader sollen AMD-Grafikkarten weiter beschleunigen

amd radeon 2013Die Einführung zahlreicher Grafik-APIs in den vergangenen Monaten hat gezeigt, dass gerade bei der Softwareschnittstelle zwischen Hard- und Software noch einiges Potenzial vorhanden ist. AMD macht mit Mantle den Anfang, DirectX 12 steht im Sommer mit Windows 10 auf dem Plan, bei OpenGL arbeitet man an Vulkan und Apple brachte den Denkanstoß mit Metal in den mobilen Bereich. Bisher war bei diesen Optimierungen meist nur von den sogenannten Draw Calls die Rede, deren Overhead in den Berechnungen des Prozessors reduziert wurde. Der API Overhead Test als neuer Feature-Test des Futuremark 3DMark zeigte an dieser Hinsicht wieder das Potenzial auf.

Es bedarf also nicht immer neuer Hardware, um deutlich mehr Leistung aus bestehenden Produkten zu kitzeln - so die Botschaft hinter den Erwartungen an DirectX 12. AMD spricht nun erstmals über ein Feature, welches sich eigentlich schon seit Einführung der "Graphics Core Next"-Architektur in den aktuellen GPUs befindet. Die sogenannten Asynchronous Shader sollen die Art und Weise wie Engine, Treiber und Hardware miteinander sprechen und die Aufgaben verteilen, verbessern. Mit dem Launch der ersten Grafikkarten auf Basis der "Hawaii"-GPU sprach AMD aber noch von Verbesserungen beim GPU-Computing für die asynchrone Compute Engines. Jede GPU mit GCN-Architektur verfügt aber diese speziellen Hardware-Einheiten. Was damals noch als ein reines Compute-Feature angesehen wurde, soll nun DirectX 12 bei Spielen auf die Sprünge helfen.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Bei den Betrachtung einer GPU-Architektur erwähnen wir auch immer die einzelnen Funktionsblöcke, deren Funktionsweise und Verwendungszweck. Dabei zeigt sich, dass viele dieser Funktionseinheiten unabhängig voneinander arbeiten können, aufgrund des Rendering-Prozesses aber nicht in der Lage sind, so zu arbeiten, sondern meist linear nur eine sogenannte Queue abgearbeitet wird. Dieses schrittweise Abarbeiten versuchen die in allen Architekturen vorhandenen Scheduler zu optimieren, in dem sie die Aufgaben möglichst gleichmäßig verteilen, dies gelingt allerdings nur bis zu einem gewissen Grad.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Mit DirectX 12 verändert sich die Art und Weise der Zugriffe auf die API durch die Programmierer. Sie haben viel mehr Einfluss auf die Arbeitsschritte, sodass sich bestimmte Arbeitsprozesse besser organisieren lassen. Eine bessere Multi-Thread-Skalierung, Pipelines States und Work Submissions sind dabei die drei wichtigsten Werkzeuge, um den Rendering-Prozess entsprechend zu optimieren. In einer recht frühen Vorstellung von DirectX 12 durch Microsoft sind wir bereits darauf eingegangen.

Obiges Bild stellt die Abarbeitung der verschiedenen Rendering-Prozesse in DirectX 12 dar, während im Bild darüber die Arbeitsweise von DirectX 11 zu sehen ist. Die verkürzte Renderzeit äußert sich natürlich in höheren Frames pro Sekunde und reduziert auch die Latenzen, was in einigen Bereichen wie den VR-Brillen ebenfalls einen positiven Aspekt darstellt.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Nun können Entwickler die Aufgaben nicht beliebig verteilen, sondern müssen sich an gewisse Vorgaben der APIs halten. Moderne Spiele-Engines erlauben dazu eine Aufteilung in vordefinierte Queues, die unabhängig voneinander abgearbeitet werden können. In diesem Beispiel werden die Aufgaben in eine Grafik-, Compute- und Copy-Quere verteilt. Die API, hier DirectX 12, verteilt die Queues auf die zur Verfügung stehenden Ressourcen der GPU.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Was im Ansatz einfach klingt, ist in der Praxis aber weitaus komplizierter, denn auch diese verteilten Queues müssen auf die freien Ressourcen der GPU verteilt werden. AMD erklärt einen Rendering-Prozess anhand eines Beispiels aus dem Autoverkehr. Die Kreuzung und Zusammenführung zweier Fahrspuren auf eine mithilfe einer Ampel entspricht dabei der zu bewältigenden Aufgabe. Die Ampel ist dabei der Scheduler, der entscheiden muss, wann welcher Prozess in die Rendering-Pipeline eingeführt wird. Alle Schritte besitzen dabei die gleiche Priorität. Das Warten auf freie Ressourcen sowie das Umschalten benötigen so Zeit, die nicht sinnvoll genutzt wird.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Eine Möglichkeit diesen Prozess zu verbessern, sind die Pre-Emptions. Dabei werden einige Aufgaben priorisiert. Wieder am Beispiel des Autoverkehrs wird die blaue Queue angehalten, der höher priorisierte Prozess (lila) kann dann in den Rendering Prozess eingefügt werden. Allerdings findet auch hier ein Umschalten zwischen den verschiedenen Queues statt und auch die Effizienz wird nicht wesentlich erhöht.

Asynchronous Shader bei AMD
Asynchronous Shader bei AMD

Bei AMD kommen nun die asynchronen Compute Engines (ACE) ins Spiel. Diese mehrfachen Command Queues können gleichzeitig abgearbeitet und daher effizienter in die Rendering-Pipelines zusammengeführt werden. Damit das Beispiel des Autoverkehrs funktioniert, muss man vielleicht noch einfügen, dass es sich um einen getakteten Autoverkehr handelt, bei dem die Fahrzeuge einer bestimmten Reihenfolge und bestimmten Abständen folgen. Arbeiten die Command Queues alle mit dem gleichen Takt, kommt es eventuell zu Kollisionen. Die ACEs sollen dies verhindern, in dem sie die Commands unabhängig von einem Takt in die Queue einfügen. So lassen sich freie Lücken und damit brachliegendes Leistungspotenzial besser nutzen. Weiterhin möglich ist aber auch die Priorisierung bestimmter Prozesse.

 

Social Links

Seitenübersicht

Ihre Bewertung

Ø Bewertungen: 5

Tags

Kommentare (22)

#13
Registriert seit: 23.10.2013

Hauptgefreiter
Beiträge: 191
Sind denn schon, neben Star Citizen, etwaige Titel mit DX12 angekündigt worden?
#14
Registriert seit: 21.10.2014

Stabsgefreiter
Beiträge: 267
Pre oder Post-DX11?
#15
customavatars/avatar108709_1.gif
Registriert seit: 17.02.2009
Sachsen, Brandis b. Leipzig
Admiral
Beiträge: 16801
Zitat Zero-11;23336027
klingt verdächtig nach HSA


Dito - der Ansatz ist sehr Ähnlich wie mir scheint. Denn so könnte man auch Aufgaben zwischen CPU- und GPU Teil einer APU Priorisieren und dem Entsprechendem Teil zukommen lassen.


Na mal schauen, wenn das irgendwo durchgeht und nicht wieder von nVidia blockiert wird (wenn es wie schon weiter oben geschrieben ein offener Standard werden könnte) sehe ich sogar gute Chancen das APUs richtig effektiv werden.


Zitat Jogi5;23336086
Pre oder Post-DX11?


Post-DX11 ... Prä wäre davor... :fresse: (Prähistorisch z.b.)
#16
customavatars/avatar202850_1.gif
Registriert seit: 06.02.2014
Im sonnigen Süden
Admiral
Beiträge: 9431
Zitat Pirate85;23336119
Dito - der Ansatz ist sehr Ähnlich wie mir scheint. Denn so könnte man auch Aufgaben zwischen CPU- und GPU Teil einer APU Priorisieren und dem Entsprechendem Teil zukommen lassen.


Na mal schauen, wenn das irgendwo durchgeht und nicht wieder von nVidia blockiert wird (wenn es wie schon weiter oben geschrieben ein offener Standard werden könnte) sehe ich sogar gute Chancen das APUs richtig effektiv werden.

Hier geht es aber ausschlieslich um die Recheneinheiten in der Grafikkarte/Grafikeinheit selbst.. nicht um die APUs!
Höchstens das Prinzip ist das Selbe.

Jedenfalls wäre es gut von/für AMD wenn sie mit Microsoft so an DX12 zusammengearbeitet haben, dass sie jetzt daraus ein par Vorteile rausholen können.
#17
customavatars/avatar108709_1.gif
Registriert seit: 17.02.2009
Sachsen, Brandis b. Leipzig
Admiral
Beiträge: 16801
Genau, exakt.

Es geht um das Prinzip.

Dieses wäre in gleichem Maße auf APUs anwendbar und somit HSA... :wink:
#18
customavatars/avatar95761_1.gif
Registriert seit: 27.07.2008

Fregattenkapitän
Beiträge: 2577
Not macht eben erfinderisch.
Die Parallelisierung der Aufgaben ist sicherlich eine gute Möglichkeit die Leistung optimal zu nutzen. Leider ist es wiederum sehr schwierig einen Ablauf zu parallelisieren. Das ist einen große Herausforderung für AMD aber der darin enthaltene Gewinn wiegt die Mühe auf.

Wobei man NVIDIA sicherlich nicht nachsagen kann, das sie einfallslos wären. Sie haben schließlich mit Maxwell eine deutlich effizientere Architektur auf die Beine gestellt und das muss man auch erst einmal erreichen.
Allerdings ist es oft so, das AMD mit ihren Innovationen oft nicht genug Beachtung geschenkt wird und sie daraus dann nicht dementsprechend entlohnt werden. Siehe z.B. DirectX10.1
Direct3D 10.1 im Test: Fünf Spiele mit Microsofts API im Vergleich (Seite 9) - ComputerBase
Da waren Leistungssprünge von guten 20% gegenüber DirectX10 möglich, was heute schon eine neue Grafikkartengeneration bedeuten würde.
Warum es trotzdem keinen so großen Anklang fand, wissen wir doch alle. ;)
#19
customavatars/avatar14695_1.gif
Registriert seit: 27.10.2004
HNX
Kapitänleutnant
Beiträge: 1945
Die letzte Grafik scheint nicht zu stimmen.
Die R9 290 hat 8 ACEs und jede kann bis zu 8 Queues nutzen ergibt 64 Queues.
amd-asynchronous-shader-8 » Fotostrecken
Zitat


AMD GCN 1.2 (285) 1 Graphics + 8 ACEs = 64+ Compute (64+ queues)
AMD GCN 1.1 (290 Series) 1 Graphics + 8 ACEs = 64+ Compute (64+ queues)
AMD GCN 1.1 (260 Series) 1 Graphics + 2 ACEs = 16+ Compute (16+ queues)
AMD GCN 1.0+ (Kabini) 1 Graphics + 4 ACEs = 8+ Compute (8+ queues)
AMD GCN 1.0 (7000/200 Series) 1 Graphics + 2 ACEs = 4 Compute+ (4+ queues)
NVIDIA Maxwell 2 (900 Series) 1 Graphics + 1 Compute = 32 Compute (32 queues)
NVIDIA Maxwell 1 (750 Series) 1 Graphics = 1 Compute (32 queues)
NVIDIA Kepler GK110 (780/Titan) 1 Graphics = 1 Compute (32 queues)
#20
Registriert seit: 05.08.2009
Neckarsulm
Korvettenkapitän
Beiträge: 2377
Na dann mal schauen was der Fiji so an ACE bieten wird und bo man das wirklich so sehr merken wirkt.
#21
Registriert seit: 23.10.2013

Hauptgefreiter
Beiträge: 191
Vermutlich 16 = 128
#22
customavatars/avatar14695_1.gif
Registriert seit: 27.10.2004
HNX
Kapitänleutnant
Beiträge: 1945
Zitat
Acht asynchrone Compute Engines (ACE) stehen in der "Hawaii"-GPU zur Verfügung, die allesamt unabhängig voneinander arbeiten können.

Steht im Artikel und auf den Folien, die letzte Grafik stimmt also immer noch nicht.

Der Autor sollte seinen Artikel bitte korrigieren.
Um Kommentare schreiben zu können, musst Du eingeloggt sein!

Das könnte Sie auch interessieren:

Roundup: 5x GeForce GTX 1070 mit Custom-Design im Test

Logo von IMAGES/STORIES/GALLERIES/REVIEWS/2016/5X-GTX1070/GTX1070_CUSTOM_ROUNDUP-TEASER

Nachdem wir bereits eine Reihe von Boardpartner-Karten der NVIDIA GeForce GTX 1080 ausführlich getestet haben, holen wir gleiches nun für das kleinere Schwestermodell nach, denn auch von der NVIDIA GeForce GTX 1070 gibt es viele Custom-Modelle mit höheren Taktraten, eigenen Kühlsystemen und... [mehr]

Drei Custom-Modelle der GeForce GTX 1060 im Test

Logo von IMAGES/STORIES/GALLERIES/REVIEWS/2016/3X-GTX1060/GTX1060_ROUNDUP_TEST-TEASER

Anders als bei der GeForce GTX 1080 und GeForce GTX 1070 trudelten wenige Stunden nach unserem Test zur Founders Edition der NVIDIA GeForce GTX 1060 schon die ersten Boardpartner-Karten mit teils höheren Taktraten, eigenem Kühlsystem und überarbeitetem Platinenlayout ein. Sie dürften... [mehr]

NVIDIA GeForce GTX 1080 mit Pascal-Architektur im XXL-Test

Logo von IMAGES/STORIES/LOGOS-2016/GEFORCE-GTX-1080

Heute ist es soweit: NVIDIA läutet mit der GeForce GTX 1080 und GTX 1070 auf Basis der Pascal-Architektur den diesjährigen Neustart bei den Grafikkarten ein. In Kürze wird wohl auch AMD seinen Beitrag zu diesem Thema leisten. Vor zehn Tagen lud NVIDIA die gesammelte Fachpresse nach Austin ein... [mehr]

Roundup: 5x GeForce GTX 1080 im Custom-Design im Test

Logo von IMAGES/STORIES/LOGOS-2016/GEFORCE-GTX-1080

Nachdem wir uns die Founders Edition der GeForce GTX 1080 und GeForce GTX 1070 bereits angeschaut haben, folgen nun fünf Retail-Modelle, die wir in aller Ausführlichkeit unter die Lupe nehmen wollen. Aus den vielen Boardpartnern und unterschiedlichen Modellen haben wir uns solche von ASUS, EVGA,... [mehr]

AMD Radeon RX 480 im Test

Logo von IMAGES/STORIES/GALLERIES/REVIEWS/2016/RADEON-RX480/RADEON-RX480-REFERENCE-LOGO

Es ist also soweit: AMD startet die großangelegte Zurückeroberung des Grafikkartenmarktes mit der Radeon RX 480, die als erste Grafikkarte der Polaris-Generation mit gleichnamiger Architektur erscheint und die wir uns genauer anschauen können. Dabei versucht sich AMD an einem anderen Ansatz im... [mehr]

PowerColor Radeon RX 480 Red Devil im Test

Logo von IMAGES/STORIES/GALLERIES/REVIEWS/2016/POWERCOLOR-RX480/POWERCOLOR-RX480REDDEVIL-LOGO

Mit der Radeon RX 480 will AMD zurück zu alter Stärke und hat daher über Monate hinweg die PR-Trommel geschlagen. Letztendlich dabei herausgekommen ist eine sehr gute Karte für einen niedrigen Preis, die aber nicht in allen Bereichen zu überzeugen weiß. Wohl größtes Manko der Karte sollte... [mehr]