Omnicron
2006-02-12, 03:25:35
Hi, ich wollte mal die Geschwindigkeitsunterschiede zwischen 32 und 64 Bit Operationen testen. Jetzt habe ich noch ein paar Sachen dazugepackt und es Bench genannt. ;D
Der Bench berechnet folgende Sachen:
Bei Integer64 Addition, Subtraktion, Multiplikation und Dividerung mit 64 Bit Werten. Bei der 32 Bit Version müssen die natürlich durch mehrere Befehle gemacht werden, dementsprechend langsamer.
Bei Integer32 einfach mit 32 Bit Werten, bei beiden Versionen gleich.
Triangle berechnet die Länge einer Dreiecksseite, 32 Bit Werte, aber 64 Bit CPUs haben hier den Vorteil ihrer zusätzlichen Register um Werte zwischenzuspeichern.
Mem copy kopiert 50 MB im Speicher hin und her, wenn vorhanden mit SSE2, andernfalls mit SSE.
Mem chksum berechnet eine 64 Bit checksumme aus den 50 MB. 64 Bit CPUs haben hier wieder einen Vorteil.
FPU Planets berechnet das Volumen der Planeten in unserem Sonnensystem.
FPU Box-Muller berechnet Zufallsvariablen nach der Box-Muller Formel.
In beiden Versionen gleich.
In dem Zip Archiv ist die 32 und 64 Bit Version. Die 64er läuft natürlich nur unter Win64 mit 64 Bit CPUs.
http://rapidshare.de/files/13071636/Kurti64.rar.html
Die Ergebnisse werden auch in eine result32/64.txt geschrieben.
Hier sind auf meinem Opteron@2600Mhz einmal die 64 und 32 Ergebnisse:
Kurti64 V1.0 Results
Integer64:
===========
>>> Addition: 0.967237 secs
>>> Subtraction: 0.932058 secs
>>> Multiplication: 1.756382 secs
>>> Division: 9.253612 secs
> Total: 12.909289 secs
Integer32:
===========
>>> Addition: 0.823172 secs
>>> Subtraction: 0.813242 secs
>>> Multiplication: 1.317948 secs
>>> Division: 5.047155 secs
> Total: 8.001516 secs
>>> Triangle: 1.629597 secs
Memory:
========
>>> Mem copy: 7.629754 secs | 1311 mb/s
>>> Mem chksum: 2.982232 secs
> Total: 10.611986 secs
FPU:
=====
>>> Planets: 5.291297 secs
>>> Box-Muller: 8.792708 secs
> Total: 14.084005 secs
>>>>>>> TOTAL: 47.236393 secs
Kurti32 V1.0 Results
Integer64:
===========
>>> Addition: 1.398841 secs
>>> Subtraction: 1.399580 secs
>>> Multiplication: 5.284890 secs
>>> Division: 19.650450 secs
> Total: 26.334181 secs
Integer32:
===========
>>> Addition: 0.815032 secs
>>> Subtraction: 0.852972 secs
>>> Multiplication: 1.278787 secs
>>> Division: 5.049225 secs
> Total: 7.996015 secs
>>> Triangle: 1.868646 secs
Memory:
========
>>> Mem copy: 7.450896 secs | 1342 mb/s
>>> Mem chksum: 4.163993 secs
> Total: 11.614889 secs
FPU:
=====
>>> Planets: 5.330923 secs
>>> Box-Muller: 8.761853 secs
> Total: 14.092777 secs
>>>>>>> TOTAL: 61.906508 secs
Der Bench berechnet folgende Sachen:
Bei Integer64 Addition, Subtraktion, Multiplikation und Dividerung mit 64 Bit Werten. Bei der 32 Bit Version müssen die natürlich durch mehrere Befehle gemacht werden, dementsprechend langsamer.
Bei Integer32 einfach mit 32 Bit Werten, bei beiden Versionen gleich.
Triangle berechnet die Länge einer Dreiecksseite, 32 Bit Werte, aber 64 Bit CPUs haben hier den Vorteil ihrer zusätzlichen Register um Werte zwischenzuspeichern.
Mem copy kopiert 50 MB im Speicher hin und her, wenn vorhanden mit SSE2, andernfalls mit SSE.
Mem chksum berechnet eine 64 Bit checksumme aus den 50 MB. 64 Bit CPUs haben hier wieder einen Vorteil.
FPU Planets berechnet das Volumen der Planeten in unserem Sonnensystem.
FPU Box-Muller berechnet Zufallsvariablen nach der Box-Muller Formel.
In beiden Versionen gleich.
In dem Zip Archiv ist die 32 und 64 Bit Version. Die 64er läuft natürlich nur unter Win64 mit 64 Bit CPUs.
http://rapidshare.de/files/13071636/Kurti64.rar.html
Die Ergebnisse werden auch in eine result32/64.txt geschrieben.
Hier sind auf meinem Opteron@2600Mhz einmal die 64 und 32 Ergebnisse:
Kurti64 V1.0 Results
Integer64:
===========
>>> Addition: 0.967237 secs
>>> Subtraction: 0.932058 secs
>>> Multiplication: 1.756382 secs
>>> Division: 9.253612 secs
> Total: 12.909289 secs
Integer32:
===========
>>> Addition: 0.823172 secs
>>> Subtraction: 0.813242 secs
>>> Multiplication: 1.317948 secs
>>> Division: 5.047155 secs
> Total: 8.001516 secs
>>> Triangle: 1.629597 secs
Memory:
========
>>> Mem copy: 7.629754 secs | 1311 mb/s
>>> Mem chksum: 2.982232 secs
> Total: 10.611986 secs
FPU:
=====
>>> Planets: 5.291297 secs
>>> Box-Muller: 8.792708 secs
> Total: 14.084005 secs
>>>>>>> TOTAL: 47.236393 secs
Kurti32 V1.0 Results
Integer64:
===========
>>> Addition: 1.398841 secs
>>> Subtraction: 1.399580 secs
>>> Multiplication: 5.284890 secs
>>> Division: 19.650450 secs
> Total: 26.334181 secs
Integer32:
===========
>>> Addition: 0.815032 secs
>>> Subtraction: 0.852972 secs
>>> Multiplication: 1.278787 secs
>>> Division: 5.049225 secs
> Total: 7.996015 secs
>>> Triangle: 1.868646 secs
Memory:
========
>>> Mem copy: 7.450896 secs | 1342 mb/s
>>> Mem chksum: 4.163993 secs
> Total: 11.614889 secs
FPU:
=====
>>> Planets: 5.330923 secs
>>> Box-Muller: 8.761853 secs
> Total: 14.092777 secs
>>>>>>> TOTAL: 61.906508 secs