ARCHIV 1999-2006

ARCHIV :: # 2146

NASA testet G5

G5...G4...3...2...1...Liftoff!

Autor: kai - Datum: 03.07.2003

Leser Achim Loobes schickt uns einen extrem interessanten Benchmark der besonderen Art jenseits von Quake und Photoshop: Das NASA Langley Research Center in Virginia hat den G5 mit ihrer eigenen Software Jet3D, scheinbar eine Art Strömungssimulator getestet. Verglichen wird mit einem P4 2.66 GHz und einem G4. Interessanterweise setzt Jet3D stark auf Vektorcode in Form von Altivec, somit sieht man recht schön, wie sich der G5 zum G4 in Altivec verhält. Interessanterweise ist -obwohl die gesamten MFLOPS deutlich höher liegen- hier die MFLOPs pro MHz-Ratio fast gleich wie beim G4. Da der G5 einen dickeren Bus hat sollte sie eigentlich höher liegen. Aber da keinerlei G5-optimierende Compiler zum Einsatz kommen ist denkbar, dass der eingesetzte FORTRAN-Compiler von Absoft bei seinen Altivec-Kompilaten auf Data Stream Touch-Befehle zum Prefetch setzt, die auf dem G5 leider einen Pipeline-Stall hervorrufen. DCBZ, ein Kommando um Cache-Lines auszunullen scheint auf dem G5 auch nicht sehr effektiv zu funktionieren..
Weiterhin ist denkbar, dass der Compiler bei Altivec auf die 745x-Altivec-Implementierungen setzt, die sich vom 7400 (und dem G5 - IBM hat für den G5 offensichtlich ihr altes 7400-Chipdesign mit Altivec, das sie damals mit Motorola noch zusammen gemacht haben wieder rausgekramt!) insofern unterscheiden, dass man 2 beliebige Altivec-Kommandos pro Takt schicken kann. Bei 7400 und G5 muss eines davon ein Vector-Permute sein. Vielleicht wird die längere Latency auch nicht berücksichtig und/oder es werden bei Jet3D viele kleine Datenpakete bearbeitet, hier ist der G5 nicht so gut wie der G4.
Wie auch immer - die Performance ist zwar "nur" skalar zum Takt, aber deswegen ist der G5 eben immer noch kräftig schneller dank dem höheren Takt! ;-)

Neben Absoft FORTRAN F90 V8 kamen auf dem G4/G5 "nur" der alte GCC3.1 zum Einsatz und auf dem P4 Portland Group F90, über dessen Code-Qualität mir leider nichts bekannt ist. Trotz exakt null Optimierung auf G5 ist der Dual 2GHz im Single-CPU-Modus genauso schnell wie der P4 2.6 GHz, im Dual-Modus ist er fast exakt doppelt so schnell (wahnsinn! SMP-Faktor 1.96, das ist weit jenseits der "normalen" ~1.8 der Dual-Systeme, die sich einen FSB teilen!). Dies bestätigt die Vermutung, dass durch die getrennten FSBs sich die CPUs wohl nicht mehr gegenseitig ausbremsen und dass es vollkommen genügt, multithreaded zu programmieren ohne sich um Memory-Scheduling und Routinen, die in den Cache passen kümmern zu müssen!
Bei den G4s, P3s und P4s muss man immer aufpassen, dass sich die CPUs nicht gegenseitig ausbremsen, da nur immer jeweils eine CPU auf den Bus zugreifen kann und die andere solange mit dem Cache arbeiten muss um von SMP zu profitieren. Diese doch recht aufwendigen Optimierungen sind (neben dem Problem der Parallelisierung gewisser Aufgaben) der Grund, warum so wenige Programme bisher auf SMP setzen. Vielleicht läutet der G5 da ja ein neues Zeitalter ein? AMD hatte einen solchen Point-to-Point-"Bus" (Jaja, ich weiss: eigentlich ist es ja kein Bus, aber das ist mir jetzt zu umständlich mit den Formulierungen! ;-) in Form des EV6-Busses vom Alpha ja bekanntlich schon seit dem ersten Athlon, jedoch hatten die immer das Pech, dass SMP-Code auf x86 fast automatisch eine Optimierung auf Intels Dual-Systeme und damit einen shared-FSB bedeutet! Egal was man nimmt: AfterFX, Photoshop, 3DS Max, Lightwave, C4D, Maya, Softimage das ganze Discreet-Videozeug: Intel ist für Dual leider der Standard bei den Softwarehäusern, obwohl der Athlon eigentlich viel besser performen hätte können!
Da der G5 in Skalaren Aufgaben (Vektor-Performance-Vergleiche gibt's nur zwischen G4 und G5) genausoschnell ist wie der P4 aber weit weniger Takt ist er natürlich führend bei MFLOP-pro-Takt.
Erwähnenswert ist auch, dass die Vektor-Version von Jet3D typischerweise 10-13 mal (!) schneller läuft als die skalare Version, die auf die FPUs und IUs setzt.
Multiprozessor-Faktor bei der Vektor-Version: 1.87, zwar nicht so nah an 100% Steigerung wie die skalare Version aber immerhin fährt man hier ja auch schon volles Rohr Altivec zusätzlich! ;-) Beeindruckende 5,177 GFLOPS schaffte der Dual-2GHz G5 mit 2 CPUs. Zur Erinnerung: Der G4-500 wurde von Jobs bei der Einführung als "Supercomputer" mit einer Leistung von 1 GFLOPS beworben! Die skalare Version schafft übrigens gerade mal 498 MFLOPS im Dual-Betrieb und 254 MFLOPS im Single-Betrieb (=P4 2.6 GHz).

Fazit des Testers Craig Hunter: Der G5 liefert 22% bessere Skalar-Performance als der G4 pro Taktzyklus (mit altem G4-Code wohlgemerkt!), was wohl auf die 2 FPUs zurückzuführen ist, der G4 hatte nur eine. Vektorperformance pro Zyklus ist wie erwähnt gleich. Craig schätzt allerdings, dass G5-optimierende Compiler durchaus nochmal eine 20%ige Performancesteigerung bewirken könnten.

Ich denke mal, der G5 wird im wissenschaftlichen Bereich viele Freunde finden! ;-) Alles, was jetzt dringend gebraucht wird sind super Compiler, am besten auto-vektorisierend, damit auch jedermann von Altivec profitieren kann. Da werden dann als Nebenprodukt auch lustige SPEC-Ergebnisse herauskommen, hehe!...
Warten wir mal, ob IBM ihr VisualAge, mit dem sie all ihre SPEC-Ergebnisse erzielen wirklich auf den Mac portiert (Wie MacBidouille "rumort" hat)... Peter Sandon hat ja angeblich schon mal bestätigt, dass sie an einer auto-vektorisierenden Version arbeiten, wenn auch nicht ob für MacOS oder für AIX!...

Kommentare

Jobs sprach ganz ungeniert ...

Von: johngo | Datum: 03.07.2003 | #1
... von einem "Supercomputer" und gab die Performance standesgemäß in Gigaflops an: 1 Milliarde Floating Point Operationen pro Sekunde (Peak Performance 4 GFLOPS)!!!

Oops, sorry! ;-)

Von: Kai (MacGuardians) | Datum: 03.07.2003 | #2
Hast recht - Da hab ich ein G und ein M vertauscht, hehe!..

Wird sofort korrigiert!

Ich war schon in‘s Träumen gekommen!

Von: johngo | Datum: 03.07.2003 | #3
... von wegen tausendmal schneller! ;)

Ja..

Von: Kai (MacGuardians) | Datum: 03.07.2003 | #4
Schade, schön wär's gewesen! ;-)
Trotzdem nett: 5 mal so schnell ist schon okay!

Man müsste für nen echten Vergleich nur wissen, wieviel Jet3D denn nun an GFLOPS auf einem G4-500 ausspuckt! ;-)
Ich denke mal, dass das so völlig ohne Optimierungen weit unter den von Jobs versprochenen 1 GFLOPS liegt!

Das tangiert mich peripher...

Von: RollingFlo | Datum: 04.07.2003 | #5
Ist ja alles schön und gut, aber was soll's? Der G5 ist schnell und gut ist es. Für mich zumindest. Da brauche ich nicht noch 1000 Benchmarks.

Mir ist natürlich klar, dass viele (v.a. Instititute usw.) benchmarks in ihre kaufentscheidung miteinbeziehen, insofern ist das nicht unwichtig. Aber mir persönlich könnte es egaler nicht sein.

Moment mal!...

Von: Kai (MacGuardians) | Datum: 04.07.2003 | #6
Wenn die G4 im Test einen MFLOPS pro MHz-Faktor von im Schnitt 1.3 haben können wir uns ja selbst grob ausrechnen, wie ein G4-500 maximal (sonstige Performancesteigerungen wie schnelleres RAM und besserer Chipsatz mal ausser Acht gelassen!) in Jet3D performt!
500 * 1.3 = 0.65 GFLOPS! ;-)
Wenn man jetzt noch berücksichtigt, dass der Absoft-Compiler wahrscheinlich die 7455-Altivec-Implementierung nutzt (sonst müssten die MFLOPS-pro-MHz-Werte des G5 höher sein) wird der Wert wohl sogar noch um einiges kleiner, denn dann hat der G4-500 ähnliche Probleme mit dem Altivec-Code wie es der G5 scheinbar hat!

Dann passt's wieder: Ohne Berücksichtigung von schnellerem RAM und besserem Chipsatz in den modernen G4 und der 7400-vs-7455-Altivec-Sache ist der G5 in Jet3D also mindestens 8 mal schneller als ein G4-500! Und das ist also mindestens ziemlich genau eine lineare Performancesteigerung, denn 8 * 500MHz = 2x2GHz! ;-)

G4 vs. G5

Von: Zerwi | Datum: 04.07.2003 | #7
Wen ich mir das Ganze so anschau und die letzte Berechnung von Kai mit heranziehe, dann erscheint mir der G5 nicht mehr als der Wunderchip, als der er gepriesen wird. Ein G4 könnte demnach bei gleicher Taktung annähernd die selbe Leistung bringen - andere Komponenten im Rechner mal außer acht gelassen.

G4

Von: Joerg | Datum: 04.07.2003 | #8
Ganz klar, der G4 ist auf jedenfall kein schlechter Chip!
Nur ist er eben bei 1 Ghz (ich glaube zumindest) am Ende seiner Taktung.

Ach ja, wurden die *alten* Power Mac G4 nicht mit bis zu 20 GFlops angepriesen?

GFLOPS?

Von: alex | Datum: 04.07.2003 | #9
mal ne saudumme frage...ich habe ein kleines Hilfsprogramm, das ein Apfelmännchen zeichnet, und aus der benötigten Zeit die Performance errechnet. Mein guter alter G4/350 schafft knapp 1 GFLOP! (ein iMac G4/700 schaffte 2.5 GFLOP). der Xserve schaffte 15Gflop, Angaben von Apple.

Meine Frage nun: ist FLOP=FLOP, oder kommt es noch darauf an, WIE er errechnet worden ist? Besten Dank für weitergehende infos!

Alex

PS: könnte das Programm auch weitermailen, damit ich Vergleichsangaben habe!

G4 1GHZ Dual oder G5 2GHZ Dual?

Von: Alexy | Datum: 04.07.2003 | #10
ob der G5er wirklich mehr Leistung
bringt als der G4 1Ghz Dual?

Wer könnte es mir sagen?
Welchen soll ich mir holen, der wirklich
mehr Leistung bringt.

Alexy

zieh rüber

Von: tzunami | Datum: 04.07.2003 | #11
Ist das Apfelmänchen Programm für OSX?

AlltVec Fractal Carbon

Von: Thorsten Hechtfischer | Datum: 04.07.2003 | #12
nennt sich das Progrämmchen oder?

natürlich AltiVec.... Sorry

Von: Thorsten Hechtfischer | Datum: 04.07.2003 | #13
n/t

AltiVec Fractal Carbon Demo ?

Von: Mr.Mike (MacGuardians) | Datum: 04.07.2003 | #14
Ihr meint das ?

[Link]

Ich ja

Von: Thorsten Hechtfischer | Datum: 04.07.2003 | #15
n/t

ich auch...

Von: alex | Datum: 04.07.2003 | #16
da scheint aber das programm die flops recht grosszügig auszulegen :-)

gruss,
alex

pb12

Von: lx | Datum: 04.07.2003 | #17
mein pb12 kommt laut der fractal carbon demo auf 3,5 gflop ;-))

aber leider ist das wohl doch ein bisschen übertrieben. keine ahnung, wo die ihre werte herholen.

--
alex

FLOPS != FLOPS

Von: Kai (MacGuardians) | Datum: 04.07.2003 | #18
Altivec Fractal Demo ist nicht vergleichbar mit Jet3D. Es ist hochgradig assembleroptimiert auf Altivec, erledigt nur eine vergleichsweise simple und für Altivec ideal geeignete Aufgabe und passt voll in die Caches (sieht man daran, dass es eines der sehr wenigen Programme ist, die absolut linear mit dem CPU-Takt skalieren) wohingegen Jet3D ist ein ganz normal kompiliertes sehr komplexes Programm ist.

Der G4 kommt recht schlecht mit unoptimiertem Code zurecht, deshalb erzielt er mit unoptimierten Programmen weniger Leistung, und hier ist der G5 allgemein besser (siehe Adobe, Macromedia etc). Klaro müsste er dann in Jet3D auch eine bessere MFLOPS-pro-MHz-Ratio haben als der G4, aber wenn der Compiler eben Stream-Prefetches reinkompiliert, die einen Pipelinestall hervorrufen skaliert er eben "nur" dank dem Takt.
Die 20%, die Craig Hunter dank einem G5-Compiler erwartet sind absolut nicht unrealistisch, ich denke, da sind sogar noch mehr drin!

Nein, ein G4 könnte bei gleicher Taktung eben nicht die gleiche Leistung bringen! ;-)
Erstens weil er nur in Altivec mit dem G5 gleichauf liegt, und Altivec nun mal einfach deutlich seltener zum Einsatz kommt als FPUs und Integer-Units (hier: 25% mehr Performance pro Takt als G4!) und zweitens, weil die Rechung mit der linearen Performanceskalierung zum Takt eben nicht aufgeht!
Eine 2GHz-CPU ist nur in absoluten Idealfällen viermal so schnell wie eine 500MHz-CPU!
Sieht man ja schon bei nem G4-Vergleich der Werte auf der Seite: 1328 (Vektor-MFLOPS 1GHzG4) * 1.25 = 1660
Der 1.25 GHz G4 hat aber real nur 1612! Der Unterschied von 3% ist zwar nicht riesig, aber wenn man grössere Taktunterschiede hat als 25% wird er natürlich auch grösser!
Deshalb schrieb ich ja auch mindestens 8 mal so schnell! Dies gilt für den absoluten Worst-Case beim G5 und den best-case beim G4-500!
Die von mir angesprochenen Faktoren (schnnelleres RAM, besserer Chipsatz, 7400-Altivec vs 745x-Altivec) haben sicherlich auch einen beachtlichen Einfluss, nur kann ich nichtmal ne Schätzung abgeben, wie gross dieser denn nun wirklich ist! ;-)

Interessant wäre gewesen...

Von: Kai (MacGuardians) | Datum: 04.07.2003 | #19
die Vektorperformance der G4 im Dual-Betrieb zu erfahren! ;-)
Ich schätze nämlich stark, dass die recht weit von dem SMP-Faktor des G5 entfernt ist (1.87), was ein weiterer Faktor wäre, warum ein hypothetischer G4 mit Dual 2GHz niemals so schnell wäre! ;-)

kai, danke für die erläuterungen! (n/t)

Von: alex | Datum: 04.07.2003 | #20
n/t

Wichtitsch..

Von: AppleKing | Datum: 04.07.2003 | #21
Nicht zu vergessen, das die PowerMac G5 modelle vorserie und mit nich optimierter NASA Software (siehe Anmerkung auf der Seite) genausoviel Leistung in AltiVec bringen wie ein G4, das ist schon mal sehr nett, schaumermal wie es sich im Dual-Modus in Serienmodellen, mit Panther und nicht mit MacOS X 10.2.7 schlägt.. Würde sagen noch eine höhere Liga.

Genau (*lool)

Von: Mr.Mike (MacGuardians) | Datum: 04.07.2003 | #22
Die NASA hat hier 32-bittigen G3 Code _direkt_ auf dem G5 laufen lassen.

Wenn man das nicht vergisst, sagt der Test sehr wohl etwas aus, und zwar etwas für einige Leute sehr wichtiges:

Der G5 kann alten G3 Code "supersuperfast" abarbeiten!

Wenn Ihr wissen wollt, wie der G5 in diesem Test gegen einen Pentium 4 abschneidet, müsst Ihr dem P4 beispielsweise Pentium-II Code geben ;-)

Im weiteren sei darauf hingewiesen, was schon in anderen Artikeln zur Sprache kam: Es gibt keinen guten (= "schnell") FORTRAN Compiler für PowerPC ausser den von IBM.