20

Gerüchteküche: Ampere angeblich mit gleicher Anzahl an Shader-Clustern, aber intern verdoppelter Shader-Power

Ein viel beachtetes Gerücht zu (angeblichen) "Ampere"-Spezifikationen macht derzeit die Runde, welches original von Twitterer KittyCorgi sowie von MyDrivers (maschinelle Übersetzung ins Deutsche) kommt. Die grundsätzlichen Daten zwischen beiden Meldingen sind fast identisch – so das hier entweder eine gemeinsame Quelle vorliegt oder aber MyDrivers (mit ihrem etwas späteren Posting) einfach von KittyCorgi (ohne Quellennennung und unter Hinzudichtung der Grafikkarten-Namen) abgeschrieben haben. Allerdings wurden die damit verbreiten (angeblichen) Ampere-Spezifikationen auch sofort angezweifelt, weil sich hierbei gewisse Unstimmigkeiten ergeben: So wird der GA104-Chip mit 48 Shader-Clustern an einem 256 Bit GDDR6-Speicherinterface beschrieben, der GA103-Chip mit 60 Shader-Clustern an einem 320 Bit GDDR6-Speicherinterface. Einmal abgesehen davon, das der GA104-Chip somit exakt der Hardware-Konfiguration des aktuellen TU104-Chips entspricht (was für eine neue Chip-Generation auf neuer Fertigung wenig Sinn ergibt), irritiert vor allem der niedrige Abstand zwischen GA104 und GA103 – es sind gerade einmal +25% mehr Shader-Cluster samt einem +25% breiterem Speicherinterface.

Recheneinheiten Speicherinterface Speicher Grafikkarten
nVidia GA102 ? ? ? GeForce RTX 3080 Ti
nVidia GA103 60 Shader-Cluster (= 3840 Shader-Einheiten) 320 Bit GDDR6 10/20 GB GeForce RTX 3080
nVidia GA104 48 Shader-Cluster (= 3072 Shader-Einheiten) 256 Bit GDDR6 8/16 GB GeForce RTX 3070
laut den von KittyCorgi sowie MyDrivers verbreiteten Ampere-Gerüchten

Zwar hatte nVidia mit der Turing-Generation schon bewiesen, auch vergleichsweise nah aneinanderliegende Grafikchips aufzulegen (nur +33% mehr Shader-Cluster zwischen TU106 & TU104), allerdings sind nur +25% mehr Shader-Cluster dann vielleicht doch zu wenig, um das ganze sinnvoll hinzubekommen. Dabei gibt es durchaus Überlegungen, das die genannte GA103-Ausführung womöglich nicht den Vollausbau jenes Grafikchips darstellt – und wenn der GA103-Chip eigentlich mit mehr Shader-Clustern antritt, dann könnte man durchaus in einem Bereich kommen, wo sich das ganze lohnt. Das Haupt-Problem dieser angeblichen Ampere-Spezifikationen liegt allerdings weiterhin darin, das der GA104-Chip (angeblich) keinen nominellen Fortschritt gegenüber dem TU104-Chip bieten soll. Dies wäre eigentlich nur denkbar, wenn intern erhebliche Veränderungen an der Ampere-Architektur stattgefunden haben. An dieser Stelle kommt ein zweites, späteres Posting von KittyCorgi ins Spiel, welches exakt solche Veränderungen vorhersagt: Danach sollen die Shader-Cluster von Ampere die faktisch verdoppelte Anzahl an FP32-Rechenheinheiten tragen – sprich 128 Shader-Einheiten pro Shader-Cluster. Hinzu kommt eine Verdopplung der Performance der Tensor Cores – was interessanterweise schon früher per Gerücht derart genannt wurde.

New changes for Ampere client:
1. INT32 Unit remains unchanged because of issue port cannot be fully used anytime.
2. Double the FP32 Unit for shader proportion.
3. Now the performance of the new Tensor Core is doubled.
4. Enhanced L1 Data Cache for more comprehensive functions.

Quelle:  KittyCorgi am 18. Januar 2020

Aber sicherlich ist die Umstellung der Shader-Cluster hin auf 128 Shader-Einheiten pro Cluster der entscheidende Punkt – womit auch die vorherige Rechnung der Shader-Einheiten nicht mehr funktioniert: Der GA104-Chip hätte dann gleich 6144 Shader-Cluster – und nicht mehr 3072 wie beim aktuellen TU104-Chip. Das "Problem" der gleichen Anzahl an Recheneinheiten wäre damit gelöst – man hätte allerdings ein neues Problem dahingegend, das gleich 6144 Shader-Einheiten beim TU104-Chip als zu viel erscheint für einen Grafikchip, welcher bestenfalls den zweitbeste Gaming-Chip darstellt und damit bestenfalls der drittbeste Chip unter Einrechnung der HPC-Chips ist. Und wenn der TU104-Chip bereits 6144 Shader-Einheiten aufweisen soll, wie hoch sollte dann schließlich der GA102-Chip hinausgehen?! Wenn zudem tatsächlich noch ein GA103-Chip zusätzlich dazwischen existiert, kommen da schnell eher utopisch klingende Zahlen á 10'000 Shader-Cluster beim GA102-Chip heraus (vom typischerweise noch größeren GA100-Chip für das HPC-Segment gar nicht erst zu reden). Sicherlich ist dies vielleicht sogar möglich, wenn nVidia den Transistoren-Aufwand pro Shader-Einheit absenkt – was man über 128 Shader-Einheiten in einem Shader-Cluster (bei angenommen identischer Kontrolllogik) automatisch tun würde.

Nichtsdestotrotz erscheint uns die Grundaussage des ganzen Gerüchts als widersprüchlich zu allem, was nVidia so in letzter Zeit bezüglich der Optimierung der eigenen Grafikchip-Architekturen getan hat. Es ging hierbei über die Jahre hinweg eindeutig hinunter mit der Anzahl an Shader-Einheiten pro Shader-Cluster: Von 192 bei Kepler auf 128 bei Maxwell zu 64 beim GP100-Chip von Pascal (nicht bei den Gaming-Chips von Pascal) und später dann 64 bei Turing. Eine Erhöhung der Anzahl der Shader-Cluster bei Ampere wäre also absolut anti-zyklisch und ergibt einen erheblichen Erklärungsbedarf (nach dem Grund bzw. dem Vorteil dieser Änderung). Insofern hat das ganze Gerücht an dieser Stelle einen sehr erheblichen Haken: Die Verdopplung der Anzahl der Shader-Einheiten pro Shader-Cluster erscheint als schwer unwahrscheinlich – doch ohne diese Verdopplung funktioniert das ganze Gerücht kaum noch, wären die damit dargestellten Ampere-Grafikchips nicht (wesentlich) leistungsstärker als die aktuellen Turing-Grafikchips. Und selbst wenn es keine verdoppelte Einheiten-Anzahl gibt, sondern es sich "nur" um eine interne Verdopplung der Shader-Power handelt, gilt das gleiche: Jeder Trend der letzten Jahre lief dahingehend, die Shader-Cluster kleinteiliger in der Anzahl der Shader-Einheiten zu machen und dafür den Anteil der Kontrolllogik zu erhöhen – um somit letztlich die Auslastung der eigentlichen Recheneinheiten garantieren zu können.

Grafikchips SP/SM TMU/SP Aufbau der Shader-Cluster
Kepler GK104, GK106, GK107, GK208 192 1:12 192 Shader-Einheiten (FP32), 16 Textureneinheiten, 32 Load/Store-Einheiten, 32 SFUs, 8 FP64-Einheiten, 1x Kontrolllogik, 256 kByte Register File, 64 kByte Level1-Cache, 48 kByte Daten-Cache
Maxwell 2 GM200, GM204, GM206 128 1:16 128 Shader-Einheiten (FP32), 8 Textureneinheiten, 32 Load/Store-Einheiten, 32 SFUs, 4 FP64-Einheiten, 4x Kontrolllogik, 256 kByte Register File, 48 kByte Level1-Cache, 96 kByte Daten-Cache
Pascal GP102, GP104, GP106, GP107, GP108 128 1:16 128 Shader-Einheiten (FP32), 8 Textureneinheiten, 32 Load/Store-Einheiten, 32 SFUs, 4 FP64-Einheiten, 4x Kontrolllogik, 256 kByte Register File, 48 kByte Level1-Cache, 96 kByte Daten-Cache
Turing TU102, TU104, TU106 64 1:16 64 Shader-Einheiten (FP32), 4 Textureneinheiten (INT32), 16 Load/Store-Einheiten, 16 SFUs, 2 FP64-Einheiten, 64 Integer-Einheiten (INT32), 1 RT-Core, 8 Tensor-Cores, 4x Kontrolllogik, 256 kByte Register File, 96 kByte Level1- und Daten-Cache

Da die Ausführungen dieses Gerüchts diesem klaren Trend jedoch (deutlich) widersprechen, ergibt sich letztlich eine große Chance darauf, das dieses Gerücht nicht korrekt ist. Es besteht daneben natürlich weiterhin die (kleinere) Chance, das jenes Gerücht dennoch stimmt – und wir es derzeit einfach noch nicht richtig verstehen oder aber nicht verstehen können, wenn beispielsweise eine entscheidende Detail-Information noch fehlt. In der Geschichte der Grafikchips ist dabei letztlich alles schon vorgekommen: Gut klingende Gerüchte, die sich letztlich als klassischer "Fake" entpuppt haben – bis hin zu völlig unglaubwürdig klingenden Gerüchten, die am Ende (mit ein paar Abrundungen) dennoch Recht behalten sollten. Wegen des größeren medialen Echos zu diesem Gerücht ist selbiges dennoch erwähnenswert, konnte es nicht einfach nur beiläufig notiert werden. Das wirklich erste Gerücht zu Ampere-Spezfikationen ist es im übrigen in jedem Fall nicht: Ein solches gab es schon letzten Sommer, an dieser Stelle dann im letzten November eingehend ausgebreitet.