Allgemeine Frage zum CPU vergleich (FLOPS)

ABV2

Ensign
Dabei seit
Aug. 2012
Beiträge
148
Hallo liebe Communitiy,

ich wollte rein aud interesse mal nachfragen, auf was man beim CPU vergleich achten muss.

Bzw. würde es nicht eigentlich reichen einfach die FLOPS der CPU zu vergleichen (mehr FLOps = schneller) oder falls nicht, warum reicht es nicht auf die FLOPs zu achten.



MfG
 
1. FLOPs sind nur die Gleitkommaoperationen, deine CPU besitzt neben FPU auch eine ALU für logische und Ganzzahloperationen. Deren Performance ist auch unter Umständen entscheidend. Beides ist jedoch in Rohperformance bzw. maximaler theoretischer Performance angegeben.
2. Wenn du eine einfache FLOP-Anwendung besitzt, bei welcher alle CPUs ihr volles Potential entfalten können, dann gilt das in der Tat.
3. Viele Anwendungen sind doch sehr komplex. Bei diesen Anwendungen kommt es nicht auf die Rohperformance an, sondern die Architektur der CPU insgesamt ist von Bedeutung: Wie gut funktioniert die Sprungvorhersage? Wie gut funktioniert die Pipeline? Wie gut funktioniert das Out-Of-Order Execution? Wie gut funktionieren die Caches oder die Speicherzugriffe? Ist die Anwendung gut genug parallelisierbar, damit alle CPU-Kerne genutzt werden können?
Je nachdem kann es vorkommen, dass viel der Rohperformance verpufft, und eine CPU mit einer grossen Rohperformance und dafür einer schlechteren Architektur wesentlich schlechter abschneidet, als eine CPU mit einer geringeren Rohperformance und dafür einer bessereren Architektur.
 
Zuletzt bearbeitet:
hi ABV2,

es kommt auf die software an bzw was du mit der cpu machen willst. also am besten benchmarks anschauen zu deinem anwendungsgebiet.

als bsp video kodierung kann der amd fx gut spiele derzeit weniger. es liegt an den programmen woraufhin die optimiert wurden, wenn überhaupt. flops sind ein teilaspekt darum reicht es nicht nur auf diesen aspekt zu achten.
 
Zu mal sind FLOPs häufig auch nur statistische Werte. Oftmals werden sie bestimmt, in dem einfach der Mittelwert der Laufzeit aller verfügbaren Gleitkommabefehle genommen wird und das dann auf Sekunden umgerechnet.

Deshalb sind FLOPs meiner Meinung nach für die Praxis komplett irrelevant, da auch sehr architekturbedingt (RISC mit weniger Gleitkommabefehlen kommt besser als CISC-Prozessor mit umfangreichen und teuren Operationen).

FLOPs lassen meiner Meinung nach so viel Rückschlüsse beim Vergleich von Prozessoren unterschiedlicher Architektur wie die reine Betrachtung der Taktraten.
 
Die AMDs haben zB pro Modul nur eine FP, aber 2 Integer Einheiten, da die reine FP Leistung zu vergleichen macht nur Sinn, wenn ausschliesslich die FP Einheiten benötigt werden, was im Normalfall aber nicht der Fall ist.
 
Zu mal sind FLOPs häufig auch nur statistische Werte. Oftmals werden sie bestimmt, in dem einfach der Mittelwert der Laufzeit aller verfügbaren Gleitkommabefehle genommen wird und das dann auf Sekunden umgerechnet.

Das sind in den Datenblättern angegebene theoretische Maximalwerte welche sie aus den Hardwareeigenschaften errechnen. ZB:
Ein Prozessor hat einen bestimmten Takt und mehrere Kerne. Jeder Kern hat eine FPU, welche jeden Takt mehrere Floatingpointbefehle parallel bearbeiten kann. Dadurch ergibt sich die theoretische Maximalperformance wie folgt:
FLOPS = Kerne * Takt * Zahl der parallelen FP-Befehle per FPU
 
vielen Dank für die Antworten,

hab mir schon fast gedacht das es so nicht funktioniert ^^

wäre ja auch zu einfach

MfG
 
Nai, da würde ich dir widersprechen.
Nicht jede FP-Operation braucht nur einen Takt.

FLOPS = Kerne * Takt * Zahl der parallelen FP-Befehle per FPU / durchschnittlicheAnzahlAnTaktenProFPBefehl

vielleicht war statistisch nicht das passende Wort, theoretisch wäre besser gewesen...
 
Dies war ein einfaches Beispiel, wie Hersteller bei der Berechnung der theoretischen Performance vorgehen. In der Realität sind die Werte meist auf eine bestimmte Operation bezogen, nämlich FMA (also x = a*b+c), wobei jeder FMA Befehl 2 FLOPs (1 Addition + 1 Multiplikation) enthält. Denn dieser Befehl ist am billigsten und dadurch kann man mit ihm den höchste FLOPS-Wert der CPU erzielen. Und einen hohen FLOPS-Wert will man ja haben, damit man die CPU möglichst gut verkaufen kann.

In der Tat besitzen die unterschiedlichen FP-Befehle jedoch einen unterschiedlichen CPI(Cycles Per Instruction)-Wert. Dieser beträgt bei FMA meist 1 während er bei anderen Befehlen wie einem sin oder cos wesentlich höher sein kann (afaik bei beiden in etwa 50; zumindest hab ich das irgendwo mal gelesen). Will man nun die durchschnittlichen FLOPS der CPU berechnen so kann man den CPI-Wert nicht, so wie von dir vorgeschlagen, einfach mitteln. Denn dieses Mitteln würde voraussetzen dass alle Befehle mit einer gleichen Häufigkeit in einem Programm auftreten, was jedoch (so gut wie) nie
der Fall ist. So kann man nur die theoretische maximale FLOP-Zahl für ein gegebenes Programm berechnen (bzw. eher abschätzen), wenn man dessen FLOP-Befehlszusammensetzung kennt:
FLOPS = Kerne * Takt * Zahl der parallelen FP-Befehle per FPU / Summe (AnzahlAnTaktenProFPBefehl * Auftrittswahrscheinlichkeit des Befehls) über alle Befehle
 
Zurück
Top