Als Intel anno 2002 HyperThreading mit dem Pentium 4 3.06 GHz [3] HyperThreading veröffentlichte, dachte kaum jemand an eine bessere Spieleperformance durch dieses Feature und war natürlich die derzeitig laufende Entwicklung hin über Dual- und QuadCore-Prozessoren hin zu ManyCore-Prozessoren noch überhaupt nicht absehbar. Schnell wurde zudem auch klar, dass sich hinter HyperThreading mehr oder weniger "nur" eine Technologie zur besseren Ausnutzung der beim Pentium-4-Design oftmals brachliegenden Recheneinheiten verbarg, welche jedoch nur in eher speziellen Fällen wirkliche Leistungsgewinne erzielen konnte.
Spiele gehörten von Anfang an nicht zu den Lieblingen von HyperThreading, hier zeigten sich selbst nach einiger Zeit im Markt nur selten Leistungsgewinne, welche im Fall des Falles zudem ausnahmslos nicht wirklich relevante Größenordnungen erreichten. Und dennoch hat HyperThreading für die aktuell laufende Dual- und QuadCore-Offensive mehr getan als mancher denkt: Denn seinerzeit wurde zum ersten Mal auf dem Desktop-Segment das Programmieren für mehrere Prozessorkerne (ob nun physikalisch oder nur logisch vorhanden) angestoßen. Ohne diese Vorlaufzeit mittels HyperThreading hätten es die ersten DualCore-Prozessoren wohl noch schwerer gehabt, im Spielebereich irgendwelche Vorteile aufzuzeigen – und der Anfang war für DualCore-Modelle wie bekannt sowieso schon nicht besonders rosig.
Nun haben sich die Verhältnisse inzwischen stark gedreht und DualCore-Prozessoren sind inzwischen totaler Standard bei neu verkauften Rechnern und dürften inzwischen auch in der Gruppe der Computerspieler (der Gesamtmarkt mit all den verkauften Büro-Rechnern ist für die Spiele-Branche natürlich nicht maßgebend, sondern allein die verkauften bzw. im Einsatz befindlichen Home-Computer) auf einen erheblichen Anteil an der installierten Basis kommen. Demzufolge – und auch wegen des Vorlaufs mittels HyperThreading – sind DualCore-Optimierungen von aktuellen Spielen inzwischen normal geworden, selbst wenn der Leistungsgewinn nur in den eher selteneren Fällen wirklich in die Nähe der Leistungsverdopplung geht und oftmals auch nur 10 bis 20 Prozent Leistungsplus erreicht werden (was man mit einem höheren Takt der SingleCore-Modelle auch hätte erreichen können).
Vorteilhafterweise sind diese DualCore-Optimierungen in den allermeisten Fällen aber auch bei HyperThreading-Prozessoren einsetzbar. Gerade die eher einfachen Optimierungen wie das Auslagern abgetrennter Teilaufgaben (wie K.I., Sound, Physik) auf den zweiten Kern sind problemlos auch von HyperThreading-Modellen mit einer gewissen Leistungssteigerung handelbar, da diese Teilaufgaben meist deutlich weniger Performance benötigen als die auf dem ersten Kern verbleibende Hauptaufgabe und demzufolge im Fall eines HyperThreading-Modells auch auf einem nur logisch vorhandenem zweiten Kern vernünftig laufen können. Was in der Summe bedeutet: DualCore-Optimierungen sollten eigentlich auch HyperThreading-Prozessoren zu mehr Leistung verhelfen können.
So zumindestens die Theorie – wie dies praktisch aussieht, wollen wir an dieser Stelle in einem Test ausmessen. Hierzu haben wir zwei verschiedenen Prozessoren zum Test eingeladen, wobei diese beiden Prozessoren keineswegs gegeneinander antreten, sondern nur jeweils einen Vertreter der Spezies HyperThreading und einen Vertreter der Spezies DualCore repräsentieren. Im Fall von HyperThreading haben wir uns für den Pentium 4 560 mit 3.6 GHz entschieden, welcher die Tests mit aktiviertem und mit deaktiviertem HyperThreading durchlief, im Fall von DualCore war es dann der Athlon 64 X2 4600+, welcher die Tests sowohl als Dual- als auch als SingleCore durchlief. Ziel der ganzen Sache war dabei, zu erkennen, wieviel HyperTreading in DualCore-optimierten Spielen heutzutage an Gewinn bringen kann, und gleichzeitig, wie nahe der Leistungsgewinn durch HyperThreading dem Leistungsgewinn durch DualCore kommen kann.
Vorab sei an dieser Stelle den Firmen Intel [4] und Sapphire [5] für die unkomplizierte Stellung von Testsamples für unsere neuen Teststationen gedankt, womit auch dieser Artikel wieder ermöglicht wurde.
Natürlich basiert auch dieser Artikel wieder auf Messungen mit Savegames anstatt Timedemos. Dies ermöglichte uns, auch aufgrund der Kürze der Savegames, speziell nur jene Szenen herauszusuchen, welche wir auch wirklich vermessen wollten – während bei einem Timedemo meistens mehrere Szenen (und viel Leerlauf) auf einmal vermessen werden, welche aber jeweils unterschiedliche Performance-Charakteristiken aufweisen können. Ein Timedemo-Durchlauf verwischt diese unterschiedlichen Szenen und deren unterschiedliche Performance-Charakteristik aber immer zu einer einzelnen Performance-Aussage, was die Aussagekraft einer solchen Messung dann doch erheblich einschränkt.
Anstatt Messungen des eher durchschnittlichen Gameflusses mittels Timedemos stellen unsere Messungen ausgewählter kurzer Szenen über den Weg der Savegames somit eher Worstcase-Benchmarks dar: Wir messen dann, wenn die Hardware wirklich unter Stress gerät – und eben auch nur die jeweilige Stress-Szene und nicht noch jede Menge Leerlauf oder gleich eine andere Szene mit hinzu. Die von uns benutzten Savegames stellen dann verschiedene Anforderungsvarianten dar – von geringen Anforderungen bis zu extrem fordernden.
Bei allen Savegames wurden jeweils immer die ersten fünf Sekunden zur Messung benutzt, welche dabei immer mittels Fraps [6] durchgeführt wurden. Dabei wurde jedes Savegame generell fünffach ausgeführt wie gemessen und dann der Durchschnitt dieser Messungen als Ergebnis genommen. Die für diesen Artikel zum Einsatz kommenden Savegames wurden in den entsprechenden Performance-Reports schon genauer beschrieben: Anno 1701 [7], Command & Conquer: Tiberium Wars [8], Need for Speed: Carbon [9], Supreme Commander [10] und Test Drive Unlimited [11].
Die für diesen Artikel benutzten Testsysteme wollen wir an dieser Stelle nur absolut grob nennen, da es bereits hier [12] umfassend ausgeführt wurde. Als Prozessoren für diesen Test wurden jedoch wie gesagt ein Pentium 4 560 (3.6 GHz) und ein Athlon 64 X2 4600+ (2.4 GHz) angesetzt, als Grafikkarte kamen einheitlich eine Radeon X1900 XT (auf Catalyst 7.3, A.I. default mit Area-AF) zum Einsatz. In den Test-Spielen selber wurde immer die bestmögliche Grafikqualität und 5.1 Surround-Sound ausgewählt. Im Sinne eines CPU-limitierten Tests wurde jedoch kein Anti-Aliasing oder anisotroper Filter angesetzt und zudem die Auflösung auf 800x600 bzw. 1024x768 bei Supreme Commander beschränkt.
Die Aufbausimulation Anno 1701 [7] zeigt einen guten Leistungsgewinn bei DualCore-Prozessoren, im Schnitt dieser Messungen sind dies immerhin 46 Prozent, in der Spitze gar 56 Prozent. Interessanterweise kann hierbei HyperThreading aber gar nicht so schlecht mithalten: Im Schnitt 20 Prozent und in der Spitze 24 Prozent sind wirklich nicht schlecht – besonders da HyperThreading im gewöhnlich bei Software ohne Stream-fähige Daten meist nicht über Leistungsgewinne von 10 Prozent hinauskommt.
Problematisch sind hier aber natürlich die trotzdem generell zu niedrigen Frameraten des Pentium 4: Anno 1701 scheint mit der Netburst-Architektur nicht mehr zurechtzukommen, selbst die DualCore-Modelle dieser Architektur (Pentium D) dürften wohl zu schwachbrüstig sein, um dieses Spiel noch mit anständigen Frameraten betreiben zu können.
Eher nur durchschnittliche Leistungsgewinne durch DualCore präsentiert Command & Conquer: Tiberium Wars [8]: Hier sind es im Schnitt 25 Prozent, in der Spitze auch nur 28 Prozent – dabei würde gerade dieses Spiel einen Performanceschub durch DualCore gut vertragen können. Wie aber schon bei Anno 1701 kommt das HyperThreading-Modell im relativen Vergleich noch ganz gut mit: Hier stehen im Schnitt 12 Prozent und in der Spitze 14 Prozent für HyperThreading an.
Allerdings sind auch hier die Frameraten des Pentium 4 Prozessors schon allgemein zu niedrig, um noch vernünftig spielen zu können – selbst wenn der Abstand zum moderneren Athlon 64 X2 Prozessor hier nicht so groß ist. Aufgrund des relativ geringen Leistungsgewinns durch DualCore dürften der Netburst-Architektur hier aber auch ihre DualCore-Modelle nicht wesentlich weiterhelfen.
Ein deutlich anderes Bild sehen wir dagegen bei Need for Speed: Carbon [9]. Hier gewinnt der DualCore-Prozessor mit im Schnitt 43 Prozent und in der Spitze 49 Prozent wiederum sehr gut, während dagegen der HyperThreading-Prozessor keine guten Leistungsgewinne vorzuweisen hat: HyperThreading gewinnt hier gerade einmal 7 Prozent im Schnitt und 8 Prozent in der Spitze, was gerade angesichts des hohen Leistungsgewinns durch DualCore etwas enttäuschend ist.
Auf der anderen Seite erreicht der eingesetzte Pentium 4 in diesem Spiel weiterhin noch hervorragende Frameraten und benötigt – zumindestens hier – den Schub durch HyperThreading oder/und DualCore eigentlich nicht, um überall problemlose Spielbarkeit zu gewährleisten.
Supreme Commander [10] stellt den derzeit wohl härtesten Spiele-Test für Prozessoren dar – hier lassen sich problemlos Einstellungen finden, welche keine der heutzutage erhältlichen CPUs selbst im Overclocking-Modus auch nur im Ansatz bewältigen kann. Dafür ist das Spiel allerdings auch ein dankbarer Abnehmer von DualCore-Prozessoren und skaliert faktisch 1:1 mit diesen. In Fällen, wo die Framerate im Spiel unterhalb ein gewisses Level fällt (irgendwo bei 15-20 fps), kann die Leistungssteigerung sogar noch höher als 100 Prozent ausfallen – wobei dieser rein theoretisch eigentlich nie erreichbare Fall wohl durch die Besonderheiten der Spiel-Engine hervorgerufen wird.
Dementsprechend ist es aber auch diffizil, hier mit Prozentwerten zu arbeiten. Besser ist hier die exaktere Betrachtung der einzelnen Benchmark-Resultate, welche bei niedrigen fps-Zahlen problemlos eine 1:1-Skalierung für DualCore, aber auch für HyperThreading (!) erkennen lassen. Bei höheren fps-Zahlen relativiert sich dieses dann allerdings wieder etwas, hierbei sind die Performancegewinn durch DualCore und HyperThreading dann nur noch bei knapp 10 Prozent. Nichts desto trotz gibt es hier eine starke Empfehlung für beide Varianten.
Bei der reinen Performance sieht es hingegen für den Pentium 4 der Netburst-Architektur nicht so rosig aus: Die von diesem Prozessor erreichten Frameraten sind zumeist zu schwach, um vernünftig mitzumischen. Dabei kann man getrost noch einrechnen, daß in Supreme Commander noch wesentlich Prozessor-lastigere Szenarien kreierbar sind als die von uns zum Test genutzten.
Und letztlich haben wir mit Test Drive Unlimited [11] wieder ein Spiel, welches relativ human mit den Prozessoren umgeht. Das DualCore-Modell erreicht hier trotzdem noch starke 52 Prozent Leistungsgewinn im Schnitt und 55 Prozent in der Spitze, für das HyperThreading-Modell stehen dagegen 15 Prozent Leistungsgewinn im Schnitt und dann 20 Prozent in der Spitze zu Buche. Dies ist nicht überragend, aber immerhin ein anständiges Resultat für eine Technologie zur "Resteverwertung" (an brachliegender Rechenleistung).
Zudem kommt dem gesteteten Pentium 4 560 mit 3.6 GHz in diesem Spiel auch entgegen, daß die von diesem Modell erreichten Frameraten überall ausreichend sind, um voll mitzufahren. Ein Netburst-Prozessor mit DualCore könnte hier angesichts der Zugewinne durch DualCore zwar wohl noch einmal besser mitmischen, wird aber nicht aufgrund der Höhe der erreichten Frameraten nicht zwingend benötigt.
Zwar kann dieser Test nur einen kurzen Überblick über die Schlagfähigkeit von HyperThreading unter heutigen Spielen geben, die Resultate sind aber durchaus bemerkenswert: Klar ist erst einmal, daß HyperThreading fast überall merkbare Performancegewinne hervorbringt. Erstaunlich ist dabei die erreichte Höhe dieser Performancegewinne: Zumeist liegt man nahe der Hälfte des Performancegewinns durch DualCore. Gerade angesichts des dafür eingesetzten Siliziumcounts ist dies hochgradig bemerkenswert, steht doch DualCore mehrheitlich für 100 Prozent mehr Transistoren und wurde HyperThreading seinerzeit durch nur 5 Prozent mehr Transistoren erreicht.
Natürlich muß auch klar sein, daß diese in der Relation hohen Werte für HyperThreading auch durch eine immer noch vorhandene relative Schwäche von DualCore verursacht werden. Wie freuen uns heute zwar schon darüber, wenn irgendeine Anwendung mit 40 Prozent Leistungsgewinn auf DualCore reagiert – und angesichts der aktuellen Software-Lage ist dies derzeit auch ein gutes Ergebnis. Generell sollten allerdings langfristig Leistungsgewinne von 70 Prozent und mehr angestrebt werden, wobei dies in den meisten Fällen nur mit multithreaded geschriebener Software möglich sein dürfte. Erst dann dürfte sich allerdings zeigen, wie stark DualCore wirklich ist. Und es wäre zu vermuten, daß HyperThreading dann nicht mehr in die Nähe der Hälfte des Performancegewinns durch DualCore kommen wird, weil die Karten von HyperThreading wohl schon ausgereizt sind.
Auf der anderen Seite ist dieses gute relative Ergebnis für HyperThreading leider in vielen Fällen nicht mehr mit einem praktischen Nutzen verbunden. Wie unsere Benchmarks auch gezeigt haben, ist selbst ein hochgetakteter Pentium 4 für viele der heutigen Spiele nicht mehr schnell genug, um noch überall spielbare Frameraten liefern zu können. Dies fällt insbesondere dadurch stärker ins Gewicht, als daß man durch das Absenken der Bildqualitätsoptionen im Spiel zumeist keine höhere CPU-Leistung erreichen kann (im Gegensatz zu Grafikkarten), um dadurch noch irgendwie spielbare Frameraten zu bekommen. Zudem ist von den kommenden Spielen zu erwarten, daß dort der Pentium 4 nicht mehr nur bei ausgewählten Hardware-Krachern, sondern bei einer breiteren Masse an Games nicht mehr für vernünftige Frameraten sorgen wird. Die Zeit dieses Prozessor inklusive auch der gesamten Netburst-Architektur läuft bezüglich Computerspielen klar ab.
Das hindert uns natürlich nicht daran, Intel nachträglich noch ob der mittels HyperThreading erworbenen Verdienste bezüglich dem Anschub von HyperThreading- und damit gleichzeitig auch DualCore-optimierter Programmierung zu würdigen, ohne welche die heutzutage zu verzeichnenden Leistungsgewinne durch DualCore gerade im Spielebereich kaum möglich wären (bzw. erst in einiger Zeit anstehen würden). Womit die Arbeit der Prozessorenhersteller natürlich noch lange nicht beendet ist: Denn es sind bitte noch viel mehr Spieleentwickler davon zu überzeugen (und zu unterstützen), daß diese ihre Software gleich auf ManyCore-Prozessoren auslegen, denn die heutzutage verkauften Dual- und QuadCore-Modelle langweilen sich natürlich bei Tabellenkalkulation und Internetsurfen und wollen ihre fraglos vorhandene Power auch irgendwann einmal unter wirklich fordernder Software voll ausspielen ;).
Verweise:
[1] http://www.3dcenter.org/users/leonidas
[2] http://www.3dcenter.org/users/madkiller
[3] http://www.hardtecs4u.com/reviews/2002/p4_3.06ghz/
[4] http://www.intel.de/
[5] http://www.sapphiretech.com/ge/
[6] http://www.3dcenter.org/downloads/fraps.php
[7] http://www.3dcenter.org/artikel/2006/12-20_a.php
[8] http://www.3dcenter.org/artikel/2007/06-30_a.php
[9] http://www.3dcenter.org/artikel/2006/12-31_a.php
[10] http://www.3dcenter.org/artikel/2007/06-25_a.php
[11] http://www.3dcenter.org/artikel/2007/03-22_a.php
[12] http://www.3dcenter.org/artikel/x1900xt_vs_7950gt/index4.php
[13] http://www.forum-3dcenter.org/vbulletin/showthread.php?t=374422