Wie ermittle ich die Anzahl der FLOPs, zu denen mein Computer fähig ist?


15

Ich möchte die theoretische Anzahl der FLOPs (Floating Point Operations) ermitteln, die mein Computer ausführen kann. Kann mir bitte jemand dabei helfen. (Ich möchte meinen Computer mit einigen Supercomputern vergleichen, um eine Vorstellung von dem Unterschied zwischen ihnen zu bekommen.)

Antworten:


9

Die theoretische Spitzen-FLOP / s ergibt sich aus: Die Anzahl der Kerne ist einfach. Die durchschnittliche Frequenz sollte theoretisch eine gewisse Menge an Turbo Boost (Intel) oder Turbo Core (AMD) berücksichtigen, die Betriebsfrequenz ist jedoch eine gute Untergrenze. Die Operationen pro Zyklus sind architekturabhängig und können schwer zu finden sein (8 für SandyBridge und IvyBridge, siehe Folie 26 ). Es ist das Thema dieser Stapelüberlauffrage , die Zahlen für eine Reihe moderner Architekturen enthält.

Anzahl der KerneDurchschnittliche HäufigkeitOperationen pro Zyklus

1
Ok, ich habe 2 Kerne, Betriebsfrequenz: 1,8 GHz, Intel Turbo Boost-Technologie: 3,00 GHz. Ich kann die Operationen pro Zyklus nicht finden. Hier ist die Website: ark.intel.com/products/75460/… Danke
Ol "Zuverlässige

Haswell kann 16 DP / Zyklus ausführen. Ich habe gerade einen Link im Antworttext zu einer SO-Antwort hinzugefügt.
Max Hutchinson

Bedeutet dies, dass mein Computer Folgendes kann: 2 x 3.000.000.000 Hz x 16 = 96 Giga-FLOPs?
Ol 'Reliable

Dies bedeutet, dass es je nach tatsächlicher Durchschnittsfrequenz zwischen 2 * 1,8 GHz * 16 DP = 57,6 GFLOP / s und 96 GFLOP / s liegen kann. Wenn Sie eine einzelne Zahl verwenden müssen, ist 57,6 die gerechtere, IMO.
Max Hutchinson

2
FLOP-Raten sind im Allgemeinen ein schlechtes Maß für die "Güte" eines Prozessors. Siehe zum Beispiel scicomp.stackexchange.com/questions/114/… . Möglicherweise möchten Sie über die Begrenzung der Kosten Ihrer Aufgabe nachdenken (z. B. Compute Bound vs. Memory Bound vs. Disk Bound) und sich auf die relevante Hardware (Computersystem, Speichersystem, E / A) konzentrieren.
Max Hutchinson

4

Sie müssen das Modell und den Hersteller der CPUs in Ihrem Computer kennen. Sobald Sie das haben, können Sie auf der Website des Anbieters (oder vielleicht auf Wikipedia) die Taktrate, die Anzahl der Chips / Sockel, die Anzahl der Kerne pro Chip, die Anzahl der Gleitkommaoperationen pro Zyklus und die Vektorbreite dieser Operationen nachschlagen . Dann multiplizieren Sie einfach.

Nehmen wir zum Beispiel die Intel Xeon E5-2680 "Sandy Bridge" -Prozessoren in Stampede, wo ich arbeite. Die Spezifikationen sind:

  • 2,7 GHz
  • 2 Chips / Knoten, 8 Kerne / Chip
  • 2 Vektoranweisungen / Zyklus
  • 256 Bit breite AVX-Befehle (4 simultane Operanden mit doppelter Genauigkeit)

Multiplizieren dieser Werte ergibt 345,6 GF / Knoten oder 2,2 PF für den nicht beschleunigten Teil des Systems.

Wir denken normalerweise in 64-Bit-Operationen mit doppelter Genauigkeit, da dies die Genauigkeit ist, die für die große Mehrheit unserer Benutzer erforderlich ist. Sie können die Berechnung jedoch auch mit einfacher Genauigkeit wiederholen, wenn Sie möchten. Dies ändert normalerweise nur den letzten Faktor, z. B. 8 SP-Flops / Befehl anstelle von 4 DP-Flops / Befehl, kann sich jedoch stark davon unterscheiden. Ältere GPUs erreichten zum Beispiel nur eine DP von etwa 1/8 der SP-Rate. Wenn Sie jemals eine Zahl für Ihr System angeben, sollten Sie genau angeben, welche Zahl Sie verwendet haben, wenn dies nicht die doppelte Genauigkeit ist, da die Leute sonst davon ausgehen, dass dies der Fall ist.

Wenn Ihr Chip FMA-Befehle (Fused Multiply Add) unterstützt und diese mit voller Geschwindigkeit ausführen kann, werden diese von den meisten Benutzern als 2 Gleitkommaoperationen gezählt, obwohl ein Hardware-Leistungsindikator sie möglicherweise nur als einen Befehl zählt.

Schließlich können Sie dies auch für alle in Ihrem System möglicherweise vorhandenen Beschleuniger (z. B. eine GPU oder ein Xeon Phi) tun und diese Leistung zur CPU-Leistung hinzufügen, um eine theoretische Gesamtsumme zu erhalten.


Es ist nicht genug, das CPU-Modell zu kennen, man muss die tatsächlichen Betriebsfrequenzen
herausfinden

@Aksakal, für eine theoretische Analyse ist es wahrscheinlich in Ordnung, die Nennfrequenz auszuwählen. Es ist schwer zu sagen, mit welcher Frequenz Ihre Chips tatsächlich laufen, da dies von der Arbeitsbelastung und der Qualität Ihrer Klimaanlage abhängen kann.
Bill Barth

2

Ich verstehe, dass Sie nach dem theoretischen Wert gefragt haben, aber da dieser für jeden realen Code, auch für LINPACK, fast immer unzugänglich ist, möchten Sie möglicherweise nur (optimiertes) DGEMM für sehr große Matrizen ausführen. Ich bevorzuge diese Methode, weil sie einige der Mängel bestimmter Prozessoren aufdeckt, die verhindern, dass sie ihren theoretischen Spitzenflop-Wert erreichen.

Beispielsweise führen NVIDIA-GPUs derzeit Ganzzahl- und Gleitkommaoperationen in derselben Pipeline aus. Dies bedeutet, dass Sie das theoretische Peakflop / die theoretischen Peakflops nur erreichen können, wenn Sie überhaupt keine Ganzzahlberechnung durchführen . Da die Array-Indizierung und jede andere Form des Datenzugriffs irgendwo eine Ganzzahl-Arithmetik erfordert, kann kein Code das theoretische Peak-Flop / die theoretischen Peak-Flops auf einer NVIDIA-GPU erreichen. In den meisten Fällen sieht man ~ 80% als Obergrenze. Bei CPUs, die gleichzeitig Ganzzahl- und Gleitkommaoperationen ausführen, ist dies kein Problem.

Bei einigen GPU-ähnlichen Multicore-Prozessoren wie Intel Knights Corner und Blue Gene / Q ist es bei ähnlichen Pipeline-Problemen schwieriger, den Peak Flop / s zu erreichen als bei herkömmlichen CPUs (obwohl beide mindestens ~ 90% des Peaks in großen DGEMM erreichen können ).


Warum kann kein Code den theoretischen Peak Flop / die theoretischen Peak Flops einer NVIDIA-GPU erreichen?
Skytree

Siehe Abschnitt 2. Dies alles war jedoch für ältere Architekturen relevant. Neuere NVIDIA-Architekturen können gleichzeitig Ganzzahlen und Gleitkommazahlen ausführen und in großen DGEMM-Systemen> 90% der Spitzenwerte erreichen.
Jeff
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.