Wie viele GFlops liefert mein PC?

Praxis & Tipps | Tipps & Tricks

In Supercomputer-Ranglisten geht es um Rechenleistungen im Bereich von Petaflops pro Sekunde. Was aber leistet eigentlich ein ganz normaler PC?
Das hängt von der genauen Aufgabenstellung ab. Die Supercomputer-Performance wird oft mit dem Benchmark Linpack vermessen, der Gleitkommaoperationen (Floating-point Operations, Flops) mit doppelt genauen Werten (Dual Precision, DP) bei der Lösung von Matrizengleichungen ausführt. Diese DP-Zahlen werden von 64-Bit-Werten repräsentiert, entsprechend geht es bei Single-Precision-Daten (SP) um 32-Bit-Werte.
Gleitkomma-Rechenleistung (Auswahl)
Jeder Kern eines aktuellen Athlon, Phenom, Opteron, Core 2, Core i oder Xeon enthält zwei Ausführungseinheiten für Streaming SIMD Executions (SSE), von denen jede pro Taktschritt einen 128-Bit-Wert verarbeiten kann. Das entspricht jeweils zwei DP- oder vier SP-Werten. Ein einzelner solcher CPU-Kern liefert also im Optimalfall vier DP-Flops pro Zyklus. Für einen Quad-Core mit 3,0 GHz Taktfrequenz ergeben sich daraus 4 · 4 · 3 = 48 Gigaflops pro Sekunde (eigentlich also GFlops/s; der Lesbarkeit halber bleiben wir im Folgenden aber bei der üblichen Schreibweise GFlops). Für SP-Berechnungen liegt die Rechenleistung theoretisch genau doppelt so hoch. Ausführungseinheiten für Advanced Vector Extensions (AVX), die in Intels jüngsten Core-i-Prozessoren stecken und bei AMD mit „Bulldozer“ kommen, verarbeiten 256-Bit-Werte in einem Rutsch, verdoppeln also die theoretische Performance im Vergleich zu SSE. Abgespeckte Stromsparprozessoren wie Intels Atom enthalten lediglich eine einzige SSE-Einheit pro Kern.
Je nach Ausstattung des Prozessors – Größe der Caches, Optimierung der Einheiten, Speicheranbindung – lässt sich die maximale Rechenleistung in der Praxis mehr oder weniger hoch ausreizen. Anhaltspunkte liefern Linpack-Ergebnisse aus der Top500-Liste, die üblicherweise mit hoch optimiertem Code durchgeführt werden. So besteht etwa der Cray XE6 „Hopper“, die aktuelle Nummer 8 der Liste, aus 12 784 Opteron-Prozessoren mit je 12 Kernen und 2,1 GHz Taktfrequenz. Das theoretische Maximum der Rechenleistung – die Top500-Liste nennt den Wert RPeak – dieser 153 408 Cores beträgt 1,28863 PFlops. Das Linpack-Ergebnis beträgt 1,054 PFlops, also 81,8 Prozent des Maximalwertes. „Normale“ Software schöpft deutlich weniger der maximalen CPU-Performance aus und die Effizienz schwankt stark. Wie die Tabelle zeigt, liefert der Cinebench-Benchmark auf verschiedenen Prozessoren mit identischer GFlops-Leistung höchst unterschiedliche Ergebnisse (Core i5-2300/Core i5-760, Core i3-2100/Phenom II X2 550).
Grafikkarten mit ihren zahlreichen parallel arbeitenden Shader-Kernen liefern noch viel höhere Maximalleistungen, Spitzen-GPUs mehr als 2 TFlops – jedoch bloß bei SP-Operationen. Bei doppelt genauen Berechnungen liegt die Rechenleistung sehr viel niedriger, falls die jeweilige GPU sie überhaupt beherrscht. Bisher ist die Programmierung von GPUs für allgemeine (General Purpose-)Aufgaben mit Sprachen wie CUDA oder OpenCL noch recht schwierig und die Effizienz des GPGPU-Computing schwankt je nach Art der mathematischen Problemstellung stark. (ciw)

Kommentare