ATI Radeon 5870: DirectX 11, Eyefinity und jede Menge Power

Damit die neue GPU-Generation ihre fünf Designziele erreichen konnte, musste ATI die zugrunde liegende Architektur grundlegend anpassen. Die meisten Veränderungen gehen auf die HD-4800er-Familie und sogar teilweise auf die 3800er-Reihe zurück.

Bevor wir zu den Shader-Fähigkeiten der GPU kommen, sollten wir einen Blick auf die Grafik-Engine werfen, die die sechste Generation von ATIs Tesselation Engine beinhaltet. Schon in der Vergangenheit hat die Firma Tesselation beworben. Doch wie so oft, wenn eine Funktion nur von einem Hersteller angeboten wird, kam dieses Feature nur in sehr wenigen Spielen zum Einsatz. Nun ist es aber ein Teil DirectX-11-Pipeline und steckt zwischen den Hull- und den Domain-Shadern. Der Tesselator ist eine Fixed-Function-Ausführungseinheit die, je nach eingesetzter Tesselation-Technik, entweder genutzt wird oder inaktiv bleibt.

Wie auf der vorigen Seite schon angemerkt, hat sich der Aufbau von ATIs Stream-Cores nicht verändert. Sie arbeiten in dieser Generation allerdings effizienter. Wir wissen, dass ATIs VLIW-Architektur einen effizienten Compiler benötigt, um die bestmögliche Performance zu erreichen. Ansonsten liegen einige der ALUs brach. Beim RV770 musste jeder der fünf Befehle in einem VLIW-Paket von den anderen unabhängig sein. Die Cypress-Architektur kann nun eine Multiplikation plus Addition (MAD) ausführen, die vom Ergebnis der vorherigen Operation im selben Taktschritt abhängt. Das kann beispielsweise so aussehen:

a=b*c;
d=a+x;

Beim RV770 hätten sich diese Operationen nicht dasselbe Befehlspaket teilen können. Beim Cypress geht das jedoch, weil die beiden Operationen in einer MAD-Operation zusammengefasst werden während das Ergebnis der dazwischenliegenden Multiplikation erhalten bleibt. Der RV770 verfügte auch nur über einen DP4-Befehl (ein Skalarprodukt aus vier Komponenten), während DP2- und DP3-Befehle über DP4 implementiert wurden. Die Konsequenz dieses Designs war, dass bestimmte Slots eines Befehlspakets auf unnötige Operationen verschwendet wurden. Laut ATI werden Skalarprodukte nun flexibler gehandhabt, doch wird diese Aussage aber nicht genauer erklärt. Wir nehmen an, dass die Ingenieure die DP2- und DP3-Befehle jetzt nativ umgesetzt haben um damit zu ermöglichen, dass andere Berechnungen parallel ausgeführt werden.

Auch die Handhabung von Integer-Operationen hat sich geändert. Bislang konnte jeder der vier Stream-Cores pro Takt eine Addition oder eine Bit-Shift-Operation auf eine 32-bittige Ganzzahl anwenden, während der Special-Function-Core entweder eine Multiplikation oder einen Bit-Shift ausführen konnte (ebenfalls auf eine 32-bittige Ganzzahl). Jetzt können die vier Kerne eine Multiplikation oder eine Addition pro Takt ausführen, aber nur auf 24-bittige Ganzzahlen. Diese Entscheidung war ein Kompromiss, denn AMD musste einen Mittelweg finden, um die Gesamtleistung zu verbessern ohne dafür zu viele Ressourcen aufgeben zu müssen. Letzteres wäre eingetreten, hätte man jeden der Stream-Cores mit einem eigenen vollständigen 32-bit-Integer-Multiplier ausgestattet. Indem sie sich auf 24-Bit-Operationen beschränkten, wurde es den Ingenieuren möglich, bestimmte Ressourcen auch für Fließkomma-Berechnungen in einfacher Genauigkeit zu verwenden und gleichzeitig die Auslastung der Shader zu maximieren.

Zusätzlich zu diesen Optimierungen hat ATIs Design Team zwei neue Befehle eingeführt. Die erste nennt sich Fused Multiply-Add (FMAD). Sie erhält über die gesamte Dauer der Berechnung die Genauigkeit bei und führt erst am Ende eine einzige Rundung durch. Im Gegensatz dazu rundet der konventionelle Multiply-Add-Befehl (MAD) zwei Mal. Der zweite neue Befehl bildet die Summe der absoluten Differenzen (SAD). Diese Funktion wird oft bei Video verwendet, und zwar konkret um bestimmte Pixel-Blöcke mit einander zu vergleichen. Wir überprüften die Steigerung der Rechenleistung, indem wir verschiedene Shader ausführten.

Während die Radeon HD 5870 gegenüber der HD 4870 bei den meisten einfachen DirectX-9-Shadern um den Faktor 2,26 zulegen konnte, schrumpft der Vorteil auf die 1,68-fache Leistung wenn Per-Pixel-Beleuchtung aktiviert wird.

Als nächstes folgen die DirectX-10-Shader.

Bei prozeduralen Texturen wird die theoretische Mehrleistung fast komplett umgesetzt, und die Radeon HD 5870 ist um den Faktor 2,24 schneller als die HD 4870. Es besteht kein Zweifel, dass die 1.600 Stream Prozessoren alle vorhanden sind und sich mächtig ins Zeug legen.

Wenn sich schon die Recheneinheiten nicht grundlegend geändert haben, scheint sich bei den Textureinheiten im Vergleich zum RV770 überhaupt nichts geändert zu haben. Abgesehen von der Unterstützung von 16Kx16K Texturen und den beiden neuen Formaten zur Textur-Komprimierung (die beide für DirectX 11 vorgeschrieben sind) gibt es hier nichts Neues. Das zeigt sich beim Steep Parallax Mapping recht deutlich:

Die Treiber scheinen auch für eine leichte Optimierung zu sorgen, denn wir konnten hier zwischen den beiden Radeons eine Verbesserung um den Faktor 2,35 ausmachen. Dasselbe konnten wir auch in anderen Shader wie der Fell-Darstellung beobachten.

Bei den Geometry Shadern steigt die Performance dafür nur um 42 Prozent.

Dieser letzte Test misst die Leistung beim Laden von Texturen (texture fetching performance), die beispielsweise bei Displacement Mapping wichtig ist. Hier zeigt sich eine moderate Verbesserung von 34 Prozent.

Man sollte bedenken, dass sich die Bandbreite des L1-Caches zwar erhöht hat, aber nur im selben Maße, wie neue Textureinheiten dazu gekommen sind. Ebenso ist auch der L2-Cache gewachsen, aber eben nur, weil es auch hier nun doppelt so viele Einheiten gibt. Schwerer wiegt, dass die Bandbreite der L1-/L2-Caches nur proportional mit der GPU-Frequenz gestiegen ist, obwohl nun doppelt so viele Recheneinheiten versorgt werden müssen. Möglicherweise haben wir damit gerade den Grund ausgemacht, warum der Cypress, trotzdem er über doppelt so viele Ausführungseinheiten wie sein Vorgänger verfügt, in den vorangegangenen Texturtests nicht auch doppelt so schnell ist.

Ebenfalls interessant...