Nvidia GeForce 8800 GT (SLI): Das Geheimnis des G92 ist gelüftet
3/31Technik im Detail
Mit der Einführung der G80-Chiparchitektur im November 2006 ist Nvidia ohne Zweifel ein großer Wurf gelungen. Denn wirkliche Schwachstellen scheint die GPU nicht zu haben. Sie ist schnell, bietet moderne Features, eine gute Bildqualität, eine ansprechende Wiedergabe von HD-Videos und eine gute Skalierbarkeit, mit der die Kalifornier problemlos diverse Preissegmente bedienen können. So wundert es wohl kaum, dass Nvidia bei dem Refresh-Chip G92, der erstmals auf der GeForce 8800 GT eingesetzt wird, nur marginale Änderungen vorgenommen hat – eine Notwendigkeit dazu bestand schlicht und ergreifend nicht (und wäre für einen Refresh-Chip zudem auch arg ungewöhnlich).
Der G92 wird im modernen 65-nm-Verfahren bei TSMC gefertigt und beherbergt satte 754 Millionen Transistoren. Er ist demzufolge die komplexeste GPU, die jemals produziert worden ist. Umso erstaunlicher, dass der G92 nicht so viele Ausführungseinheiten wie der altgediente G80 besitzt. Auf dem G92 sind lediglich sieben und nicht acht dem G80 sehr ähnliche Shadercluster verbaut, weswegen die GPU auf insgesamt 112 Shadereinheiten zurückgreifen kann. Im Gegensatz zum R600 von ATi sind die ALUs auf dem G92 keine Vektorprozessoren im eigentlichen Sinne mehr, sondern voneinander unabhängige Skalareinheiten (1D), die pro Takt eine Komponente (entweder Rot, Grün, Blau oder den Alphawert) bearbeiten können.
Das Direct3D-10-Rechenwerk (Direct3D 10.1 wird nicht unterstützt) ist nach dem Unified-Shader-Prinzip aufgebaut, weshalb es keine getrennten Pixel-, Vertex- und Geometry-Einheiten mehr gibt. Stattdessen kann jede ALU alle Berechnungen ausführen. Jede Shadereinheit ist in der Lage, pro Takt eine MADD- (Multiply-ADD) sowie eine MUL-Operation (Multiplikation) durchzuführen. Während MADD durchgängig für das so genannte „General Shading“ benutzt werden kann (sprich für sämtliche anstehende Shaderoperationen), sieht dies bei MUL anders aus. MUL ist zusätzlich als Special Function Unit (SFU), Perspektivenkorrektur oder als Attributinterpolator tätig und kann nur selten für General Shading verwendet werden. Dementsprechend fällt die reale Shaderleistung (oft gemessen in GFLOPS) niedriger aus, als man anhand der nackten Zahlen (wenn man das MUL miteinbezieht) vermuten könnte.
Die 112 Shadereinheiten agieren auch auf dem G92 nicht in derselben Taktdomäne wie die restlichen Chipkomponenten. So haben die ALUs wie beim G80 eine eigene Taktdomäne spendiert bekommen, die mit einer extrem hohen Frequenz angesteuert wird. Bei der GeForce 8800 GT liegt diese bei 1512 MHz. Erreicht wird diese Takterhöhung von Nvidia, in dem man bei der Designphase die entsprechenden Transistoren quasi „per Hand“ optimiert und für einen solchen Taktbereich auslegt.
Modifiziert gegenüber dem G80 hat Nvidia die Textureinheiten beim G92, die nun identisch zu denen im G84 sowie im G86 sind. Beim G80 hatte Nvidia einen einfachen, aber effektiven Trick angewandt, um Transistoren sparen zu können. So verdoppelte man schlicht und ergreifend die Anzahl der Filter- im Gegensatz zu den Adressierungseinheiten, womit man eine extrem schnelle Texturfilterung möglich machte (entweder einen trilinear oder einen bilinear anisotrop gefilterten Pixel innerhalb eines Taktes). Beim G92 hat man weniger auf den Die-Platz geachtet und diesen Nachteil (der je nach Sichtweise ein Vorteil sein kann) ausgebessert. So kann der G92 nicht nur 56 Texel pro Takt filtern, sondern sie auch adressieren.
Unangetastet hat man dagegen den Aufbau der Raster Operation Processors (ROPs) gelassen. Einzig die Anzahl hat man auf dem G92 variiert. Während auf dem G80 sechs ROP-Partitionen mit jeweils vier ROPs verbaut sind, sind auf dem G92 nur noch vier (also insgesamt 16 ROPs) vorhanden. Eine dieser Partitionen kann insgesamt vier Pixel mit Farb- sowie Z-Werten (Tiefeninformationen) pro Takt fertigstellen. Wie ab der GeForce-FX-Serie gewohnt, bieten die GeForce-ROPs bei reinen Z-Berechnungen die Möglichkeit, die Rechenkraft um ein Vielfaches zu steigern. So lange einzig und allein Tiefeninformationen berechnet werden, können nicht 16, sondern 128 Samples pro Takt zur weiteren Nutzung bereitgestellt werden. Bei 4xMSAA bleiben noch 32 Samples pro Takt übrig. Die ROPs (sowie die TMUs) werden auf der GeForce 8800 GT mit 600 MHz angesteuert. Dies ist für die G92-Architektur durchaus als moderat zu bezeichnen, wie auch Nvidia zugibt. Genügend Spielraum bei den Taktraten nach oben scheint noch vorhanden.
Wer sich mit der G8x-Architektur auskennt, der weiß, dass durch die Deaktivierung einer ROP-Partition automatisch Einfluss auf den Memorycontroller genommen wird. Jede ROP-Partition ist direkt mit einem Framebuffer verbunden. Dieses Manko besteht auch beim G92 und ist ohne Zweifel sein mit Abstand größter Hemmschuh. Während beim G80 sechs 64 Bit breite Speicherkanäle existieren, sind es beim G92 – analog der Anzahl der ROPS – nur noch vier. Somit bietet der G92 dem Käufer ein lediglich 256 Bit breites Speicherinterface an, das in vier 64-Bit-Speicherkanäle aufgeteilt ist. Jeder Speicherkanal ist an zwei Speicherbausteine angeschlossen, die je nach Version des 3D-Beschleunigers (256-MB- oder 512-MB-Variante) 32 MB oder 64 MB groß sind.
Auf den ersten Blick nicht ersichtlich, hat Nvidia nach eigenen Angaben darüber hinaus einige interne Schaltungen im G92 optimiert. So soll der Scheduler (Zeitplaner) für die Shadereinheiten verbessert worden sein, was für eine effektivere Auslastung der ALUs sorgen soll. Darüber hinaus soll die Effizienz der GPU in Verbindung mit Anti-Aliasing sowie einer hohen Auflösung verbessert worden sein: Der Performanceverlust soll geringer ausfallen. Das SLI-Anti-Aliasing wurde zusätzlich optimiert, was in einer besseren Performance resultieren soll. Verzichten müssen die G92-Käufer weiterhin auf „Double Precision“ (64- anstatt 32-Bit-Genauigkeit), das bei GPGPU-Programmen eine wichtige Rolle spielt. Double Precision soll erst in der nächsten GPU-Generation nach dem aktuellen IEEE-754-Standard unterstützt werden.
Der separate „NVIO“ (Nvidia Input Output), der für die Bildschirmausgabe sowie die SLI-Steuerung auf einer G80-Karte zuständig ist, entfällt bei der GeForce 8800 GT und wandert wieder in die GPU selber. Diese wurde darüber hinaus um den von der GeForce 8600 und der GeForce 8400 bekannten „Video Processor 2“ erweitert, weswegen man den G92 als „PureVideo HD“-fähig bezeichnet. Somit kann die GPU der CPU die Mehrarbeit bei MPEG2- sowie H.264-HD-Filmen abnehmen, weswegen es selbst auf schwächeren CPUs kein Problem darstellt, einen HD-Film anzuschauen. VC-1 wird dagegen weiterhin nur teilweise beschleunigt, da laut Nvidia der Decodierungsprozess für einen Prozessor einfacher zu erledigen ist als der von H.264-Material. Dies trifft zwar durchaus zu, trotzdem wünschen wir uns in Zukunft eine volle VC-1-Beschleunigung. Denn derart anspruchslos für eine CPU sind entsprechende Filme wahrlich nicht.
Eine weitere nennenswerte Neuerung beim G92 ist die Kompatibilität zum PCIe-2.0-Standard. Bisherige Grafikkarten waren PCIe-1.1-kompatibel und konnten in jede Richtung mit je acht Gigabyte pro Sekunde mit dem PCIe-Bus kommunizieren. PCIe 2.0 (oder auch PCIe Gen2 genannt) verdoppelt nun die Bandbreite auf 16 GB pro Kanal – AGP 4x gegen AGP 8x lässt grüßen. Selbst Nvidia gibt jedoch an, dass Spiele und sogar 3-Way-SLI in naher Zukunft nur bedingt bis eher gar nicht von der höheren Bandbreite profitieren werden. Nvidia sieht PCIe 2.0 aber als einen großen Schritt bei GPGPU-Anwendungen (Cuda), die je nach Programmierung einen starken Geschwindigkeitsschub von PCIe 2.0 erfahren sollen. Entgegen diverser Gerüchte wurde beim neuen Standard der maximale Stromverbrauch pro PCIe-Slot nicht verändert. Dieser liegt bei einem PCIe-x16-Slot immer noch bei 75 Watt.
Zusammengefasst gibt Nvidia die neuen Features und Überarbeitungen als Grund für die höhere Transistorenanzahl des G92 gegenüber dem G80 an (754 Millionen zu 681 Millionen Transistoren). Namentlich die Verwendung vom VP2, die modifizierten Textureinheiten, PCIe Gen2 sowie die Integration des NVIO in die GPU. Doch überkompensieren diese Änderungen tatsächlich derart drastisch den theoretischen Rückgang der Transistorenanzahl durch Entnahme eines Shader-Clusters? Wir spekulieren an dieser Stelle einmal und behaupten, dass der G92 nicht nur sieben Shadercluster und vier ROP-Partitionen, sondern wie der G80 acht Shadercluster und sechs ROP-Partitionen besitzt. Denn uns kommt die Anzahl der Transistoren trotz der Verbesserungen des G92 zu hoch vor (NVIO sollte zum Beispiel nur eine kleine einstellige Millionenzahl kosten). Ob der G92 wirklich mehr Einheiten besitzt als die GeForce 8800 GT offenbart, wird aber nur die Zeit zeigen können.