Nvidia erklärt GTX 970 Problem

Wie adressiert man 4 GB mit abgeschalteten Chip-Teilen?

Vor ein paar Tagen häuften sich die Berichte, dass die Speicherleistung der GeForce GTX 970 einbricht, wenn mehr als 3,5 der verbauten 4 GByte benötigt werden. Nvidia hatte das zunächst herunter gespielt. Interne Tests würden bei hohem RAM-Bedarf nur geringe Unterschiede zwischen GTX 970 und 980 zeigen. Gestern hat Nvidia die Lage nun genauer erläutert. Kurz: der Grafikchip arbeitet wie er soll, aber man habe “Mist gebaut” bei der ursprünglichen Erklärung der Technologie.

Anzeige

GeForce GTX 970 und 980 basieren auf dem gleichen Grafikchip, dem GM204, aber in unterschiedlichen Ausprägungen. Bei der GTX 970 sind drei der 16 Shader Multiprozessor (SM) Einheiten deaktiviert. Das wird üblicherweise so gemacht, um auch Chips noch verwenden zu können, wenn diese mit einigen nicht funktionierenden Teilen aus der Fertigung kommen.
Nach den ersten Berichten wurden Befürchtungen laut, dass die GTX 970 aufgrund abgeschalteter Chip-Teile bloß 3,5 ihrer 4 GByte Speicher adressieren könne, ob es ein Hardware-Fehler sei und die 970 irgendwie defekt ausgeliefert würde.
Nvidias “Senior Vice President of Hardware Engineering” Jonah Alben erklärte nun gestern gegenüber Tech Report, dass die GeForce GTX 970 “exakt so arbeitet wie sie entwickelt wurde”. Zu den 4 GByte dieser Grafikkarte meinte er weiter: “wir nutzen sie, wenn wir sie brauchen”.
Grundsätzlich sei diese ganze Geschichte in einem neuen Feature der Maxwell Architektur begründet, das es ermöglicht, die Chips auch bei teilweise abgeschalteten Chip-Teilen besser nutzen zu können als zuvor. Schaut man sich das Diagramm, das einen GTX-970-Chip vereinfacht darstellt, unten an, so erkennt man oben die Shader Multiprozessor Einheiten und unten die Speicherkonfiguration mit vier Speichereinheiten aus L2-Cache, Memory Controller und dem DRAM an sich. Alle sind an den Memory Crossbar angebunden, der die Kommunikation regelt. Im Diagramm sind drei SM sowie ein L2-Cache deaktiviert, beispielhaft für eine GTX 970, während eine GTX 980 über den kompletten Satz an Bauteilen verfügt.
Alben erklärt, dass man bei einem defekten L2-Cache in früheren Chip-Generation (vor Maxwell) einen der vier Speichereinheiten komplett habe abschalten müssen. Das führte z.B. zu einem Produkt wie der GeForce GTX 660 Ti, die über den gleichen Chip wie GTX 670 und 680 verfügt, aber deren Speicherschnittstelle nur 192 statt 256 bit breit ist, weil eben eine (64 bit verwaltende) Speichereinheit deaktiviert ist.
In Maxwell Chips kann eine Speichereinheit weiter verwendet werden, auch wenn der L2-Cache teilweise nicht nutzbar ist. Dann wird der defekte L2-Cache abgeschaltet und eine einzelne L2-Einheit ist dann für zwei Memory-Controller-Teile verantwortlich. So kann Nvidia die GTX 970 weiter mit einer 256 bit Speicherschnittstelle anbieten.
Sollten zwei L2-Einheiten defekt sein, verwendet Nvidia den GM204 als GTX970M für Notebooks. Das RAM-Interface ist dann auf 192 bit beschränkt, weil eine komplette Speichereinheit deaktiviert werden musste.
Allerdings hat die Konfiguration mit einem L2-Cache für zwei Memory-Controller-Teile Konsequenzen, die bislang so nicht bekannt waren. So sind sowohl Cache-Kapazität als auch ROP-Durchsatz geringer als angenommen bzw. anfangs von Nvidia kommuniziert. Der L2-Cache ist “nur” 1792 statt 2048 KByte groß und durch die Parallelisierung von ROP und L2-Cache liegt der ROP-Durchsatz bei 56 statt 64 Pixel pro Takt. Beides war in der ursprünglichen Dokumentation also falsch dargestellt.
Alben erklärt diesen Fehler damit, dass dem für die Dokumentation verantwortlichen Team nicht klar war, dass Maxwell die selektive Abschaltung von Teilen des L2-Cache erlaubt.
Welche Probleme können nun durch den nicht vollständig nutzbaren L2-Cache entstehen?
Zwar bleibt das RAM-Interface grundsätzlich 256 bit breit, aber das Diagramm von Nvidia zeigt auch, dass eine der acht Verbindungen von Memory-Crossbar zum L2-Cache durch das Abschalten einer L2-Einheit nicht funktionsfähig ist. Zwei Memory-Controller-Einheiten müssen sich hier eine L2-Verbindung zur Crossbar teilen. Sollte man also diese 512 MByte der letzten Memory-Controller-Einheit nutzen wollen, dürfte es bei Vollauslastung zu Leistungsengpässen kommen – dem Ursprung dieser ganzen Geschichte.
Die letzten 512 MByte sind also problemlos nutzbar, aber durch die eingeschränkte Anbindung an die SM kann die volle Performance nicht garantiert werden.
Dazu kommt das Problem, dass die Speichernutzung bei GTX 970 und 980 anders erfolgen muss. Beim Vollausbau der GTX 980 wird der Speicher sequentiell voll geschrieben: 1 KByte in den ersten DRAM, die nächsten 1 KByte in den nächsten DRAM etc. Sind alle acht DRAMs genutzt, beginnt der Chip wieder von vorne. So nutzt der GTX 980 alle acht Speicherkanäle.
Dieses Vorgehen würde bei der GeForce GTX 970 und einer abgeschalteten L2-Einheit zu Problemen bzw. frühzeitigen Leistungseinbussen führen. So hat Nvidia den Speicher der GTX 970 in zwei Teile gespalten: einen großen und schnellen 3,5-GByte-Teil und einen langsameren 512-MByte-Teil. Der Chip nutzt alle sieben Speicherkanäle für die 3,5 GByte wie eine GTX 980 ihre acht Kanäle für 4 GByte nutzt. Für sieben Achtel des Speichers erreicht die GTX 970 also praktisch ihre volle Speicherleistung, nur für ein Achtel eben nicht.
Ein weiterer Aspekt ist im besonders hohen Speicherbedarf zu finden. Benötigt der Grafikchip der GeForce GTX 980 mehr als 4 GByte, muss er den Systemspeicher verwenden, was selbst über PCI Express vergleichsweise langsam ist. Bei der GTX 970 liegt die Grenze bei 3,5 GByte. Wird mehr RAM gebraucht, werden zunächst die langsameren 512 MByte genutzt, bevor auf den Hauptspeicher zugegriffen wird.

Man kann nun argumentieren, dass Nvidia die GeForce GTX 970 besser als 3,5-GByte-Grafikkarte hätte anbieten sollen. Jonah Alben von Nvidia widerspricht und meint, die 512 MByte seien schließlich nützlich bzw. nutzbar und auch schneller angebunden als der Hauptspeicher über PCIe. Darüberhinaus sei Nvidia durch geschickte Treiberprogrammierung in der Lage, nicht so oft genutzte Daten in den letzten 512 MByte abzulegen, anstatt diese aus dem Hauptspeicher holen zu müssen.
Das lässt erwarten, dass Nvidias Entwickler künftig noch mehr Leistung aus der GTX 970 herausholen könnten.
Schlussendlich versprach Jonah Alben auch noch, dass Nvidia dieser Sache weiter nachgeht und eventuelle Leistungseinbrüche aufgrund der letzten 512 MByte untersuchen und durch Treiber-Updates für die GeForce GTX 970 beheben will.

Vereinfachtes Chip-Diagramm der GTX 970

Quelle: The Tech Report

Frank Schräer

Herausgeber, Chefredakteur und Webmaster

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert