Zum 3DCenter Forum
Inhalt




Ein erster Blick auf die G80-Technologie

28. Dezember 2006 / von aths / Seite 5 von 5


   Branching-Performance und Berechnungs-Genauigkeit

Während der G70 noch eine Batch-Länge von 220 Quads hat (wir vermuteten bislang 256 Quads, tatsächlich sind es 220) und ein Quad schließlich aus vier Pixeln besteht, kann auch nur pro 880-Pixel-Batch der PC (Program-Counter, Befehlszeiger) geändert werden. Entsprechend grob ist die Granularität beim Dynamic Branching. Dabei ist das gegenüber dem NV40 schon eine Verbesserung, beim NV40 teilten sich noch alle Quad-Pipes einen einzigen PC.

Der G80 bietet eine Granularität von 32 Pixeln. Das ist zwar schlechter im Vergleich zum R520 (16 Pixel) aber besser als beim R580 (48 Pixel). Außerdem entfällt bei Sprung-Befehlen der bisherige Zwei-Takt-Overhead aus NV40/G70-Zeiten (wobei jener Overhead bei den Radeons nie angefallen ist).

Wir vermuten, dass der G80 intern genauer rechnet als mit FP32. Denn Direct3D10 erfordert, dass auch Integer-Rechnungen ausgeführt werden können, konkret bis zu 32 Bit. Gleitkomma-Rechungen werden in den ALUs intern auf mehrere Integer-Rechnungen abgebildet, und so bietet es sich an, die Rechenwerke für die Gleitkomma-Mantisse auch für normale Ganzzahl-Berechungen anzuwenden.

FP32 arbeitet mit 24-Bit-Mantissen. Erweitert man die internen Werke auf eine 32-Bit-Mantisse, hieße das, intern effektiv mit FP40 zu rechnen. Der Nutzen wäre für den User allerdings gleich Null, da das Register-File unseres Wissens nach nur 32-Bit-Genauigkeit vorsieht. Es ist auch möglich, dass die Integer-ALUs aufgrund ihrer relativen Einfachzeit zusätzlich vorhanden sind und lediglich die Datenpfade mit den FP-ALUs teilen. Die genaue Realisierung hat für den Anwender keine Auswirkung.

Direct3D10 schreibt weitgehende IEEE-754-Kompatibilität vor. Dies betrifft die Rundungsregeln, schließt jedoch nicht die Denorm-Darstellung ein. Das heißt, dass sehr kleine Zahlen, die von der CPU noch (mit verringerter Genauigkeit) dargestellt werden können, von der GPU auf Null abgeschnitten werden. Für Grafik-Berechungen ist Denorm-Support ohne Belang. Die Integer-Rechnungen müssen außerdem auf allen GPUs dieselben Ergebnisse liefern, während bei Rechnungen in der Gleitkomma-Darstellung nur eine Mindestgenauigkeit spezifiziert wird.

Wer es etwas genauer wissen möchte: Mit Direct3D10 werden für FP16 noch Denorms verlangt, für FP32 nicht (nach unserer Definition bietet FP16 nur mit Denorm-Support schon hohe Dynamik und ermöglicht echtes HDR-Rendering). FP-Rechnungen müssen für Direct3D10 nur auf 1 ULP exakt sein (IEEE 754: 0,5 ULP), bei bei DIV und SQR reichen 2 ULP Genauigkeit. Die Sonderformen Inf und NaN müssen implementiert sein. Diese Anforderungen gelten nicht nur für ALUs, sondern auch für Filterung, Blending, Subpixel-Präzision und so weiter – was den Transistorcount in die Höhe treibt.


   Was ist mit der Physik?

Ageia hat mit ihrer PhysX-PPU die Frage der Physik-Beschleunigung in die Presse gebracht. Seither ertönen von allen Seiten vielstimmige Rufe: "Das können wir auch!". Nvidia weist immer wieder auf die Eignung ihrer GPUs zur Physik-Beschleunigung hin. Doch hier gilt es zuerst einmal, Marketing-Begrifflichkeiten zur Seite zu schieben.

AMD hatte mit "3DNow!" eine in die CPU integrierte 2xSIMD-Recheneinheit als 3D-Beschleuniger vermarktet, bei Intel trieb das Marketing noch weitere Blüten: Mit einer SIMD-Einheit namens ISSE sollte – so wurde suggeriert – das Internet beschleunigt werden. Sowohl Agias PPU als auch Nvidias G80-GPU lassen sich als Stream-Prozessoren verwenden. Was man damit genau macht, ist dem Chip egal. Er weiß weder von Physik noch von Grafik, er verrechnet einfach Daten.

Der G80 ermöglicht dank seiner Integer-Rechenwerke im Prinzip, dass man für ihn C-Code kompilieren kann. Mit der richtigen Schnittstelle könnte man den G80 als massiv parallele CPU nutzen. Hier sei die CUDA-Schnittstelle erwähnt – und natürlich wird Nvidia mit dieser Entwicklung nicht alleine bleiben, auch AMD/ATI ist schon ganz wild auf die Nutzbarmachung zukünftiger GPUs für Nicht-Grafik-Aufgaben. Man könnte einen 3D-Chip so unter anderem auch für Physik-Berechnungen einsetzen.

Der G80 lässt sich – insbesondere dank seines Geometry-Shaders – mit etwas Kreativität seitens des Entwicklers durchaus nutzen, um in die Grafikengine integrierte Effekt-Physik ("Physik-Effekte" als reiner Grafik-Effekt ohne spielrelevante Auswirkungen) zu beschleunigen. Einige einfachere Effekte ließen sich aber auch schon mit dem Vertex-Shader Version 1.1 der GeForce3 beschleunigen.

Die Hersteller bleiben hier gerne bewusst schwammig und drücken sich um konkrete Zahlen. Das ist kein Wunder, denn alles, was der GPU in Sachen Physik aufgeladen wird, zwackt man ja von der Grafikleistung ab. Was der Entwickler mit der zur Verfügung stehenden Leistung nun im Einzelnen macht, kann man kaum abschätzen – zumal die GeForce 8800 wahrscheinlich schon wieder Geschichte ist, bis sich durchgehende Spiel-Physik durchgesetzt hat (sofern es überhaupt dazu kommen wird).

Wer einen G80 kauft, kann keineswegs darauf vertrauen, dank ihm in Zukunft geniale Physik-Effekte zu sehen zu bekommen. Wir vermuten, dass Entwickler für Physik-Berechnungen in absehbarer Zukunft primär auf Multicore-CPUs setzen. Rein theoretisch wäre die G80-Architektur für diverse Nicht-Grafik-Aufgaben geeignet, darunter auch Physik. Der G80 bietet im Moment die beste Kombination aus Vielseitigkeit und Leistung – wir sind uns sicher, dass längst Wissenschaftler darüber sinnen, wie man diese enorme Leistung, die nur ein paar hundert Dollar kostet, möglichst gut für Nicht-Grafik-Zwecke nutzen kann.


   Fazit

AMD/ATI kündigt an ("Unified Shader Architecture"), Nvidia liefert für den PC-Bereich aus. Neben dem G80 wurden von Nvidia auch zwei neue Chipsätze der Nforce-680-er Generation vorgestellt, einer für die Intel-, einer für die AMD-Plattform. Wer das nötige Kleingeld hat, bekommt von Nvidia zum jetzigen Zeitpunkt die maximale Performance verbunden mit maximaler Bildqualität geboten.

Dass der G80 neue Performance-Höhen erreicht, war zu erwarten. Erstaunlicher sind zwei Fakten: Erstens liefert der G80 die Möglichkeiten für wirklich kompromisslose Bildqualität: 8x sparse Multisampling und beinahe winkel-perfekte 16x anisotrope Filterung. Solange Nvidia nicht auf die Idee kommt, wie in der Vergangenheit leider oft geschehen, mit undurchsichtigem Treiber-Verhalten die Texturqualität negativ zu beeinflussen, kann man die anisotrope Filterung vom G80 im HighQuality-Modus als "aths-approved" bezeichnen. Ja, so muss anisotrope Filterung aussehen. Wir hoffen, dass das World-of-Warcraft-Flimmern noch abgestellt wird und die fragwürdigen Unreal-Tournament-Zwangsoptimierungen verschwinden, am besten für die unteren GPU-Generationen gleich mit.

Rein von der Winkelabhängigkeit her ist das G80-AF nahe am Optimium. Aus gleichem Grunde fällt es schwer, hier den großen Applaus einzuspielen, denn durchweg gutes AF sollte seit Jahren längst Standard sein. Nvidia liefert hier den vernünftigsten bisher implementierten AF-Modus, ein Feature von dem jeder G80-Besitzer sofort und in allen Spielen profitiert. Leider wird im Verbund mit AF standardmäßig noch immer keine trilineare Filterung geboten. Dass dieses sinnvolle Uralt-Feature tatsächlich genutzt und nicht zu "brilinear" verhunzt wird, muss der Spieler unverständlicherweise explizit einschalten. Ganz gleich ob AMD (ATI) und Nvidia hier "Optimierungspotenzial" ausmachen: Wir erwarten echte trilineare Filterung auch beim AF und halten dies für eine Selbstverständlichkeit.

In Dingen Antialiasing war Nvidia lange Zeit nur Nachzügler, jetzt mit dem G80 können sie mit 8x sparse Multisampling ("8xQ" genannt) inklusive Transparenz Antialiasing die beste Katenglättungs-Qualität im Consumer-Bereich anbieten. Die CSAA-Modi (8x ohne Q, 16x und 16xQ) sind dagegen eher Spielerei.

Zweitens ist die Cleverness beeindruckend, wie Nvidia die Rechen- und Texturfilter-Effizienz gesteigert hat. Natürlich ist auch der G80-Chip noch nicht am Optimum, dieser holt auf einigen Feldern nur in die Bereiche auf, in welchen ATIs Radeon längst ist. Auf gewissen Feldern jedoch bietet er völlig neuartige, sinnvolle Ansätze, um die zur Verfügung stehenden Rechenwerke möglichst gut auszulasten und um eine irrsinnig hohe Texel-Leistung zu ermöglichen: Da hat sich jemand richtig Gedanken gemacht.

Die Standard-Kühllösung der Karte ist für die Highend-Leistung erstaunlich leise. Zwar ist der Autor dieses Artikels bei täglicher Arbeit dank seiner privat genutzten passiven Grafikkarte mehr Ruhe gewohnt, aber bei einem überwiegend für Spiele eingesetztem PC ist die Lautstärke des GeForce 8800-er Lüfters in Ordnung. Man benötigt bei der GeForce GTX am Netzteil zwei 6-polige Anschlüsse, bei der GeForce 8800 GTS immerhin noch einen 6-poligen Anschluss zur Stromversorgung.


   Ausblick

So gut der G80 (NV50) ist, sein Nachfolger (NV55) wird natürlich – neben einigen internen Verbesserungen – weitere Leistungssteigerungen bieten. Ob die Zusatzperformance nun über Breite und Takt, oder rein über den Takt realisiert werden wird, sei dahingestellt. Der größere Refresh (NV60) wird dann neben weiteren Performance-Steigerungen noch andere deutliche Verbesserungen liefern, auch im Feature-Set, wobei dessen direkter Nachfolger (NV65) wie immer kräftig an der Leistungsschraube drehen wird. Erst danach erwartet uns dann wieder eine komplett neue Architektur (NV70). Es gibt keinen endgültigen Chip. So beachtlich der G80 auch erscheinen mag – technisch ist er verdammt gut – muss man ihn trotzdem als den ersten Architektur-Versuch einstufen.

Zwar lässt der G80 überall erkennen, wie Nvidia aus Fehlern der Vergangenheit gelernt hat, doch natürlich machte der Lernprozess während der G80-Entwicklung nicht halt. Bislang gab es einen großen Performance-Sprung zum Vorgänger immer bei geraden Zehnern der Nvidia-Chipnummerierung: NV20 (jedenfalls bei hoher Bildqualität), NV40, – lassen wir uns vom NV60 ("G90") überraschen. Umso erstaunlicher ist, dass Nvidia es schaffte, diesmal gleichzeitig mit der Einführung einer neuen Architektur die Leistung dermaßen zu steigern.

Man kann auch klar erkennen, dass sich Nvidia einige Zusatzarbeit gemacht hat, um die G80-Architektur bei Bedarf nach oben skalieren zu können. Chips mit einem 448- oder 512-Bit-Interface wären ohne großes Redesign möglich. Featureseitig bietet der G80 natürlich alles, was Direct3D10 erfordert. Wir gehen davon aus, dass in Santa Clara längst daran gearbeitet wird, um beim Erscheinen von AMDs/ATIs R600-Chip eine neue, noch schnellere GeForce8-Karte wenigstens ankündigen zu können.

Wenden wir unseren Blick in die nähere Zukunft: Angesichts der extrem skalierbaren Architektur dürften wir in der nächsten Zeit mit einer undurchschaubaren Modellpalette für alle Marktbereiche auf Basis der G80-Technologie überschüttet werden. Dank der verbesserten Effizienz heißt das aber auch: Noch mehr "Bang for the Buck" als rein durch die Fortschritte der Chipfertigungstechnologie möglich wären. Von Ultra-Lowcost (mal sehen womit uns Nvidia hier überrascht) bis hin zu Ultra-Highend kann die G80-Technologie genutzt werden, Direct3D10-Feautures an den Mann zu bringen. Hervorragende Direct3D9-SM3-Performance ist damit automatisch eingebaut.

Im Moment ist für den G80-User erst einmal wichtig, dass am Treiber noch Feintuning vorgenommen wird. Der 97.02-Forceware ist erkennbar mit heißer Nadel gestrickt. Das neue Control-Panel empfinden wir als unbequemer, dies ist jedoch Geschmackssache – echte Neuerungen blieben bisher aus, so wünschten wir uns zum Beispiel:

  • dass "Digital Vibrance Control" nicht mehr mit "Digitale Schwingung" übersetzt wird ("Vibrance" wird hier in der Bedeutung von "Lebendigkeit" genutzt)
  • dass auf jedem 1280x1024-TFT ohne Probleme 1280x960 im 4:3-Modus genutzt werden kann (selbst mit PowerStrip ist uns das nicht geglückt!)
  • dass auch bei aktiviertem AF standardmäßig trilineare Filterung geboten wird und nicht nur "brilineare"
  • dass bei aktiviertem Antialiasing möglicherweise auftretende helle Pixelzeilen links und oben im Bild schwarzmaskiert werden können
  • dass Oversampling (Supersampling) vom User pro Achse unabhängig und in 0,5-er Schritten einstellbar gemacht wird

Danksagung

Wir hatten zum Test der Bildqualität das Testsample einer GeForce 8800 GTX aus dem Hause XFX, und verwendeten ein 550-Watt-Netzteil aus der Straight-Power-Serie von beQuiet. Beiden Herstellern sei hiermit ausdrücklich gedankt.

         

Ohne Rückfragemöglichkeit zu Nvidias Technikern wäre der Artikel oberflächlicher geblieben. Ihnen sei an dieser Stelle gedankt. Ohne ram wäre mein Einsteig in die 3D-Welt vermutlich sehr steinig gewesen. Ohne den CineFX-Artikel von Demirug, sowie seinen Ausführungen im Forum, wäre mein Verständnis von den Nvidia-Pipelines nicht auf dem heutigen Stand.

Danken möchte ich auch Xmas, der mir etliche Grundlagen und Details in der 3D-Welt allgemein geduldig erklärte. Ohne Xmas gäbe es auch nicht das AF-Testprogramm, welches die Winkelabhängigkeit visualisiert. Diesem Programm ist der bisher größte User-Einfluss auf die nun bei beiden Firmen verbesserte anisotrope Filterung zuzuschreiben. Eine Reihe an hier ungenannten registrierten und unregistrierten Leuten aus dem Forum gab Denkanstöße, die im Artikel aufgegriffen wurden. Last but not least geht mein Dank an die Probe-Leser für ihre Anregungen.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back 3DCenter-Artikel - Index Home

Shortcuts
nach oben