News Die Wiedergeburt des Primitive Shaders von AMD in den Next Gen Konsolen

User-News

Von E555user

Hinweis: Diese "User-News" wurde nicht von der Planet 3DNow! Redaktion veröffentlicht, sondern vom oben genannten Leser, der persönlich für den hier veröffentlichten Inhalt haftet.
Mitte 2017 zur Vorstellung der revolutionären Vega Architektur von AMD gab es viel Kritik um neue technische Funktionen, die in den damals aktuellen Spielen keine Wirkung zeigten. So wurde letztlich von Online Medien über den Primitive Shader berichtet, dass dieser von AMD eingestellt wurde.

Die Informationen seitens AMD um den Primitive Shader waren weitestgehend im unklaren geblieben. Im Kern sprach man von einer Vereinheitlichung der Geometriepipeline auf einen einzigen in Hardware unterstützten Prozess, hier eine Grafik der offiziellen Präsentationen zum Thema.
Vega-Presentation_p24.jpg
AMD kommunizierte beim Start von Vega die Primitive Shader könnte durch den Treiber selbst genutzt werden und sprach aber später davon, dass dies von den Game-Entwicklern in der API explizit genutzt werden müsste.

Auch ein Video-Interview von Steve Burke mit der GPU-Koriphäe Mike Mantor von AMD brachte nur weniges erhellendes, blieb er in den Erklärungen doch weitestgehend beim Einsatzzweck und verlor kaum ein Wort über die Funktionsweise (versprach aber mindestens 1.7GHz für das Vega-Design, was der GloFo Prozess dann doch nicht erreichte). Die Kette von Vertex Shader, Hull Shader, Tesselation, Domain Shader und Geometrie Shader sollte in Software und Hardware vereinfacht werden, so viel war klar.
Eine geleakte Folie brachte etwas mehr Licht in die Zusammenhänge. Mit Vega sollten diese diversen Stages der Geometriepipeline, welche auf einer GPU prinzipiell seriell durchlaufen wird, zunächst in zwei Einheiten alias Surface Shader und nach der Tesselation dem Primitive Shader vereinfacht werden. In einer Next Gen Variante sollte das ganze auf Vega durch eine einzelne logische Einheit für eine software optimierte Ausführung zusammengeführt werden. Auf der Hardwareebene sind jeweils immer die gleichen Primitive Assembler in der seriellen Abarbeitung mit Datenaustausch über die Crossbar beschäftigt, im Next-Gen Modell fällt der häufige Datenaustausch durch die vereinheitlichten Prozesse zusammen.
PrimitiveAssembler.jpg
Es blieb in der Erinnerung ein Vega-Feature, das keine Verwendung fand.

Ein Jahr später in 2018 brachte Nvidia die Turing-Architektur mit viel Marketing rund um Raytracing und künstlicher Intelligenz für das Skalieren in hoher Qualität auf 4k Auflösung. Die mit Turing neu eingeführten Mesh-Shader blieben weitestgehend ohne Medien-Echo. Im Unterschied zu AMD mit den Primitive-Shadern hat es Nvidia jedoch geschafft eine ausführliche Erläuterung der eigenen Ideen auf der Software-Ebene zu publizieren. Nicht das neue Hardware-Feature stand im Vordergrund sondern eine Methode rund um Meshlets, um mit der Geometrie effektiver für die jeweiligen Anforderungen der Rasterisierung umzugehen. Wo bei AMD die Erläuterungen über neue Hardwaremöglichkeiten aufhörte gab Nvidia konkrete Anwendungsbeispiele für neue Softwarekonzepte die Pipeline mit Primitive Assembly zu optimieren.
meshlets_pipeline2.png
Auch wenn die Ähnlichkeiten mit dem Primitive Shader von AMD frappierend sind, es fand in der Kommunity kaum ein Echo. Vielmehr blieb es ein Feature für die Zukunft in den Augen der Softwareentwickler.

Nun sind heute in 2020 - durch erste Informationen rund um die nächste Konsolengeneration - die Mesh-Shader als Feature wieder in den Fokus des Interesses gerückt. In einem Video aus der Serie Microsoft DirectX and Graphics Education referiert Martin Fuller von Microsoft über die Mesh-Shader Funktionalitäten in Turing und der kommenden Xbox Series X Konsole. Er berichtet über die Meshlet-Programmierung in DirectX 12 Ultimate. Das Video lohnt sich sehr um die Möglichkeiten der vereinfachten Geometriepipeline zu verstehen, wie diese bei den ersten Verlautbarungen von AMD in 2017 noch im unklaren blieben.
MeshletCulling.png
In dem Developer-Beispiel kann man dabei erahnen, dass die kommende Konsole eine Mesh-Shader bzw. Primitive-Shader Performance für die Gemoetrie in etwa auf dem Niveau zwischen einer RTX-2080 und RTX-2080Ti der Turing-Generation aufweisen sollte. Ein Umstand, der auch Tom von Moore's Law is Dead, bzw. WCCFtech aufgefallen ist.

Während dieser News-Beitrag versucht einen Bogen über die langjährige Entwicklung und Zusammenhänge zu spannen bleibt letzlich die Frage in wie weit man künftig auch mit Vega von Mesh-Shader Techniken profitieren kann, wie diese mit DX12-Ultimate und den künftigen Konsolen-Spielen eingeführt und entwickelt werden.
Rückblickend bleibt die Frage ob nicht Microsoft bei der Festlegung der Features für die neue Konsole in 2017 AMD dazu gebracht hat das Thema erst einmal ruhen zu lassen. Spannend bleibt ob auch die PlayStation 5 diese Mesh-Render Techniken unterstützen wird, während es offiziell erst mit RDNA2 und DX12 Ultimate eingeführt werden soll.
 
Zuletzt bearbeitet:
"Rückblickend bleibt die Frage ob nicht Microsoft bei der Festlegung der Features für die neue Konsole in 2017 AMD dazu gebracht hat das Thema erst einmal ruhen zu lassen."

Naja. Ich denke eher, dass die Implementierung in der VEGA Hardware (GFX9) einfach zu verbugt war.
Im Linux Treiber wurden jedenfalls (soweit ich mich erinnere) "next generation geometry" NGG Pfade erst für GFX10 (NAVI) angeschaltet/implementiert.

https://www.phoronix.com/forums/for...-radeonsi-navi-improvements-are-pending/page4
"Yet, if it's an API thing, why does an AMD representative say it's not coming for GFX9 but the next arch (NAVI)?

https://www.mail-archive.com/amd-gfx.../msg24458.html
"
 
Naja. Ich denke eher, dass die Implementierung in der VEGA Hardware (GFX9) einfach zu verbugt war.
Im Linux Treiber wurden jedenfalls (soweit ich mich erinnere) "next generation geometry" NGG Pfade erst für GFX10 (NAVI) angeschaltet/implementiert.
Super Input, danke. Das kannte ich nicht. Allerdings schweigt sich der AMD Vertreter gänzlich über die Gründe aus.
On Wed, 15 Aug 2018 at 08:36 Jin, Jian-Rong
<jian-rong....@amd.com<mailto:jian-rong....@amd.com>> wrote:
Hi Jakub?
Both KMD and LLPC are not ready to support NGG for gfx9. We are going to
support NGG in amdvlk for next generation GPU.

Thanks
Jian-Rong JIN
(ich übersetze LLPC=LLVM-Based Pipeline Compiler, KMD=Linux Kernel Mode Driver)
So bleibt es im Dunkeln warum man auf den Support verzichtet hat. Da lt. Diskussion Navi bzw. GFX10 das anbieten soll haben/werden wir in RDNA/.2 vielleicht nur Verbesserungen sehen.
Weil AMD ursprünglich für Windows das zum laufen bringen wollte würde ich höchstens vermuten, dass die Kurven um "bugs" grösser waren als der kurzfristige Nutzen. Oder aber das DirectX Team war der Meinung es war mit den HW-Einheiten zu kurz gesprungen und man hat sich auf eine noch flexiblere Variante geeinigt. Ich denke es ist nicht unüblich ein neues Hardwarefeature bei neuen Erkenntnissen erst in späteren Generationen im Markt frei zu geben.
Vielleicht können wir hier noch zusätzliche Infos sammeln...
 
Ja, das wäre sicher interessant zu erfahren, was da los war.
Ich habe es jedenfalls so in Erinnerung, das vor VEGA Start noch groß Werbung für für die tollen primitive shader gemacht wurde, und es dann immer leiser darum wurde.
Hätten die funktioniert wie erwartet (die sollten ja Performanz bringen), hätte das AMD sicher die Welt (die Aktionäre) wissen lassen...
 
Interessant zu lesen, wie's weitergeht mit den GPUs von AMD.

Die Leistung der neuen Xbox zwischen einer 2080 und 2080Ti klingt gut.

Gut Ding braucht Weil' ... *rose* ... dann eile mit Weile, AMD! ;D
 
Ich bin gespannt, wie viele Euros AMD für die entsprechende Grafikkarte haben will und befürchte, dass es nicht in mein Budget passt :-(
 
In einem Interview zur neuen Unreal Engine 5 Techdemo bestätigt einer der Entwickler - Brian Karis, Senior Graphics Programmer bei Epic - die Primitive Shader auf der PlayStation 5.
WCCFTech nennt diese "properly introduced by AMD with the RDNA 1.0 architecture"
Der Entwickler spricht dabei von hoch optimiertem Shadercode "hyper-optimised compute shaders specifically designed for the advantages we can exploit".

Gerade nochmal nachgesehen. Primitive Shader waren bei der RDNA Vorstellung und in der Doku nicht erwähnt. Es gibt eine Prim Unit, sah eher nach fixed function aus.
In der ISA Doku gibt es einen kurzen Hinweis auf einen Primitive Shader Export. Bei der Vega ISA Doku gab es noch ein Data Parallel Primitives als Vector ALU Format. Bei RNDA ISA wurde das umgebaut bzw. geteilt in DPP16 und DPP8.

In normal asynchronous compute, the asynchronous engines cannot completely halt the graphics pipeline. Navi can. The asynchronous engine can pause the rest of the card to prevent work from being scheduled while it finished its own computational tasks. (letzter Slide Architectural Deep Dive)
Frage mich gerade ob das bei Vega race conditions bei Prim Shader ausgelöst hatte...
 
Zuletzt bearbeitet:
Danke für die Infos.
Ich bin schon auf RDNA2 gespannt.
 
Ich hatte ganz vergessen, dass Mark Czerny bereits bei "Road to PS5" (ab 29:00) die Primitive Shader für die neue Playstation bestätigt hatte. "sythesize geometry on the fly"... "LoD, Procedural Details, Particle FX, other visual FX"
Er weist später auch deutlich auf den hohen Bandbreitenbedarf bei Raytracing hin weshalb während der IntersectionEngine Berechnung mit BVH die Shader für Logik frei wären bzw. für Berechnungen mit wenig VRAM Bedarf.

Bei ca 19:00 wird vom Cache Coherency Micro Management für die GPU/System Memory berichtet, ab ca 25:00 in dem Video wird erklärt, dass die Cache Scrubbers nur bei RDNA der PS5 enthalten sind. Die PS5 CUs haben 62% mehr Transistoren als die PS4 CUs.

Das könnte zu Schwierigkeiten bei PC-Portierungen führen, wenn diese automatismen nachgebaut werden müssen, zumindest aber zu erhöhtem Bedarf an CPU-Leistung das managen zu wollen.

footnote: 256bit native instructions, e.g. AVX2 nicht AVX512. Tempest Engine für Audio ist eine Art Radeon CU ohne Caches um PS3 SPDs Effizienz für SIMD Durchsatz für streaming Data zu erhalten, e.g. AudioCompute.
 
Zuletzt bearbeitet:
Das könnte zu Schwierigkeiten bei PC-Portierungen führen, wenn diese automatismen nachgebaut werden müssen, zumindest aber zu erhöhtem Bedarf an CPU-Leistung das managen zu wollen.
Das ist doch gerade der Punkt von Konsolen Hardware, dass das ganze mehr auf Spiele optimiert ist als der PC...

Aber am 4. um 22h (deutsche Zeit) werden wir mehr über die PS5 wissen...
Ich hoffe, dass die diese komische Audio Prozessoren auch für PS3 Emulation verwenden. Aber so wie EMEA die PS3 abgesägt hat, ist das eher unwahrscheinlich, leider...

--- Update ---

Nachtrag: Sony cucked out...
Die haben das PS5 Event, welches für den 4. angekündigt war, verschoben...
 
Zurück
Oben Unten