Zum 3DCenter Forum
Inhalt




Inside nVidia NV40

14. April 2004 / von aths / Seite 1 von 6


   Einleitung

Zeitsprung: Wir schreiben das Jahr 2002. Es ist fast schon Sommer, und nVidias GeForce4 Ti bekommt sehr gute Presse. Natürlich hat die Karte auch einige Schattenseiten (z. B. schlechte DVD-Qualität verglichen mit der Konkurrenz, schlechte anisotrope Performance in Verbindung mit bilinearer Filterung), doch die GF4 liefert beste Gesamt-Leistung, beste Leistung mit aktiviertem Antialiasing, sehr gute Textur-Qualität mit anisotroper Filterung, und exzellente Kompatibilität für Spieler. Zu dieser Zeit begann die Entwicklung vom NV40: Eine völlig neue Grafikkarten-Generation kostet nVidia 20 bis 22 Monate Entwicklungszeit (während ein Refresh-Chip in 8-9 Monaten fertiggestellt werden kann.)

Zurück ins Jetzt. nVidia schaffte es mit der FX-Reihe nicht, an den Erfolg der GF4 anzuknüpfen. Die 5800 kann man sicherlich als "Desaster" bezeichnen, und die Folge-Chips treffen auch nicht genau den Geschmack des "Enthusiast"-Marktsegments.

ATIs R300 traf nVidia schwer. Der Großteil unserer Leser hält ATI für den Spitzenreiter. Wir können nicht sagen, ob sich das heute mit dem Launch des NV40s ändert, aber wir haben Benchmarks, Screenshots, und viele Details anzubieten, um sich selbst eine eigene Meinung bilden zu können. Wir werden über Pixel- und Vertexshader 3.0 (Shader Model 3.0) reden, das neue Antialiasing und anisotrope Filtern, aber auch die Bandbreiten-Limitierung, und auf Dinge zu sprechen kommen, die vielleicht nicht erwartet wurden. Beginnen wir mit der Pipeline-Konfiguration.


26. Februar, München, nVidia Hauptquartier: Von David Kirk erfahren wir die ersten NV40-Details.


   16 - Sagt diese Zahl wirklich etwas aus?

In Kürze: Wir müssen aufhören, einfach "Pipelines" zu zählen. Was DirectX9-Pixelshader angeht, kann eine R300-Pipe ein bilineares Textursample filtern, und außerdem bis zu zwei arithmetische Instruktionen ausführen. Nutzen wir dafür Abkürzung: 1T+2M. (1 Textursample, 2x mathematische Befehle.) Eine NV35-Pipe kann zwei bilineare Textursamples, und bis zu drei arithmetische Instruktionen (in den meisten Fällen lediglich zwei Instruktionen) ausführen, was dann im besten Fall 2T+3M entspricht (normalerweise 2T+2M.) Wie man schon sieht, macht es nicht viel Sinn, einfach die Pipelines zusammenzuzählen ohne zu betrachten was die einzelne Pipeline kann.

Bevor wir uns den NV40-Pipes nähern, ein kleiner Überblick: Eine einzelne NV40-Pipe kann nur ein bilineares Sample erzeugen, aber bis zu vier arithmetische Instruktionen ausführen! Lt. unserer Bezeichnung wäre das: 1T+4M. Damit gibt es eine ziemliche Verlagerung vom Textursampling in Richtung arithmetische Power. Doch das ist sinnvoll: Während fast alle DirectX8-Pixelshader Füllraten-limitiert sind (angesicht der Einschränkungen in DX8-Hardware sind lange arithmetische Rechnungen dort sowieso unmöglich) liefert DirectX9-Hardware sowohl die Präzision als auch den Allzweck-Befehlssatz, um lange Shaderrechnungen zu ermöglichen. Der NV40 wurde für solche zukünftigen Spiele und Anwendungen entwickelt.

Tatsächlich sind ältere Spiele komplett Bandbreiten-limitiert beim NV40 (aka GeForce 6800 Ultra.) Um die Vorteile vom NV40 auszuspielen, muss man moderne Shader laufen lassen. Wir kommen auf die Belange mit der Bandbreite noch zurück.

Vor einiger Zeit behauptete nVidia, dass NV30 acht Pipelines hätte. Diese Zählweise resultiert aus einem geschickten Trick in den Raster-Operation Units (ROPs.) Seit NV30 kann eine einzelne ROP wie zwei arbeiten, sofern lediglich Z-Werte zu testen sind. Das verdoppelt natürlich nicht die tatsächlichen Pipelines. Aber es ist ein cleverer Weg, um die ROP-Power dort zu steigern wo sie am meisten benötigt wird: Eine solche verbesserte ROP ist nicht so gut wie zwei "normale", aber kann die Z-only Füllrate um Faktor 2 erhöhen. Das ist ziemlich praktisch für Titel wie das anstehende Doom3.


Luciano Alibrandi (Europe PR Products) und David Kirk (Chief Scientist).


   Was ist eine Pipe - und was nicht?

Ein Z-only-Wert hat keine Farbe (so ein Wert ist nicht schwarz, sondern farblos), so dass ein "Zixel" kein "Pixel" ist. Deshalb halten wir das alte 8-Pipe-Gerede betreffs des NV30 für FUD. Gemäß unserer Definition ist das, was keinen Pixel rendern kann, keine normale Pipeline. nVidias Bemühungen um eine Redefinition betreffs der Pipelinezahl waren nur dadurch motiviert, dass Radeon 9700 einfach mehr Pipelines hat.

Um es noch komplizierter zu machen, müssen wir feststellen, dass eine "gewöhnliche Pipe" keine echte Pipeline ist. Der NV30 zum Beispiel hat im Pixelteil genau eine einzige Pipeline. Diese eine Pipeline kann vier Pixel zugleich rendern. Im allgemeinen Gebrauch wird aber von vier Pipes gesprochen, wenn denn pro Takt vier Pixel gerendert werden können. Der Grund warum wir diese vier Pixel nicht außer Acht lassen dürfen (wobei sie in einem 2x2-Block angeordnet sind, was man dann "Quad" nennt) ist der Effizienzverlust an den Rändern von Dreiecken. Das gesamte Quad wird gerendert, auch wenn nur ein einziges Pixel vom Quad teil des Dreiecks ist.

Im Gegensatz zu hartnäckigen Gerüchten kommt der NV40 tatsächlich mit 16 vollen "normalen Pipes", das heißt es ist ein 4-er "Quad-Pipeline"-Design.

Um zusammenzufassen: Wir müssen wissen, wie viel der Chip leistet, nicht aus wie vielen "Pipes" er gemacht ist. Jetzt wird eine NV40-Pipe detailliert betrachtet, und im Anschluss diskutiert, wie diese Quad-Sache die tatsächliche Leistung beeinflusst (das ist ja, worauf es den meisten ankommt.)






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Weiter / Next

Shortcuts
nach oben