Von SPEC, Äpfeln und Birnen

Vollmundige Superlative ist man von amerikanischen Managern im Allgemeinen und von Steve Jobs im Besonderen ja gewöhnt. Die sollte man nicht auf die Goldwaage legen - oder vielleicht doch? Der Aufruhr jedenfalls, der nach der Präsentation des neuen Apple Power Mac G5 entbrannte, legte uns nahe, Jobs Superlative näher in Augenschein zu nehmen.

In Pocket speichern vorlesen Druckansicht 68 Kommentare lesen
Lesezeit: 17 Min.
Von
  • Herbert Schmid
  • Andreas Stiller
Inhaltsverzeichnis

Auf Apples Website kann man Weiß auf Schwarz nachlesen, was Steve Jobs auf der WWDC proklamiert hat: Der Power Mac G5 soll „der schnellste Personalcomputer aller Zeiten“ sein. Vergleichen werden wir erst können, wenn das neue Produkt lieferbar ist. Aber während wir darauf noch warten, müssen wir an der Grundlage dieser Behauptung doch schon Zweifel anmelden.

Ein weiterer Jobs-Superlativ lautet, der G5 sei „der erste Personalcomputer mit einem 64-Bit-Prozessor“. Nun ja, will man Suns UltraSPARC-Systeme nicht unter Personalcomputer fassen (obwohl es sogar Notebooks mit dem UltraSparc IIi gab), fallen doch zumindest einige Alpha-Systeme in diese Kategorie. Bei Vobis konnte man bereits im Jahre 1997 den Highscreen Alpha 5000 mit dem Alpha 21164 kaufen. Es gab dafür sogar echte 64-Bit-Betriebssysteme; Apples „welterster“ 64-Bitter kommt hingegen vorerst nur mit einem 32-Bit-Betriebssystem. Auch AMDs Opteron ist schon in Workstations erhältlich; offiziell wird er von AMD allerdings als Server-Prozessor eingestuft, sodass Steve Jobs gerade noch über ihn hinwegsehen durfte.

Das tat Jobs offenbar auch bei seiner Behauptung „der PowerPC970 liefert die höchste Bandbreite in der Industrie“. Diese ist beim PPC970 mit effektiv 7 GByte/s (bei 2 GHz Prozessortakt) fraglos sehr gut und insgesamt auch etwas höher als beim Pentium 4/FSB800 mit 6,4 GByte/s. Aber der Opteron kommt mit seinen drei HyperTransport- und zwei Speicherkanälen auf einen theoretischen Spitzenwert von 24,5 GByte/s. Auch wird die Maximalbandbreite beim PPC970 nur erreicht, wenn gleichzeitig in beiden Richtungen Transfers stattfinden, was eher seltener vorkommen dürfte. In eine Richtung vermag er effektiv nur die Hälfte zu treiben. Der Pentium 4 hingegen liefert in beide Richtungen seine vollen 6,4 GByte/s ab, benötigt dafür aber kleinere Pausen bei einer Richtungsumkehr.

Nicht gerade winzig, die beiden G5-Module, ansonsten recht aufgeräumt, der Mac G5
Quelle: Apple

Was letztendlich mehr Performance bringt, wird hier wie so oft von der gerade laufenden Applikation abhängen. Im Großen und Ganzen jedenfalls liegen G5 und Pentium 4 bei Single-Prozessor-Systemen in der Bandbreite gleichauf. Bei Dual-Systemen hingegen müssen sich zwei Intel Xeons die Gesamtbandbreite teilen, wohingegen der G5 mit der doppelten Bandbreite auftrumpfen kann.

Denn der PPC970-Bus „Elastic I/O“ ist ähnlich wie der EV-6-Bus des Athlon kein wirklicher Bus, sondern eine so genannte Punkt-zu-Punkt-Verbindung. Da agieren jeweils nur die Teilnehmer an den beiden Enden, hier also CPU und Systemcontroller. So können die beiden ungestört und ohne Arbitrierungsaufwand miteinander kommunizieren. Der Nachteil besteht lediglich in dem deutlich höheren Designaufwand bei Multiprozessorsystemen, da zu jeder CPU eine eigene Punkt-zu-Punkt-Verbindung geschaffen werden muss.

Elastic I/O hat getrennte Ein- und Ausgangskanäle (jeweils 32 Bit), die aber nicht nur die Daten, sondern auch die Adressen und Steuersignale „gemultiplext“ zu übermitteln haben. Daher liegt die effektive Datenbandbreite laut IBM etwa um ein Achtel unter der Signalbandbreite. Der Bus arbeitet mit einem Viertel des Prozessortaktes, bei 2 GHz also mit 500 MHz. Pro Takt werden dank DDR zwei Datenpakete von zweimal 32 Bit übertragen, summa summarum eine Signalbandbreite von 8 GByte/s.

Im Mittelpunkt des G5-Systems steht aber nicht der Prozessor, sondern der maßgeblich von Apple entwickelte Systemcontroller, der die Datenströme von einem oder zwei Prozessoren zu verarbeiten hat und sie an den Speicher (zwei DDR400-Kanäle), an AGP-8x oder den HyperTransport-I/O weiterleitet. Stolz sprach Jobs vom schnellsten Chip dieser Art, und das mag für ein ASIC auch gelten, wiewohl der integrierte Crossbar in AMDs Opteron mit noch weit höheren Bandbreiten agiert.

HyperTransport hat Apple freilich nur auf Sparflamme implementiert. Mit 800 MHz - genauer 400 MHz DDR - arbeitet es nur mit halber Maximalgeschwindigkeit. PCI-X wird über zwei 16-bittige HT-Kanäle (Hin- und Rückkanal) mit jeweils 1,6 GByte/s betrieben. Der Rest der Peripherie - Gigabit-Ethernet, die beiden Serial-ATA-Kanäle, Parallel-ATA, FireWire-800, USB 2 etc. - wird daran anschließend über zwei 8-Bit-HT-Kanäle bedient, also mit 800 MByte/s pro Richtung. Das dürfte allemal reichen; nur wenn man sich mit viel Mühe ein Worst-Case-Szenario ausdenkt, in dem alle drei PCI-X-Slots und all die anderen I/O-Kanäle gleichzeitig und auch noch in derselben Richtung bedient werden wollen, könnte es mal eng werden.

Zu Gedränge wird es schon eher auf den beiden Speicherkanälen kommen: Wenn beide CPUs gleichzeitig darauf zugreifen, bleibt keine Bandbreite mehr für AGP, Netzwerk oder andere Peripherie übrig. Diese Knappheit trifft den Dual-G5 aber nicht allein, der Dual-Xeon teilt dasselbe Schicksal, nur der Opteron zieht sich mit seinem lokalen Speicher elegant aus der Flaschenhals-Affäre.

Zwischenfazit: Der gesamte I/O-Bereich der G5-Macs ist mit seinen vielen Schnittstellen und hohen Bandbreiten State-of-the-Art, ein gleichwertiges Design gibt es für Intels Xeon derzeit noch nicht. Der Pentium 4, der nur einzeln betrieben werden kann, erfreut sich aber dank der neuen Canterwood/Springdale-Chipsätze zum Teil ähnlicher I/O-Qualitäten.

Erstmals hat Apple neben Photoshop und Mathematica (wo der G5 nicht allzu überraschend brillieren konnte) auch den „meistrespektierten Benchmark in der Industrie“ (Jobs) zur Beurteilung herangezogen: die CPU-Benchmark-Suite der System Performance Evaluation Corporation (SPEC). Apple ist Mitglied dieser Institution, in der sich Intel, AMD, Sun, IBM, Motorola, HP, Dell, Fujitsu Siemens, Unisys, SGI und andere auf einen gemeinsamen Satz einigermaßen tragfähiger Benchmarks geeinigt und auch Regeln bezüglich der Durchführung und Veröffentlichung festgelegt haben. Apple hat sich allerdings all die Jahre nicht um die SPEC gekümmert.

Richtig konkurrenzfähige Fortran-Compiler gibt es für Mac OS X offenbar immer noch nicht, sodass sich Apple genötigt sah, ein bisschen in die Trickkiste zu greifen. Statt die G5-Systeme in die offiziellen Benchmarkergebnisse einzugruppieren, wie es alle anderen Hersteller tun, wählte man eine „akademische Lösung“ und ließ die G5-Macs bei der Testfirma VeriTest mit Pentium-4- und Xeon-Rechnern unter nominell identischen Umgebungsbedingungen (Betriebssystem, Compiler) vergleichen.

SPEC-Benchmarks

Genau das haben wir im vergangenen Jahr auch einmal gemacht, indem wir unter Linux die Kompilate mit GCC 2.95 und Absoft Fortran gegenüber stellten [1]. Doch haben wir dabei ausdrücklich betont, dass mit den Compilern von Intel weitaus bessere Ergebnisse zu erzielen waren. Nichts davon bei Apple - man ist sogar so unverfroren, aus diesem akademischen Vergleich den Superlativ vom „schnellsten PC der Welt“ abzuleiten.

Unerwähnt bleibt bei Apple auch, dass da noch ein Fortran-Compiler mitspielt - allerdings nicht ganz zu Unrecht, denn bei dem verwendeten NAG-Compiler handelt es sich nur um einen „Quellcodeumwandler“, der Fortran in C/C++ übersetzt und dann mit dem vorhandenen C/C++-Compiler kompiliert. Optimierungsflags, etwa für SSE-Unterstützung, reicht der NAG-Compiler einfach an den C-Compi-ler weiter. Die beiden Flags -march=pentium4 und -mfpmath=sse schließen übrigens automatisch SSE2 mit ein, benötigen also das Flag -msse2 nicht zusätzlich, wie es hier und da fälschlich geäußert wurde.

Allerdings kennen die gcc-Compiler noch keine automatische Vektorisierung, sie benutzen SSE2 nur „skalar“ als Ersatz für die FPU. Der große Vorteil von SSE2, beispielsweise vier Single- oder zwei Dual-Precision-Operationen parallel ausführen zu können, bleibt daher ungenutzt.

Ein bisschen getrickst hat Apple auch bei den Flags für die G5-Messung, denn nach den Regeln für die SPEC-Basis-Werte sind derer nur vier für Optimierungen erlaubt. Apples G5-Compiler kennt jedoch anders als die sonstigen gcc-Kollegen (inklusive Apples regulärem gcc 3.3) bislang undokumentierte Summen-Flags namens -fast und -fastf. Die umfassen offenbar drei Standard-Flags, wie aus einer kurzen Erklärung bei VeriTest zu schließen ist. Beispielsweise wird damit die IEEE-Arithmetik laxer gehandhabt oder C99-Aliasing eingeschaltet. Aufgelöst käme man zusammen mit dem Profiling und dem Einbinden der schnellen Speicherverwaltung auf insgesamt fünf Flags, eines mehr als erlaubt - aber wir wollen ja nicht so pingelig sein ...

Da der G5 noch nicht zur Verfügung stand, konnten wir nur den Teil nachprüfen, der sich mit dem Pentium 4 auseinander setzt. VeriTest hat ja löblicherweise eine Dokumentation ins Internet gestellt. Hier zeigte sich zunächst, dass VeriTest offenbar noch etwas unerfahren auf diesem Gebiet ist: Cron-Jobs und Netzwerk gehören abgeschaltet - das findet man auch in den Runrules der SPEC. Der Störfaktor dieser Jobs ist freilich normalerweise gering, er liegt bei unter einem Prozent; nur wenn ein Betriebssystem mal auf die Idee kommt, zwischendurch den Rechner aufzuräumen, erhält man halt „zeitabhängige“ Benchmark-Ergebnisse.

Abgeschaltet wurde bei den G5-Systemen auch die grafische Bedienoberfläche, die nach unseren früheren Messungen 10 bis 15 Prozent Rechenzeit verbraucht. Im Vergleich zu Linux ist das auch o. k.; will man aber mal Mac-OS-Ergebnisse mit solchen unter Windows vergleichen, müsste das GUI mitlaufen.

Unser Pentium-4-Testrechner war kein Dell Dimension 8300, wie bei Apple, sondern ein System mit einem Epox-Board EP-4PCA3+, aber mit gleicher 3-GHz-CPU, gleichem i875P-Chipsatz und gleichem Speicher. Wir benutzten ferner das gleiche Betriebssystem (Red Hat 9.0), die gleichen Compiler (gcc 3.3 und NagWare 4.2 Edition 511) und dieselben Flags ... erhielten aber andere Ergebnisse! In unseren Messungen schnitt der Pentium 4 ganz deutlich besser ab: + 8 % bei SPECint, +17 % bei SPECfp. Dass das Dell-BIOS eine solche Bremswirkung gehabt haben soll, können wir einfach nicht glauben.

Mit eingeschaltetem Hyper-Threading waren die Ergebnisse übrigens - anders als von Apple angegeben - noch etwas besser, allerdings nur minimal. Wir hätten natürlich auch den 3,2-GHz-Prozessor nehmen können, der just vor dem Apple-Launch herauskam - so viel vorerst zum Thema „schnellster PC“. Das spannende Duell auf Basis realer Applikationen und mit den Dual-Prozessor-Systemen, die im Übrigen eher unter Workstations als unter PCs einzustufen sind, müssen wir uns bis zur Verfügbarkeit des G5-Mac aufheben.

An die von IBM vorab versprochene Performance kann der G5-Mac offenbar noch nicht anknüpfen. Auf dem Microprocessor Forum 2002 hatte IBMs PPC970-Architekt Peter Sandon nämlich 937 SPECint2000 und 1051 SPECfp2000 angegeben - und zwar für einen einzelnen PPC970 mit 1,8 GHz. Da IBM-Entwickler normalerweise nicht so übertreiben wie manche Firmenchefs, deuten diese Werte auf das große Potenzial hin, das noch in den Compilern und im 64-Bit-Modus liegt.

Dabei ist sogar noch unklar, ob die AltiVec-Einheit überhaupt mit dazu beigetragen hat und ob IBMs AIX-Compiler AltiVec unterstützen. Schaut man beispielsweise in das neueste Programming Environment Manual vom Juni 2003, dann findet man über AltiVec und Vektorregister kein Sterbenswörtchen. Bisher hat sich IBM wohl nicht so richtig mit der Motorola-Errungenschaft angefreundet.

Für wissenschaftliche Berechnungen ist AltiVec allerdings eh nicht groß von Vorteil, denn im Unterschied zu SSE2 unterstützt es keine Gleitkommaberechnungen mit doppelter Genauigkeit. Das braucht es beim PPC970 aber auch nicht, weil dieser Prozessor wie seine größeren Power4-Brüder gleich mit zwei FPUs gesegnet ist. Die können dann bei 2 GHz theoretisch mit 8 GFLOP/s ackern (eine Multiply-Add-Operation gilt dabei als 2 FLOPs). Und das Schöne dabei ist, dass der PowerPC-Prozessor den Parallelbetrieb der beiden FPUs klassisch multiskalar selbstständig aus dem sequenziellen Code ausführen kann, ohne dass der Compiler dies besonders vorbereiten muss.

Die betagte x86-FPU kennt erstens kein Multiply-Add, sondern muss dafür zwei Operationen nacheinander durchführen. Zweitens ackert sie im Pentium 4 ganz allein, sodass sie bei 3 GHz Takt bestenfalls auf 3 GFLOP/s kommen kann. SSE2 hingegen erzielt mit zweifach parallelem Multiply-Add theoretisch 12 GFLOP/s, wenn der Compiler das vorbereitet und entsprechende SIMD-Befehle zusammenstellt. Für typische wissenschaftliche Aufgabenstellungen gibt es Bibliotheken, die das mit hoher Effizienz bewerkstelligen - aber die muss man auch nutzen. Da der gcc mit SSE2 bislang nur skalar umgeht, hat der PPC970 trotz seines niedrigeren Taktes von vornherein einen Gleitkomma-Vorteil von 8:6. Hinzu kommt die weit größere Registerzahl von 32 FPU-Registern, die viele zeitkosten-de Speicherzugriffe überflüssig macht. Intels Pentium 4 kann in dieser Disziplin daher nur mithalten oder gar vorbeiziehen, wenn der Compiler mitspielt.

IBMs AltiVec-Einheit hat, wie in Motorolas G4+, vier parallele Ausführungseinheiten, die über zwei Ports mit Daten versorgt werden. Demgegenüber hat Intel beim Pentium 4 gespart, dessen eine SSE2-Einheit sich ihren Port auch noch mit der FPU und MMX teilen muss. Immerhin kann sie in einem Takt 128-bittig auf den Cache zugreifen; wie das beim PPC970 aussieht, ist noch nicht bekannt. IBMs AltiVec bietet also deutlich mehr Parallelbetrieb an. Was das für die Praxis bedeutet, muss sich noch zeigen.

Bei den Integer-Einheiten macht der Pentium 4 Punkte wett. Der PPC970 bietet zwei solche Einheiten an, der Pentium 4 hat derer drei, von denen zwei sogar mit doppelter Geschwindigkeit arbeiten können. Man spricht hier auch gern von virtueller Verdoppelung der ALU (Arithmetic Logical Unit), sodass bei optimaler Programmierung fünf Recheneinheiten arbeiten. Allerdings sind die doppelt gepumpten ALUs sehr kapriziös: Sie mögen nur bestimmte einfache Befehle, die ihnen mundgerecht am besten in Viererbündeln präsentiert werden sollten. Das ist eine schwierige Aufgabe für die Compiler.

Störend kommt noch hinzu, dass die Versorgung mit neuem Code nicht hinterherkommt, denn der Pentium 4 verteilt nur drei Befehle pro Takt (oder genauer 6 Befehle alle zwei Takte). Hier zeigt sich der Power4-Kern im PPC970 ungleich mächtiger, denn er kann fünf Befehle pro Takt dekodieren und verteilen (4 + 1 Branch). Athlon und die Hämmer können sogar neun Befehle verteilen, besitzen aber nur drei Decoder. Weitere Vorteile des PPC970 und der AMD-Chips sind die größeren L1-Daten-Caches - doch derjenige des Pentium 4 ist dafür ungemein schnell.

Am meisten warten müssen die Prozessoren beim Zugriff auf den Speicher - auch bei Dual-Channel DDR400. Mit Hyper-Threading hat Intel eine Technik eingebaut, die bei Applikationen mit mehreren Threads die Wartezeiten geschickt überbrücken kann - das beherrschen Power4 und PPC970 noch nicht. Aber auch IBM ist von dieser Technik überzeugt und will sie beim Power5 und wohl auch beim PPC970-Nachfolger einbauen.

Interessanterweise ist IBM dem Desktop-Trend gefolgt und hat beim PPC970 die Pipelines gegenüber dem Power4 deutlich verlängert: bei der Basis-Pipeline von 12 auf 16 Stufen. Diejenige des Pentium 4 ist noch länger: 20 Stufen sind es allein ab dem Trace-Cache, wie viele davor, weiß man nicht. Mehr Stufen heißt, dass jede davon etwas einfacher gestaltet ist und weniger zu tun hat, was dann einen schnelleren Takt erlaubt. Insgesamt sind beim PPC970 bis zu 215 Befehle gleichzeitig in Bearbeitung, beim Pentium 4 sind es 126. Das heißt aber auch, dass unvorhergesehene Sprünge möglichst vermieden werden müssen, da sonst nahezu alle Befehle umsonst bearbeitet worden sind. Daher besitzen diese Prozessoren ausgeklügelte Sprungvorhersage-Mechanismen, wobei diejenige des PPC970 mindestens eine Generation neuer ist als die des Pentium 4.

Genau das ist der Punkt: Wir vergleichen hier eine Architektur des Jahres 2000 mit einer des Jahres 2003 - wäre der PPC970 nicht von der Architektur her leistungsfähiger, dann wäre das ein Armutszeugnis für IBM. Aber im Herbst, nahezu gleichzeitig mit den G5-Systemen, kommt Intels 2003-Architektur namens Prescott heraus - mit größeren Caches, mehr verteilten Instruktionen pro Takt, deutlich verbesserter Sprungvorhersage, besserem Hyper-Threading, zusätzlichen Befehlen und höherem Takt. Andererseits wird der PPC970 „irgendwann“ mal wirklich 64-bittig. IBM, Apple und AMD können dann gemeinsam mit der Marktoffensive „64 ist mehr als 32“ beginnen. Schön für uns PC-Nutzer - es wird ein heißer Herbst. (as)

[1] Herbert Schmid, SPEC Mac, c't 5/02, S. 182 (as)