3

News des 2./3. Oktober 2007

Mittels einer Produkt-Webseite bei Club 3D lassen sich nunmehr die bisher nur angenommenen technischen Daten zur Radeon HD 2900 GT bestätigen. Danach besitzt diese R600-Abwandlung nur 240 aktive Shader-Einheiten und nur ein 256 Bit DDR breites Speicherinterface – im Gegensatz zu den 320 Shader-Einheiten und dem 512 Bit DDR Speicherinterface des vollen R600-Chips ist das schon eine nicht unerhebliche Abspeckung. Die Taktraten sind gleich zur Radeon HD 2900 Pro bei 600/800 MHz, allerdings wird die GT-Ausführung üblicherweise nur mit 256 MB GDDR3 antreten. Von den technischen Daten her liegt die Karte damit ziemlich ideal zwischen Radeon HD 2600 XT GDDR4 und Radeon HD 2900 Pro. Der Preispunkt, welcher derzeit zwischen 184 Euro und 199 Euro liegt, kommt uns jedoch noch nicht passend vor.

Denn zu diesen Konditionen liegt die deutlich stärkere Radeon HD 2900 Pro preislich einfach zu nahe und dürfte sich in der mittel- und langfristigen Zukunft wegen ihrer gleich 512 MB Grafikkarten-Speicher auch deutlich besser bewähren. Aber eventuell sind wirklich attraktive Preislagen à 150 Euro für die Radeon HD 2900 GT auch nicht machbar, weil der R600-Chip und das für diesen notwendige aufwändige Platinendesign nicht unterhalb eines gewissen Preises realisierbar sind. Primär ist es aber das wirklich exzellente Preis/Leistungsverhältnis der Radeon HD 2900 Pro, welches die Radeon HD 2900 GT zum derzeitigen Stand doch eher unattraktiver erscheinen läßt als ATIs andere neue Lösung für das Performance-Segment.

Die PC Games Hardware hat mit id Software über den Sinn von TripleCore-Prozessoren gesprochen, wie sie AMD bekanntlich plant. Prinzipiell lassen sich auch drei Prozessorenkerne beim Design einer Spiele-Engine unterstützen, diesbezüglich besteht wohl kein großer Unterschied zu QuadCore-Prozessoren. Allerdings muß dies beim Design der Engine schon vorher mit bedacht werden oder aber die Engine generell so viele wie möglich Rechenaufgaben voneinander trennen. Beachtenswert ist aber vor allem, in welchem Stil id Software aktuell von MultiCore-Optimierungen redet: Hierbei geht man augenscheinlich noch nicht den Weg der Parallelisierung innerhalb derselben Rechenaufgabe (multi-threaded Programmierung), sondern trennt erst einmal nur die einzelnen Rechenaufgaben voneinander.

Im Gegensatz zu früheren Engines, wo diese Trennung nach Rechenaufgaben speziell auf DualCore-Prozessoren zugeschnitten war, kann man sich bei id Software aber auch eine Auftrennung auf bis zu sechs Rechenaufgaben vorstellen: A.I. Code, Effect Physics, Game Code, Texture Streaming & De-/Re-Compression, Sound Engine und Renderer – dies würde dann sogar noch über die Möglichkeiten von QuadCore-Prozessoren hinausgehen. Problematisch ist an dieser Stelle allerdings, daß dieses System der Auftrennung nach Rechenaufgaben immer ineffizienter mit steigender Kernanzahl wird. Denn für eine gute CPU-Auslastung müssen alle auf einem Kern ausgeführten Rechenaufgaben in etwa dieselben Leistungsanforderungen haben. Trifft dies nicht zu und ein Core wird beispielsweise nur zu 10 Prozent mit seiner Rechenaufgabe ausgelastet, ist der Performancegewinn nur gering bis äußerst gering.

Die Schwierigkeit besteht also nicht nur darin, Rechenausgaben sauber voneinander zu trennen, so daß sie parallel und (weitestgehend) ohne gegenseitige Beeinflussung ausgeführt werden können, sondern auch noch, daß diese Rechenaufgaben im Idealfall ähnliche Performance-Anforderungen haben. Beispiel: In einer Engine gelingt es, vier Rechenaufgaben voneinander zu trennen, demzufolge könnte man von einem Support für QuadCore-Prozessoren sprechen. Wenn aber eine dieser Rechenaufgaben für sich 50 Prozent der gesamten Rechenleistung beansprucht, spielt es keine Rolle mehr, ob die drei restlichen Rechenaufgaben auf einem weiteren Kern (DualCore), auf zwei weiteren Kernen (TripleCore) oder auf drei weiteren Kernen (QuadCore) ausgeführt werden – die Performance bleibt immer so, als würde man "nur" ein DualCore-Modell nutzen.

Je stärker man die Rechenaufgaben unterteilt und je mehr Kerne man nutzen will, um so wichtiger wird also, daß keine der einzelnen Rechenaufgaben zu viel Rechenleistung nur für sich vereinnahmen will. Die jeweils benutzte Spiel-Engine macht hier allerdings die Vorgaben – und man kann nur sehen, wie man daraus das beste macht. Auf jeden Fall wird es somit mit zunehmender Anzahl an Prozessorenkerne immer ineffektiver, dieses Modell der Unterteilung nach Rechenaufgaben zu verfolgen: Um einen QuadCore-Prozessor noch optimal auslasten zu können, darf keine der einzelnen Rechenaufgaben mehr als 25 Prozent der Rechenleistung beanspruchen, bei einem OctaCore wären es gar nur 12,5 Prozent. Demzufolge sind von QuadCore-Prozessoren (und noch höheren Modellen) keine Wunderdinge mehr zu erwarten, wenn sie auf derart "optimierte" Spiele-Engines treffen. Langfristig werden die Spiele-Programmierer wohl oder übel auf multi-threaded geschriebenen Code umsatteln müssen, da dies der einzige Weg ist, um auch mit ManyCore-Prozessoren (mit beispielsweise 80 Kernen) noch Leistungsgewinne realisieren zu können.