Vorwort
Heute ist Dienstag. Heute ist der 4. Mai. Heute stellt ATi die neue Chipgeneration mit kanadischem Design vor. Dazu passend gibt es einen neuen Imageträger für die X800-Serie. Wie schon Dawn, Dusk und kürzlich Nalu handelt es sich dabei um eine digital erzeugte Dame, die die Herzen der vornehmlich männlichen Kundschaft ein wenig Richtung ATi schlagen lassen soll.


Passend zum tiefen Rot, das das Firmenlogo von ATi ziert, heisst diese Dame „Ruby“ - passend aber auch zum heutigen Dienstag, denn wer kennt nicht den Hit der Rolling Stones „Ruby Tuesday“?
ZitatShe would never say where she came from
Yesterday don“t matter if it“s gone
While the sun is bright
Or in the darkest night
No one knows
She comes and goes
Goodbye, ruby tuesday
Who could hang a name on you?
When you change with every new day
[p]Still I“m gonna miss you...
[/p]Don“t question why she needs to be so free
She“ll tell you it“s the only way to be
She just can“t be chained
To a life where nothing“s gained
And nothing“s lost
At such a cost
There“s no time to lose, I heard her say
Catch your dreams before they slip away
Dying all the time
Lose your dreams
And you will lose your mind.
[p]Ain“t life unkind?
[/p][chorus]
Insbesondere der Refrain und die letzte Strophe klingen ein wenig so, als hätte man sich einen kleinen Seitenhieb in Richtung nVidia nicht verkneifen wollen, so viele Spekulationen, wie es im Vorfeld zur X800 gab. Es war die Rede von „extreme Pipelines“, lange Zeit waren auch wir überzeugt, das Spitzenmodell käme mit nur zwölf Pipelines und 500 MHz GPU-Takt. Alles heiße Luft! Satte sechzehn Rendering Pipelines zieren die „X800 XT“ zusammen mit einem Chiptakt von 520 MHz - soviel sei schonmal verraten.
Aber genug der Vorrede: Hier kommt die Radeon X800!



Chip und Karte
Da ist es nun offiziell und zu allererst müssen wir eine Fehleinschätzung unsererseits eingestehen. Hatten wir noch vor knapp zehn Tagen das in Taiwan aufgetauchte Bild der Radeon X800 [1] als unecht gewertet, werden wir heute eines besseren belehrt.



ATi hat es, wie wir schon als Möglichkeit einräumten, tatsächlich geschafft, sowohl die Radeon X800 Pro als auch die X800 XT durch die Umstellung des Herstellungsprozesses auf einen 0,13µ-lowK Prozess der Chipschmiede TSMC und durch die Verwendung von GDDR3-RAM, welches mit deutlich weniger Leistung auskommt, als DDR- oder gar DDR-II RAM, die Leistungsaufnahme des kompletten Boards nicht allzu stark ansteigen zu lassen. Die X800 Pro soll sogar weniger Strom verbrauchen, als die Radeon 9800 XT.
Hier haben wir die beiden Chips und Taktraten nochmal im direkten Vergleich. Der Übersicht halber auch nochmal direkt in unserer bekannten Tabelle und mit den entsprechenden Werten der GeForce.
| Radeon 9800 XT |
Radeon X800 Pro |
Radeon X800 XT |
GeForce FX 5950 Ultra |
GeForce 6800 Ultra |
|
|---|---|---|---|---|---|
| Chip | R360 | R420 | R420 | NV38 | NV40 |
| Transistoren | ca. 110M | 160M | 160M | ca. 135M | ca. 222M |
| Fertigung | 0,15µ | 0,13 µm lowK copper |
0,13 µm lowK copper |
0,13 µm | 0,13µ |
| Taktung (MHz) | 412 | 475 | 520 | 475 | 400 |
| Renderpipes | 8 | 12 | 16 | 4(8)* | 16(32)* |
| Pixelfüllrate | 3296MPix/s | 5700MPix/s | 8320MPix/s | 1900 | 6400MPix/s |
| TMUs je Pipe | 1 | 1 | 1 | 2 | 1 |
| Texelfüllrate | 3296MTex/s | 5700MTex/s | 8320MTex/s | 3800MTex/s | 6400MTex/s |
| Vertexeinheit | DX9 VS2.0 | DX9 VS 2.0 | DX9 VS 2.0 | DX9 VS2.0+ | DX9 VS3.0 |
| Vertexpipes | 4 | 6 | 6 | 3 (Array) | 6 |
| Dreiecksdurchsatz | ca. 412MV/s | ca. 712MV/s | ca. 780MV/s | ca. 356MV/s | ca. 600MV/s |
| Texturen pro Pass | 8 (16) | 8 (16) | 8 (16) | 8 (16) | 8 (16) |
| Pixelshader | PS2.0 | PS 2.0+ | PS 2.0+ | PS2.0+ | PS 3.0 |
| FP-Einheiten | 3+1 ALU 3+1 Mini ALU 1TexOp |
3+1 ALU 3+1 Mini ALU 1TexOp |
3+1 ALU 3+1 Mini ALU 1TexOp |
2 (Shadercore + FPU) | 2 (Shader-Unit 1 & 2)** |
| Speicher (MB) | 256 DDR | 256 GDDR3 | 256 GDDR3 | 256 DDR | 256+ GDDR3 |
| Anbindung | 256-bit DDR | 256-bit GDDR3 | 256Bit GDDR3 | 256-bit DDR | 256-bit GDDR3 |
| Speichertakt (MHz) | 365 | 450 | 560 | 475 | 550 |
| Bandbreite (MB/s) | 23360 | 28800 | 35840 | 30400 | 35200 |
| SinglePass Texturop. | 16 D3D / 8 (oGL) | 16 (D3D) / 8 (oGL) | 16 (D3D) / 8 (oGL) | 16 (D3D) / 4 (oGL) | 16 (D3D) / 4 (oGL) |
| RAMDAC | 2x400MHz | 2x400MHz | 2x400MHz | 2x400MHz | 2x400MHz |
| TV-Encoder | integriert | integriert | integriert | integriert | integriert |
| Sonstiges | DVD MC/iDCT | DVD MC/iDCT, MPEG2 En- / Decoder, MPEG4 En- / Decoder |
DVD MC/iDCT, MPEG2 En- / Decoder, MPEG4 En- / Decoder |
DVD MC/iDCT | DVD MC/iDCT, MPEG2 En- / Decoder, MPEG4 En- / Decoder |
| Präz. pro Kanal | 24Bit (FP24) | 24Bit (FP24) | 24Bit (FP24 | 32Bit (FP32) | 32Bit (FP32) |
| * nVidias High-End GPU unterstützen seit dem NV30 ein Verfahren, bei dem in den ROPs am Ende der Pipeline jeweils zwei, anstatt der üblichen einen Z-/Stencilwerte verarbeitet werden können. Solange Pixel also ohne Farbwert auskommen und auch nicht texturiert sind (Stencilschatten und reine Z-Writes) bekommt man zwei Pixel pro Takt durch eine physikalische Pixelpipeline. | |||||
| ** Wenn die vorliegenden Informationen korrekt sind, besitzt der NV40 zwei FP-Einheiten in jeder seiner 16 Pipelines. Allerdings scheint es ebenso vielfältige Möglichkeiten wie Einschränkungen zu geben, um diese gemeinsam zu nutzen. Nur die wenigsten der komplexeren Shader-Instruktionen können auf beiden wirklich parallel und ohne irgendwelche Abhängigkeiten laufen. Für detailliertere Informationen zur CineFX-Architektur der GeForceFX bietet 3DCenter.de einen passenden Artikel [2] an. | |||||
Kommen wir nun zum Chip an sich und dessen Interna. Auch beim R420, das sei vorab schonmal gesagt, verläßt sich ATi zum größten Teil noch auf die mittlerweile fast zwei Jahre alte Architektur der Radeon 9700 Pro. Natürlich wurde alles schneller, weiter und höher (bis auf den Kühler).
Die Architektur
Architektur
Wie schon gesagt, besteht die Rendering-Einheit des X800 XT aus 16 Pixelpipelines, die von sechs Vertexeinheiten mit verarbeiteter Geometrie gefüttert werden. Die X800 Pro muss hier mit zwölf Pixelpipes vorlieb nehmen, bekommt aber ebenfalls sechs Vertexeinheiten.
Dass hier nicht auch eingespart wurde, erklärte Rene Froelecke von ATi damit, dass die Vertexeinheiten wesentlich weniger fehleranfällig seien als die Pixelshader, so dass hier nicht noch einmal separat selektiert würde.
Vertexshader


Die Vertexshader wurden gegenüber dem R360 und damit dem R300-Chip, der das Herz der Radeon 9700 Pro darstellt, kaum verändert. Nach wie vor beherrscht jede Pipeline eine Vector4 und eine Skalar-Operation simultan. Das einzig neue scheint die Abarbeitung der Sincos-Instruktion in nur einem Takt zu sein. Dies verschlang vormals bis zu acht Takte, lieferte aber immer auch Sinus und Cosinus zurück. Die Sincos-Funktion liefert als Resultat in einem Takt nur entweder den Sinus oder den Cosinus. Im direkten Vergleich braucht man für dieselbe Arbeit also zwei Takte und ist somit immer noch bis zu vier Mal schneller in diesem Spezialfall.
Die Verdoppelung des Dreiecksdurchsatzes erreicht man teils durch die zwei zusätzlichen Vertexpipelines gegenüber dem R360 auf der Radeon 9800 XT und zum anderen Teil rein durch den höheren Takt.
Pixelshader






Das komplette Design des Chips ist von den Pixeleinheiten her modular ausgelegt, so dass theoretisch auch eine X800 mit nur vier aktiven Pixelpipelines vorstellbar wäre - einem Teil dieser Modularität verdankt die Radeon X800 Pro ihre Existenz, denn bei ihr wurde eines der vier „Quads“ bereits deaktiviert.
Gehen wir die Bilder von links nach rechts durch, so ist zu bemerken, dass viele Dinge bereits im R360- und R300-Chip vorhanden waren. Die vormals 12 und nun 32 „Temporary-Registers“ sind eine Sache, so stehen jetzt für jede Pipeline quasi zwei Temporäre Register zur Verfügung.
Die erhöhte Instruktionsanzahl ist ein wenig Augenwischerei, denn hier werden schlicht die Instruktionen, die die einzelnen Einheiten im Pixelshader separat ausführen können, zusammengezählt. Diese Trennung ist aber so eigentlich nicht vorgesehen, da eine Instruktion eine beliebige Ausführungseinheit ansprechen können muss. Ausserdem sind Vector- und Skalar-ALU Nummer eins und zwei nicht gleichberechtigt, bzw. befähigt. Wer sich die Relationen einmal genauer anschaut, wird erkennen, daß auch die Größen im Bild ein wenig unterschiedlich sind. Hier hat man einfach die vormaligen „Mini-ALUs“, welche schon im R300 vorhanden war, zu vollwertigen ALUs befördert - nichts anderes tat nVidia im NV40.
Den F-Buffer gibt es nun schon zum zweiten Mal als neues Feature, diesesmal sogar in Hardware. Er wird weiterhin eher ein Feature für Developer und Offline-Renderer bleiben, da die meisten Shader in aktuellen Spielen nicht einmal am Instruktionslimit von 96 der DirectX9 Spezifikation kratzen. Der Vorteil hier ist allerdings, daß der F-Buffer nun dynamisch seinen Speicher selbst allozieren kann und ihn nicht mehr im Vorfeld manuell zugeteilt bekommen muss.
Auf das letzte Feature, im rechten Bild zu sehen, namens „3dc“, gehen wir in einem separaten Abschnitt noch ein.
HyperZ HD
Im Unterschied zu den teildeaktivierten R300-Chips, die als Radeon 9500 verkauft wurden, wird in der X800--Reihe das HyperZ-Feature vollständig funktional bleiben, wenn Quads deaktiviert werden. Außerdem wurde der Buffer vergrößert, so dass nun auch Auflösungen größer als 1600x1200 von HyperZ profitieren können, so z.B. die größere der beiden HDTV-Auflösungen „1080i“.
ATi behauptet, durch ihren Z-/Stencilcache und weitere Optimierungen, bis zu 32 Z-Werte pro Takt testen zu können und damit quasi auch die Möglichkeit zu haben, einen 32x0-Modus zu aktivieren, ähnlich wie nVidia. Wir glauben jedoch, dass man hier schlicht Two-Side Stencil mit 16 Pixeln ausmultipliziert hat, womit man zwar auf 32 Z-/Stencil-Werte pro Takt käme, die aber nur auf 16 Werte im 3D-Raum eingeschränkt wären.
Speichercontroller
Auch die X800-Reihe wird, wie nahezu alle aktuellen Chips, über einen Cross-Bar-Speichercontroller verfügen. Dieser ist dafür zuständig, die einzelnen Read/Write-Requests der entsprechenden Ports möglichst effizient auf die vier 128 logische Bit breiten Kanäle zu verteilen.
Wenn nun aber eines oder zwei der Quads deaktiviert werden, gibt es ein Problem, wenn dieser Controller rigoros auf die Anforderungen von vier Quads zugeschnitten ist. Bei der X800-Reihe ist der Controller über den Treiber programmierbar, so dass auch die X800 Pro und eventuelle weitere Derivate optimal ausgelastet werden können.
FSAA und 3Dc
Smoothvision HD


Auf den ersten Blick: „Nichts Neues im Staate Dänemark“. Weiterhin wird Multisample-Anti Aliasing mit bis zu sechs Samples angeboten, die auf einem 6x6-Raster nahezu optimal verteilt werden. Eine Gamma-Korrektur für Ausgabegeräte mit einem Gamma-Wert von 2,2 und Color-Compression mit bis zu 6:1 Verdichtungsfaktor tun ihr Übriges - seit der Radeon 9700 Pro.
Neu ist allerdings das so genannte Temporal Anti-Aliasing. Dabei macht sich ATi die Programmierbarkeit des Abtastrasters der R300 und höher zunutze. Es werden pro gerenderten Frame alternierende, also hin- und herwechselnde Abtastmuster genutzt, die durch Trägheit des Auges und Nachleuchtzeit des Ausgabegerätes den Effekt erreichen sollen, die wahrgenommene Kantenglättung zu erhöhen.
Wie man hier unschwer erkennen kann, sind die jeweiligen Subpixelmasken für ein einzelnes Bild mit Ausnahme des 2xTAA überaus suboptimal. Wenn man sich aber das zusammengesetzte Bild anschaut, so hat man quasi ein effektiv doppelt so gut geglättetes Bild, wie mit der Ausgangsstufe des FSAA.
Das Problem an der Sache ist, dass man dafür eine möglichst hohe Bildwiederholrate braucht, damit die Kantenpixel nicht hin- und herspringen. Das passiert, individuell unterschiedlich zwischen ca. 40 und 60 Bildern pro Sekunde, wenn entweder Nachleuchtzeit des Monitors oder Trägheit des Auges nicht mehr langsam genug sind, um überlistet zu werden.
Weitere Details zum FSAA gab uns Rene Froelecke von ATi in einem Telefongespräch.
Der Registry-Hack, um Temporal-AA auch auf älteren Radeon-Karten zu aktivieren, sorgte schon für einigen Wirbel unter begeisterten und weniger begeisterten Usern. Momentan prüfe man noch, ob für dieses Feature bei den älteren Chips „genügend Leistungsreserven“ vorhanden seien. Unserer Meinung nach sollte man das von Fall zu Fall und User zu User selbst entscheiden lassen und den Schalter dafür einfach in die Treiber integrieren.
Ein weiteres Thema war Centroid-Sampling, welches in Bezug auf Half-Life2 schon für Wirbel sorgte und jetzt im neuen Compiler-Target 2.b, welches die zusätzlichen Möglichkeiten des R420 zugänglich macht, offiziell unterstützt werden wird. Für Freunde des Supersampling-FSAA wird es aber weiterhin mau aussehen. Obwohl für ältere Spiele durchaus genügend Rohpower vorhanden wäre, will man angesichts unzureichender Userwünsche über das Catalyst-Feedback Programm, vorerst keine Ressourcen auf diese FSAA-Methode, die auch die immer noch oft verwendeten Alpha-Test Texturen glättet, verwenden.
3Dc
Ein recht unscheinbares Kürzel, hinter dem sich nicht die deutsche Webseite 3D-Center verbirgt, sondern eine neuentwickelte Art der Normal-Map Kompression.



Normal Maps sind im Grunde genommen Texturen und werden, vereinfacht gesagt, dazu eingesetzt, um Objekte mit wenigen Polygonen unter Beleuchtung ähnlich detailiert erscheinen zu lassen, als wären sie aus einem Vielfachen der Dreiecke zusammengesetzt. Hierfür werden Vektoren in der Normal Map gespeichert, die die Richtung angeben, in die eine Oberfläche, auf die später Normal Mapping angewandt werden soll, zeigt. Herkömmliche Kompressionsverfahren, wie DXTC sind hierfür nur wenig geeignet, aufgrund der Art des Verlustes an Bildinformation. Sie wurden schlicht dazu entworfen, Farb-Texturen bei akzeptablem Qualitätsverlust zu schrumpfen.
3dc hingegen ist ein von ATi enwickeltes Open-Source Verfahren, welches speziell für diese Zwei-Komponenten Vektoren zugeschnitten wurde. Mit einem Schrumpfungsfaktor von 4:1 hat man bei 3dc die Optionen entweder viermal so hoch aufgelöste Normal Maps zu verwenden oder den Speicherverbrauch auf ein Viertel der ursprünglichen Größe zu reduzieren.


Auf diesem Bild und dem zugehörigen Detail-Shot kann man die theoretisch möglichen Verbesserungen durch 3dc erkennen. Die feinen Strukturen im Nacken und auf der Rüstung des Kämpfers aus der Serious Sam 2 Demo sind deutlich detailierter aufgelöst.
Der Nachteil an dieser Lösung ist allerdings, dass sowohl der Game-Developer dieses Feature explizit unterstützen muss, indem ein Satz komprimierter Normal Maps dem Spiel beiliegt und dass für die Normal-Map Berechnungen via 3dc zusätzlicher Aufwand für die Pixelshader entsteht.
ATi kooperiert bereits mit einigen Herstellern zur Integration dieses Features. Wie nicht anders zu erwarten, ist Valve an vorderster Front dabei, aber auch CroTeam, Firaxis und Ritual Entertainment stehen mit auf der Liste.
Videoshader und Kommentar
Videoshader HD
Wenn man schon 16 Pipelines mit Pixelshader-Funktionalität mit sich herumschleppt, müssen die ja auch noch zu etwas anderem gut sein, schoss es uns direkt durch den Kopf. Falsch lagen wir damit zwar nicht, aber so ganz komplett war unsere Idee auch nicht.
Auf Nachfrage gab ATi an, schon seit der Radeon 9700 Pro ausschließlich Pixelshadereinheiten für jegliche Video-Beschleunigung heranzuziehen. So habe man keinerlei spezialisierte Hardware im Chip, die sich mit Motion Compensation, inverse Discrete Cosinus Transformation, adaptivem De-Interlacing oder Videokodierung beschäftige - alles sei über die Pixelshader gelöst.
Ein sinnvoller Ansatz, wenn diese denn mächtig genug sind, die Aufgaben auszuführen, aber diesbezüglich muss man bei der X800 Serie wohl keine Sorgen haben und zugleich eine der Erklärungen für die relativ geringe Komplexität des mit 160 Millionen Transistoren bestückten Chips.
Neben den schon bekannten Kodierfeatures für DivX und Real-Media wird man bei der X800 aber einen Schritt weitergehen und auch hardwaregestütztes Encoding für Windows Media 9 anbieten.
Dazu gesellt sich noch die dieser Tage besonders in den USA angesagte HDTV-Unterstützung, bei der die X800 gegenüber der 9800XT nochmals knapp 10% an Leistung zulegen konnte.
Fazit
Nach dem mächtigen Paukenschlag, den nVidia mit der GeForce 6800 Ultra landen konnte, sahen viele ATi schon in argen Nöten. Zu Unrecht!
Dank fortschrittlicher Prozesstechnologie und dem Einsatz von low-K Dieelektrika bei TSMCs Fertigung kann, ersten Benchmarks zufolge, die des Nachts durch unser Forum [3] geistertender schlankere Chip die Nachteile, die er aufgrund seiner nunmehr zwei Jahre alten, grundlegenen Architektur hat, durch hohe MHz-Zahlen wettmachen.
Erstaunlich dabei bleibt die Leistungsaufnahme, die deutlich unterhalb der GeForce 6800 Ultra in etwa auf dem Niveau des Vorgängers 9800 XT gehalten werden konnte.
Dadurch bedingt kann ATi ihrer bisherigen Linie treu bleiben und auch im High-End Bereich weiterhin Single-Slot Kühlung und moderate Leistungsaufnahme anbieten. Inwieweit diese Angaben jedoch in der Praxis umsetzbar sind, ob man beispielsweise den ersten PCI-Slot auch wirklich nutzen kann oder ob er nur nominell frei bleibt, werden hoffentlich bald die ersten Tests zeigen.
Einen schönen „Ruby Tuesday“ noch - für ATi ist er mit Sicherheit gelungen!
Nachtrag:
Preise
ATi gibt offizielle Preisvorstellungen von 399 US-Dollar für die X800 Pro und 499 US-Dollar für die X800 XT an. Darin sind noch keine Steuern enthalten und auch nicht der übliche Europa-Zuschlag, der auf dieser Seite des Atlantiks für jede Hardware gezahlt zu werden scheint.
Damit liegt man preislich gesehen nicht gerade am günstigeren Ende, wenn man sich für ATi und gegen nVidia entscheidet, wenn Karten letzterer Firma sind in der Ultra-Version bereits um 530 Euro gelistet, wenn auch noch nicht verfügbar.






