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?
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.
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)