PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : A64 3200+ vs. A64 3200+: Welcher ist schneller?


mike49
2004-04-30, 17:36:06
Tja, welcher von beiden ist denn nun schneller: Der mit 2GHz und 1MB L2-Cache oder der neue mit 2.2GHz und 512KB L2-Cache? Haben ja beide AFAIK das gleiche Performance-Rating.

IMHO bringen die 200MHz auf jeden Fall mehr als der zusätzliche L2-Cache, leider habe ich aber bisher noch keinen direkten Vergleich gefunden.

CrazyIvan
2004-04-30, 18:30:06
Dann schau Dir doch den Vergleich zwischen 3000+ und 3200+ (2Ghz Version) an. Im Mittel verliert da der 3000+ weniger als 5%. Da der K8 aber gut mit der Taktrate skaliert, macht er das mehr als nur wett. Würde Dir derzeit eher zu dem schneller getakteten raten.

Allerdings:
Mit 64bit gewinnt die Größe des Caches wieder mehr an Bedeutung und vielleicht handelt man sich mit 512 KiB da nen gewaltigen Pferdefuss ein. In Anbetracht der Tatsache, dass aber alle S939 Athlon64 nur 512 KiB besitzen, scheints damit aber wohl doch nur halb so wild zu sein.

MechWOLLIer
2004-04-30, 18:39:29
Original geschrieben von CrazyIvan
Dann schau Dir doch den Vergleich zwischen 3000+ und 3200+ (2Ghz Version) an. Im Mittel verliert da der 3000+ weniger als 5%. Da der K8 aber gut mit der Taktrate skaliert, macht er das mehr als nur wett. Würde Dir derzeit eher zu dem schneller getakteten raten.

Allerdings:
Mit 64bit gewinnt die Größe des Caches wieder mehr an Bedeutung und vielleicht handelt man sich mit 512 KiB da nen gewaltigen Pferdefuss ein. In Anbetracht der Tatsache, dass aber alle S939 Athlon64 nur 512 KiB besitzen, scheints damit aber wohl doch nur halb so wild zu sein.

+++
Im Mom sollte der A64 mit 2,2Ghz den 2,0ghz trotz halbiertem Cache schneller sein. Allerdings hab ich gelesen, dass sich das im 64-Bit Modus wieder umdrehen könnte. Könnte mal einer erklären warum?

CrazyIvan
2004-04-30, 18:50:01
Na ganz einfach (erklärt ;) ).
64 bit Code ist vom Umfang her einfach größer als 32 bit Code. Natürlich nur dann, wenn man 64 bit lange Datentypen verwendet. Somit wird der Cache auch schneller voll --> kleiner Cache schlecht, da öfter Daten wieder vom RAM nachgeladen werden müssen.

Dalai-lamer
2004-05-01, 01:46:04
Wenn man sowieso übertaktet ist der mit 1 MB besser bedient, meiner Meinung nach =)

LOCHFRASS
2004-05-01, 01:58:22
Dem K7/K8 ist der L2 Cache praktisch egal, z.B. liegen zwischen Duron und Barton im Schnitt maximal 10%, beim A64 wirds kaum anders sein, vor allem da die Latencys durch den integrierten Memory-Controller deutlich gesenkt wurden.

zeckensack
2004-05-01, 05:20:05
Original geschrieben von CrazyIvan
Na ganz einfach (erklärt ;) ).
64 bit Code ist vom Umfang her einfach größer als 32 bit Code. Natürlich nur dann, wenn man 64 bit lange Datentypen verwendet. Somit wird der Cache auch schneller voll --> kleiner Cache schlecht, da öfter Daten wieder vom RAM nachgeladen werden müssen. Nicht wirklich ...
Das einzige was grösser wird, sind 64 Bit-Immediates, die auch nicht zwingend im Code enthalten sein müssen. Auch im 64 Bit-Modus sind 32 Bit-Immediates AFAIK noch legal. Die paar REX-Präfixe machen's auch nicht unbedingt fetter.

10% grösserer Code ist die offizelle Lesart, und ich habe auch keinen Grund, das anzuzweifeln. Man könnte evtl mal ein paar Linux-Binaries vergleichen ... :|

Bonuspunkt:
Der L2-Cache ist kein I-Cache.
Daten werden nur dann grösser, wenn diese Daten direkte Zeiger sind. Zeiger braucht man natürlich in irgendeiner Form immer, wenn man Daten wiederfinden will, aber ich behaupte mal, dass ein Stück Code, was nur Zeigerdaten benutzt, nichts sinnvolles tun kann ;)

Lokadamus
2004-05-01, 09:27:37
Original geschrieben von MechWOLLIer
+++
Im Mom sollte der A64 mit 2,2Ghz den 2,0ghz trotz halbiertem Cache schneller sein. Allerdings hab ich gelesen, dass sich das im 64-Bit Modus wieder umdrehen könnte. Könnte mal einer erklären warum? mmm...

Also ist der A64 mit 2,2 GHz und 512 KBit Cache schneller als ein A64 mit 2 GHz und 1 MBit Cache. Warum wohl ? 200 MHz bringen meistens eine kleinen Vorsprung. Interessant wird es eigentlich erst, wenn beide den gleichen Takt haben und viele Anwendungen im Hintergrund laufen, damit der Cache auch voll ausgelastet wird ...

Muh-sagt-die-Kuh
2004-05-01, 11:08:15
Welche Variante man nimmt sollte man einfach davon abhängig machen, welche Anwendungen man benutzt. Mal können 200 mhz mehr Takt einen Vorteil bringen, mal 1 MiB L2 Cache...das ist abhängig von dem Programm selbst und den Daten auf denen es arbeitet.

ShadowXX
2004-05-01, 12:33:41
[SIZE=1]Original geschrieben von zeckensack
10% grösserer Code ist die offizelle Lesart, und ich habe auch keinen Grund, das anzuzweifeln. Man könnte evtl mal ein paar Linux-Binaries vergleichen ... :|


Also unsere Binaries wurde ca. 30% grösser....(Viele, viele Zeiger)

Kommt es aber beim L2-Cache nicht auch darauf an, wie er Organisiert ist???

Davon mal abgesehen, das wenn ich schon im 64Bit Mode bin, ich dann eigentlich auch ganz gerne 64Bit Daten benutzen möchte...selbst wenn ich das nicht immer Ausnutze (die Breite)....

Ich glaube auch nicht, das viele anfangen werden Ihre Datentypen explizieter anzugeben, sonder stur "int" weiterbenutzen werden...

GloomY
2004-05-01, 13:09:31
Original geschrieben von Lokadamus
mmm...

Also ist der A64 mit 2,2 GHz und 512 KBit Cache schneller als ein A64 mit 2 GHz und 1 MBit Cache. Warum wohl ? 200 MHz bringen meistens eine kleinen Vorsprung. Interessant wird es eigentlich erst, wenn beide den gleichen Takt haben und viele Anwendungen im Hintergrund laufen, damit der Cache auch voll ausgelastet wird ... Es sind 1 MebiByte und 512 KibiBytes.

Bei mehr als einer Anwwendung (bzw. mehr als einem Thread) laufen diese im Prozessor nicht gleichzeitig sondern nacheinander. Mit mehr Anwendungen kannst du also einen Cache nicht mehr auslasten als mit einer einzelnen Anwendung. Solange die Programme nicht explizit gleiche Daten nutzen, sind bei einem Prozesswechsel die alten Inhalte der Caches für den neuen Prozess auch nicht interessant, da dessen virtueller Adressraum auf einen ganz anderen Bereich im realen Adressraum abgebildet wird. Die Anzahl der Prozesse hat also im Allgemeinen keinen Einfluss auf die Cache-Nutzung, -Effizienz usw.
Original geschrieben von Muh-sagt-die-Kuh
Welche Variante man nimmt sollte man einfach davon abhängig machen, welche Anwendungen man benutzt. Mal können 200 mhz mehr Takt einen Vorteil bringen, mal 1 MiB L2 Cache...das ist abhängig von dem Programm selbst und den Daten auf denen es arbeitet. Korrekt. Jedoch spekuliere ich mal, dass mehr (heutige) Anwendungen vom erhöhten Takt profitieren als von mehr Cache. Das kann in ein paar Monaten allerdings schon wieder anders aussehen...
Original geschrieben von ShadowXX
Also unsere Binaries wurde ca. 30% grösser....(Viele, viele Zeiger)

Kommt es aber beim L2-Cache nicht auch darauf an, wie er Organisiert ist???Prinzipiell ja, das hat aber nichts mit dem 64 Bit Modus direkt zu tun. Man muss den Cache nicht umorganisieren, bloss weil man den 64 Bit Modus nutzt (von den notwendigerweise größeren Tags mal abgesehen). Die Assotiativität oder die Größe der Lines muss nicht verändert werden.
Original geschrieben von ShadowXX
Davon mal abgesehen, das wenn ich schon im 64Bit Mode bin, ich dann eigentlich auch ganz gerne 64Bit Daten benutzen möchte...selbst wenn ich das nicht immer Ausnutze (die Breite)....

Ich glaube auch nicht, das viele anfangen werden Ihre Datentypen explizieter anzugeben, sonder stur "int" weiterbenutzen werden... Für einzelne "Int"s wahrscheinlich schon. Wenn es aber um Arrays oder Structs geht, dann weiss ich nicht, ob die Programmierer dann so verschwenderisch mit Speicherplatz umgehen.