3/31 ATi Radeon HD 3870 X2 im Test : AMDs ersehnter Griff nach den Sternen

, 913 Kommentare

Technische Details

Auf der Radeon HD 3870 X2 verbaut ATi zwei RV670-GPUs, die im CrossFire-Modus miteinander kommunizieren können, um so die Performance der Karte zu erhöhen. Die RV670-Chips sind dabei identisch mit den Rechenwerken auf einer Radeon HD 3850 oder Radeon HD 3870. Somit werden die beiden GPUs auf der Radeon HD 3870 X2 bei TSMC im 55-nm-Verfahren hergestellt und setzen sich aus jeweils 666 Millionen Transistoren zusammen. Zur Erinnerung: Die Architektur des RV670 verblieb an sich größtenteils identisch mit der des R600 auf einer Radeon HD 2900 XT, einzig einige (einflussreiche) Kleinigkeiten hat AMD verbessert.

PEX 8547

Der R680 (der Codename für die Kombination der beiden GPUs auf der Doppelkarte) setzt auf zwei mal 64 5D-Vektorshader, die sich im Verhältnis 1:1:1:1:1 aufsplitten können (wobei sie sich dann, ähnlich wie auf dem G8x/G92, wie Skalarshader verhalten). Allerdings müssen die Operationen dafür vollkommen unabhängig voneinander sein. Sind sie hingegen voneinander abhängig, warten einige ALUs auf die Ergebnisse der anderen und stehen still. Der Thread-Scheduler versucht zwar dies zu verhindern und die ALUs mit anderweitigen Aufgaben zu belegen, doch ist dazu eine Menge Treiberoptimierung von Nöten. Jede ALU kann auf dem R680 eine MADD-Operation (Multiply-ADD) pro Takt durchführen. Darüber hinaus setzt die ATi Radeon HD 3870 X2 auf 2 x 16 Textureinheiten, die pro Takt 16 Pixel texturieren und 32 Pixel adressieren kann (beziehungsweise 32 und 64 Pixel). Diese zum G80 gegensätzliche Verhältnis soll vor allem in Direct3D-10-Anwendungen von Vorteil sein.

Die Anzahl der ROPs liegt ebenfalls bei 2 x 16. Pro Takt können 32/64 Z-Operationen (Sichtbarkeitsprüfungen von Pixel, die je nach Ergebnis gar nicht erst gerendert werden) ausgeführt werden. Das Multi-Sampling-Shader-Resolve wird auf dem R680 wie auf dem Vorgänger R600 selbst für einfache Anti-Aliasing-Modi mit dem Box-Filter in den Shadereinheiten durchgeführt. Normalerweise ist dies Aufgabe der ROPs, was auf dem R600/RV670/R680 aber nicht funktioniert. Ob dies nun Absicht von ATi, oder ein Fehler im Chipdesign ist, wird wohl ein Geheimnis bleiben. Die GPU taktet auf der Radeon HD 3870 X2 mit 825 MHz, was spürbar höher als die Frequenz auf der Radeon HD 3870 (775 MHz) liegt. Das Speicherinterface ist auf der Grafikkarte pro Chip 256 Bit breit. Der Speicher taktet mit 900 MHz (Radeon HD 3870: 1125 MHz, GDDR4). Die Speicherbandbreite ist im Gegensatz zu den Taktraten pro GPU also geringer als auf einer Radeon HD 3870. Auf dem Referenzdesign von ATi werden zwei mal 512 MB verbaut, die sich aus sechzehn 64 Megabyte großen GDDR3-Speicherchips zusammensetzen (pro GPU jeweils 512 MB). Der Speichercontroller auf dem R680 besteht aus acht 64-Bit-Kanälen (vier für jede GPU).

Damit die beiden RV670-Chips im CrossFire-Modus miteinander kommunizieren können, verbaut ATi auf der Radeon HD 3870 X2 einen PCIe-Switch von PLX, der auf den Namen „PEX 8547“ hört. Dieser PCIe-Switch verfügt über insgesamt 48 PCIe-Lanes. 16 Lanes werden für die Ankopplung der Grafikkarte an den PCIe-Slot und jeweils 16 Lanes für die Anbindung der GPUs an den Switch verwendet. Jede einzelne GPU kann also auf die maximale Bandbreite des PCIe-Bus' zurückgreifen, ohne durch eine Auftrennung in zwei Mal acht Leiterbahnen ausgebremst zu werden. Da der PEX 8547 ein PCIe-1.1-Switch ist, ist die Radeon HD 3870 X2 allerdings nur zum älteren PCIe-1.1-Standard kompatibel, obwohl die RV670-Chips durchaus PCIe 2.0 unterstützen. Laut ATi soll es dadurch aber zu keiner Limitierung kommen. Mit PCIe-2.0-Boards funktioniert die Karte selbstverständlich trotzdem.

Da der R680 auf eine nicht speziell modifizierte CrossFire-Technologie setzt, bietet die Radeon HD 3870 X2 die Vor-, aber auch die Nachteile, die ATis Multi-GPU-Technik mit sich bringt. So muss beispielsweise, damit die Performance durch die zweite GPU gesteigert werden kann, ein entsprechendes CrossFire-Profil im Treiber hinterlegt sein. Falls dies nicht der Fall ist, profitiert die Anwendung nicht von dem zweiten Chip. Alternativ kann man dem Treiber per „.Exe-Renaming“ (Umbenennung der Exe-Datei in den Namen der Datei eines unterstützten Spiels) vorgaukeln, dass man ein anderes Spiel, welches CrossFire-Unterstützung bietet, gestartet hat. Aber bei dieser Methode können zu jeder Zeit Fehler auftreten. Hier hoffen wir, dass ATi die CrossFire-Profile in Zukunft schneller aktualisiert.

Im optimalen Fall arbeiten die GPUs im AFR-Modus (Alternate Frame Rendering) zusammen, bei dem jede Grafikkarte an einem eigenen Frame rechnet. In diesem Modus ist die Skalierung am besten, da auch die Geometrie beschleunigt werden kann, was bei den alternativen Render-Modi (Scissor und SuperTiling) nicht der Fall ist. Aufgrund der angewendeten Techniken in heutigen Spielen funktioniert AFR mit dem richtigen Profil aber fast immer.

ATi Radeon HD 3870 X2 Präsentation
ATi Radeon HD 3870 X2 Präsentation

Einige Leser werden sich vielleicht gewundert haben, warum wir weiter oben im Text nicht einfach die Recheneinheiten der beiden RV670-Chips zusammengezählt, sondern nur jeweils die Anzahl pro GPU erwähnt haben. Dies hängt mit der verwendeten Multi-GPU-Technik zusammen, da leider nicht alle Einheiten verschiedene Operationen ausführen können. Was man unter anderem nicht so ohne Weiteres doppelt zählen kann, ist das Speicherinterface. Auf diesem werden hauptsächlich zwar unterschiedliche Daten pro GPU verschickt, für manche Rendervorgänge benötigen aber beide GPUs dieselben Daten, weswegen die Rechenkerne längst nicht immer mit unterschiedlichen Bits und Bytes gefüttert werden können. Abgesehen davon würde man selbst in diesem Fall keine hundertprozentige Leistungssteigerung erreichen, da unter anderem der CPU-Overhead durch den Treiber viel zu groß ist.

Ein wohl noch viel größeres Problem ist, dass bei heutigen Multi-GPU-Techniken im Speicher der beiden Grafikkerne immer dieselben Daten liegen müssen. Dadurch kann man den Speicher nicht addieren, sondern nur einzeln zählen. Obwohl auf einer Radeon HD 3870 X2 also insgesamt 1024 MB Speicher verbaut ist, kann man nicht mehr als effektiv 512 MB nutzen. Hier sehen wir in Zukunft das größte Verbesserungspotenzial für CrossFire und SLI.

ATi Radeon HD 3870 X2 Präsentation
ATi Radeon HD 3870 X2 Präsentation

ATi hat CrossFire für die Radeon HD 3870 X2 für sämtliche Mainboards im Treiber frei gegeben. Normalerweise funktioniert CrossFire nur auf AMD- sowie Intel-Chipsätzen. Da dies die Nutzung einer Radeon HD 3870 X2 auf einem Nvidia-Mainboard aber unmöglich machen würde, hat ATi CrossFire auf der Dual-GPU-Karte komplett geöffnet. Im Umkehrschluss kann man CrossFire auf der Grafikkarte aber auch nicht deaktivieren. Auf der Radeon HD 3870 X2 ist darüber hinaus ein CrossFire-Anschluss auf der Platine montiert. Mit einem späteren Treiber, der noch im ersten Quartal dieses Jahres erscheinen soll, wird es damit möglich sein, eine zweite Radeon HD 3870 X2 parallel zur ersten zu verwenden. Damit würden insgesamt vier RV670-GPUs in einem Rechner zusammen arbeiten, was ATi „CrossFire X“ nennt.

Die ATi Radeon HD 3870 unterstützt die Direct3D-10.1-API, die derzeit aber noch in keiner Anwendung Verwendung findet. Auch PowerPlay kommt auf der Radeon HD 3870 X2 zum Einsatz, das die beiden GPUs im 2D-Modus herunter taktet und die Spannung senkt, damit die Grafikkarte Strom sparen kann. Eine GPU komplett deaktivieren kann PowerPlay aber nicht. Der Unified Video Decoder (UVD), der HD-Videomaterial im H.264- und VC-1-Format beschleunigt, wird ebenfalls auf der Radeon HD 3870 X2 verbaut. Das neu entwickelte „Hybrid-CrossFire“ unterstützt der R680 dagegen nicht.

PCIe-Switch von PLX
PCIe-Switch von PLX

Auf der nächsten Seite: Impressionen