PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Benchmarks: SuperPi (ein bench ohne Gesicht)


BlackBirdSR
2005-11-07, 13:44:29
Benchmark: SuperPi
Offizieller Download (ftp://pi.super-computing.org/windows/super_pi.zip)
Benchmark-Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=39573)
Setzt ausschließlich auf die CPU zur Berechnung von Pi

Ich denke, jeder kennt SuperPi.
Es taucht in sehr vielen Reviews auf, und gilt bei Overclockern geradezu als heiliger Gral. Dabei fällt auf, dass niemand wirklich weiss, wie SuperPi funktioniert.
In keinem Review wird beschrieben, was SuperPi denn nun testet. Einige wagen zwar völlig bodenlose (und wohl auch falsche) Angaben, wirkliche Anhaltspunkte gibt es aber nicht.

Es ist natürlich erschreckend, wie so ein Programm, das nahezu komplett in einen dunklen Schleier gehüllt ist, so viel Bedeutung ansammel kann. Aber vielleicht ist es ja genau dieser Aspekt, den SuperPi so grandios macht.
Ein völlig simples Programm, welches am Ende einen noch simpleren Wert ausspuckt, mit dem man angaben und vergleichen kann.
Kritisch wird es, sobald SuperPi benutzt wird, um Aussagen über die wirkliche Leistung der CPUs zu machen.
Wie kann das erlaubt sein, wenn man nicht die geringste Ahnung hat, warum eine CPU in SuperPi gut oder schlecht abschneidet?

Bei modernen CPUs sieht es wie folgt aus.

PentiumM
K8
Pentium4

Bisher lässt sich festhalten, dass SuperPi wahrscheinlich intenisv mit integer Berechnungen arbeitet. Ableiten lässt sich auch, dass Sprünge wohl eine große Rolle spielen.
Das sollte also CPUs mit hoher Integer-Leistung, kürzeren Pipelines und schnellen Caches bevorzugen.
Das trifft natürlich auf den PentiumM zu. Aber wieviel davon habe ich mir nur unbewusst dadurch abgeleitet, dass ich weiss dass es dem PentiumM schmecken muss?

Der Pentium4 besitzt ebenfalls einen sehr schnellen L1 Cache, der zusammen mit dem TraceCache eigentlich gute Ergebnisse erzielen sollte.
Natürlich kommen dazu mindestens verschwendete Taktzyklen bei einem Fehlsprung. Dafür hat der P4 aber auch die effektivste Sprungvorhersage.
Ein Vergleich zwischen Northwood und Prescott müsste einige aufschlussreiche Details ergeben, da Prescott bei L1 Cache und der Anzahl an Pipelinestufen große Unterschiede aufweist.

Den größsten L1 Cache mit durchaus hoher Geschwindigkeit besitzt der K8. Während sich bei SSE2 und 128Bit Datentransfers einige Probleme aufzeigen, gilt das nicht für 32 und 64Bit Transfers. Dazu kommen 3 ALUs, 3 AGUs und die Möglichkeit, 3 MacroOps pro Takt zu verarbeiten. Was bei Integer und Speicherzugriffen durchaus ansehnlich ist.
Der PentiumM nutzt eine ähnliche Methode, wenn vielleicht auch etwas ausgefuchster. Dort sorgt die µOps Fusion und Stack Execustion Engine für gesteigerte Effizienz.
Dafür besitzt er wohl die bessere Sprungvorhersage und eine geringere Latenz zum L2 Cache.
Ingesamt besitzt der PM !anscheinend! die effizienteste Architektur für Integerberechnungen. Zu welchen Koniditionen ist unbekannt.

Was jetzt fehlt sind Informationen zu SuperPi selbst.
Mit welchem Compiler, und welchem Target wurde es erstellt?
Assembler oder nicht?
Welche Präzision nutzt es, wird ausschließlich die Integereinheit benutzt und wie sprungintensiv ist das Ganze?

bekannt ist eigentlich nur:
Gauss-Legendre algorithm

1. Initial value setting;

a = 1 b = 1 / SqRt(2) t = 1/4 x = 1

2. Repeat the following statements until the difference of a and b is within the desired accuracy;

y = a

a = (a+b) / 2

b = SqRt(b*y)

t = t − x * (y−a)²

x = 2 * x

3. Pi is approximated with a, b and t as;

π = ((a+b)²) / (4*t)

=Floi=
2006-08-18, 16:47:15
ich muss dir recht geben und mit dem core duo 2 wird der wert schon fast ad absurdum geführt

der sourcecode müsste aber vorhanden sein da es ja andere versionen mit mehr dezimalstellen gibt
generell wäre auch der umstieg auf 4 oder 32 mio sinnvoll und für meinen geschmack spielen die ram timings eine viel zu große rolle