GeForce GTX 280 im Test: Neues Nvidia-Flaggschiff lässt die Konkurrenz hinter sich
4/35Technik im Detail Part 2
Textureinheiten:
Die Textureinheiten auf dem GT200 bleiben ebenso wenig unangetastet, wobei man primär aber nur die Anzahl der Einheiten erhöht hat. Der alte G80 setzt insgesamt auf 64 Texture Mapping Units (TMU), die pro Takt 64 Pixel filtern und 32 Pixel adressieren können. Das 2:1-Verhältnis zwischen Filter- und Adressierungs-Einheiten hat den Vorteil, dass jede TMU pro Takt einen zwei-fachen bilinearen anisotrop gefilterten Pixel fertigstellen kann. Alternativ können 32 Acht-Bit-Integer- oder 32 16-Bit-Floating-Point Textur gefiltert werden. Auf dem G92 hat man das Verhältnis zwischen TAU und TFU dann wieder gleichgestellt, womit pro Takt 64 bilineare Acht-Bit-Integer oder 32 bilineare 16-Bit-FP-Texturen fertig gestellt werden können.
Der GT200 behält das Verhältnis des G92, baut die Textureinheiten aber auf 80 Stück aus, womit insgesamt 80 bilineare Pixel pro Takt adressiert sowie texturiert werden können (8 Bit Integer). Dementsprechend sind pro Takt 80 bilineare Texturen oder alternativ 40 bilineare FP16-Texturen möglich. Die Ankopplung der Textureinheiten an die Shadercluster hat Nvidia beim GT200 belassen. Somit existiert pro Shadercluster ein Texturcluster, der sich wiederum aus acht Textureinheiten zusammensetzt.
Nvidia hat darüber hinaus die Effizienz der TMUs erhöht, in dem man den Scheduler verbessert hat. So steigt die praktische Ausnutzung der theoretischen Leistung von 76,2 Prozent beim G92 auf 93,1 Prozent an.
Raster Operation Processor (ROP):
Auf dem GT200 hat man die sechs ROP-Partitions des G80 auf acht erweitert. Jede ROP-Partition besteht aus vier einzelnen ROPs, weswegen der GT200 dem Programmierer 32 ROPs zur Unterstützung bereit stellt. Die eigentlichen Fähigkeiten wie die Anti-Aliasing-Modi sind gleich geblieben. An dem Multi-Sampling-AA, Coverage-Sampling-AA sowie dem Transparency-AA hat sich auf dem GT200 also nichts getan. Blending-Operationen auf ein FP16- und FP32-Rendertarget sind weiterhin möglich, wobei durch die Bank auf jedes Format MSAA angewendet werden kann.
Eine dieser Partitionen kann insgesamt vier Pixel mir Farb- sowie Z-Werten (Tiefeninformationen für Sichtbarkeitsprüfungen) pro Takt fertigstellen. Wie ab der GeForce-FX-Serie gewohnt, beherrschen die GeForce-ROPs bei reinen Z-Berechnungen die Möglichkeit, die Rechenkraft um ein vielfaches zu steigern. So lange einzig Tiefeninformationen berechnet werden, können nicht 32, sondern 256 Samples pro Takt zur weiteren Nutzung bereit gestellt werden. Bei 4xMSAA bleiben noch 64 Samples pro Takt übrig, bei 8xMSAA dagegen 32 Samples.
Modifiziert hat man die ROPs auf dem GT200 beim „8-Bit unsigned Integer“-Format. Während der G80 in dem Fall pro Takt 24 Pixel pro Takt fertigstellen sowie Blending (wie zum Beispiel Alpha-Blending) auf 12 Pixel anwenden kann, hat man auf dem GT200 die Blending-Leistung verdoppelt, sodass nun pro Takt 32 Pixel ausgegeben und geblendet werden können.
Speicherinterface:
Das Speicherinterface war schon beim G80 an die ROP-Partitions angekoppelt, was sich auch beim GT200 nicht geändert hat. Da pro ROP-Partition in der G8x-Architektur ein 64 Bit breiter Speichercontroller angeschlossen ist, gibt es auf dem GT200 gleich acht 64-Bit-Controller, womit man auf ein Speicherinterface von 512 Bit kommt. Ein 64-Bit-Controller beherbergt zwei Speicherbausteine, womit insgesamt 16 Speicher-Module auf der GeForce GTX 280 nötig sind. Um auf einen Gigabyte großen VRAM zu kommen, muss jedes Modul eine Kapazität von 64 MB aufweisen.
Double Precision (DP):
Bei herkömmlichen Berechnungen reicht eine Rechenpräzision von 32-Bit eigentlich durchgängig aus, um zu dem gewünschten Ergebnis zu kommen. Anders sieht es dagegen bei GPGPU und GPU-Computing aus, wo es durchaus sein kann, dass für einige Aufgaben Single-Precision (32 Bit) nicht genügt und stattdessen mit Double Precision, also 64-Bit-Floating-Point, gerechnet werden muss.
Um das zu erreichen gibt es zwei Ansätze. Der einfache Ansatz ist, die ALUs „loopen“ zu lassen, also das man die 32-Bit-ALUs mehrmals an denselben Daten rechnen lässt, um Double Precision zu erreichen. Diese Methode kommt auf einer aktuellen ATi-GPU wie dem RV670 zum Einsatz, wobei der Chip dann vier Fünftel seiner Rechenleistung verliert. Anstatt 496 GFLOP/s erreicht eine Radeon HD 3870 bei Double Precision also nur noch etwas mehr als 99 GLFOP/s. Da bei GPGPU und GPU-Computing meistens jedoch mit Single-Precision und nur selten mit Double-Precision gerechnet werden muss, ist der Leistungsverlust zu verschmerzen. Zusätzlich ist es auf einer GPU möglich, im „Mixed Mode“ zu rechnen, also mit 32-Bit- und 64-Bit-Genauigkeit zur gleichen Zeit.
Den anderen und deutlich transistoraufwendigeren Weg geht Nvidia beim GT200. Die Kalifornier haben jeden Streaming Multiprocessor mit einer Double-Precision-MADD-Einheit ausgestattet. Der GT200 hat also 30 extra DP-MADD-ALUs, die nach der IEEE-754R-Spezifikation entwickelt worden sind. Die theoretische DP-Rechenleistung auf dem GT200 beträgt 90 GFLOP/s, womit man gar noch unter dem Wert eines RV670 liegt. Warum Nvidia deswegen kostenintensive DP-ALUs verbaut hat, ist uns unklar. Es ist aber gut möglich, dass die diskreten Einheiten zusätzliche Berechnungen innerhalb eines Taktes ausführen können, wofür die SP-ALUs auf dem RV670 noch weitere Loops benötigen.
Stromsparmechanismen:
Nvidia stattet den GT200 erstmals in der eigenen Firmengeschichte mit einem richtigen Stromsparmechanismus aus. Während der G8x sowie der G9x selbst unter Windows noch einen Großteil der Leistungsaufnahme benötigen, gibt es auf einem GT200 nun drei verschiedene „Strom-Modi“. Im Full-Performance-Mode stehen dem GT200 logischerweise sämtliche Kapazitäten zur Verfügung, weswegen die GeForce GTX 280 im schlimmsten Fall bis zu 236 Watt aus der Leitung zieht. Neu hinzugekommen ist ein „Blu-ray-DVD-Playback-Mode“, indem der GT200 nach eigenen Angaben nur noch 35 Watt benötigt. Im „Idle/2D-Modus“ soll die Leistungsaufnahme auf 25 Watt sinken.
Um das zu erreichen senkt der GT200 nicht nur massiv seine Taktraten sowie die Spannungen, darüber hinaus betreibt die GPU „Clock Gating“. Das bedeutet, dass der Rechenchip einzelne, nicht verwendete Blöcke abschalten kann, die somit keinen Strom mehr benötigen. Zwischen den verschiedenen Modi kann die GPU innerhalb von Sekundenbruchteile umschalten, weswegen es zu keinem Performanceverlust kommen soll. Überwacht wird die Aktivität der GPU von einem speziell dafür vorgesehenen „Auslastungsmonitor“, der je nach Bedarf den Modus wechseln kann.