GFlops-Leistung von Prozessoren ausrechnen

Im Artikel „Benchen wie die Profis“ in c’t 11/20 stellen Sie das Programm Flops vor. Wie kann ich überprüfen, ob mein Prozessor dabei die volle Leistung bringt?

vorlesen Druckansicht
GFlops-Leistung von Prozessoren ausrechnen
Lesezeit: 2 Min.

Im Artikel Benchen wie die Profis in c’t 11/20 stellen Sie das Programm Flops vor. Wie kann ich überprüfen, ob mein Prozessor dabei die volle Leistung bringt?

Flops misst die Gleitkommaleistung von Desktop-, Notebook- und Serverprozessoren mit verschiedenen modernen Befehlssatzerweiterungen wie AVX (Advanced Vector Extensions) und FMA3 (Fused multiply-add mit drei Operanden). Typischerweise vergleicht man bei CPUs die Performance bei doppelter Genauigkeit mit 64 Bit (FP64, Double Precision/DP) in der Einheit Flops (Floating Point Operations Per Second).

Dieser Wert lässt sich nachprüfen, weil man die maximale Gleitkommaleistung einer CPU leicht berechnen kann. Die Formel dafür lautet: Kernanzahl × Taktfrequenz in GHz × CPU-Instruktionen pro Takt = Rechenleistung in GigaFlops. Die Kernanzahl bezieht sich allein auf die physischen Kerne, SMT oder Hyper-Threading zählen nicht mit hinein. Die Takt­frequenz ist bei modernen CPUs jedoch gar nicht so einfach zu bestimmen, weil diese durch den Turbo je nach Auslastung der Recheneinheiten und verfügbarem thermischen Budget schwankt. Den aktuellen Takt zeigen Tools wie CPU-Z oder HWInfo64 an, die Anzeige des Task-­Managers von Windows 10 ist dafür zu unzuverlässig. Beim Zwölfkerner Ryzen 9 3900X lag die Taktfrequenz bei Volllast mit AVX2/FMA3 ungefähr bei 4,15 GHz.

Das Programm Flops misst den Durchsatz des PC-Prozessors (hier ein Intel Core i5-8250U) bei verschiedenen Instruktionen und hilft so, dessen Leistungsfähigkeit einzuschätzen.

Die Zahl der Instruktionen pro Takt bestimmt die Architektur: Die zwei 256 Bit breiten FMA-Einheiten eines Zen-2-Kerns können jeweils zwei Operationen abarbeiten und kommen somit zusammen auf 16 FP64-Operationen pro Taktzyklus. Dieser Wert gilt auch für Intels Desktop- und Notebook-CPUs der Serien Core i-4000 bis Core i-10000 sowie für die Ice-Lake-­Mobilprozessoren Core i-1000G. Letztere haben nur eine FMA-Einheit, aber diese kann per AVX-512 doppelt so breite Befehle ausführen. Die Core-X-CPUs schaffen mit zwei solcher Einheiten 32 Flops pro Takt. Ryzen-Prozessoren der ersten beiden Generationen (Zen, Zen+) kommen lediglich auf 8 FP64-Operationen.

Multipliziert man nun die 12 Kerne des Ryzen 3900X mit 4,15 GHz Takt und 16 Operationen pro Takt, kommt man auf 796,8 GFlops, was sich mit unserem Messwert von 788 Milliarden Gleitkomma­operationen pro Sekunde recht genau deckt. (chh)