CPU-Tuning Was Sie über Gleitkomma-Berechnungen wissen sollten

Autor / Redakteur: Michael Parker * / Margit Kuther

DSPs, GPUs und FPGAs dienen als Beschleuniger für viele CPUs und bieten Vorteile bei Performance und Energie-Effizienz. Doch wie lässt sich die Performance von DSP-, GPU- und FPGA-Architekturen auf Basis ihrer FLOPS-Werte vergleichen? Altera gibt Auskunft.

Anbieter zum Thema

Der IEEE-Standard 754 unterscheidet vier Darstellungen: einfach genaue (single), erweiterte einfach genaue (single extended), doppelt genaue (double) und erweiterte doppelt genaue (double extended) Zahlenformate. Bei den erweiterten Formaten ist nur jeweils eine Mindestbitzahl vorgeschrieben. Die genaue Bitzahl und der Biaswert bleiben dem Implementierer überlassen.
Der IEEE-Standard 754 unterscheidet vier Darstellungen: einfach genaue (single), erweiterte einfach genaue (single extended), doppelt genaue (double) und erweiterte doppelt genaue (double extended) Zahlenformate. Bei den erweiterten Formaten ist nur jeweils eine Mindestbitzahl vorgeschrieben. Die genaue Bitzahl und der Biaswert bleiben dem Implementierer überlassen.
(Quelle: IEEE/Wikipedia)

Bei der Vielzahl vorhandener Rechenarchitekturen benötigen Entwickler eine einheitliche Methode zum Vergleich dieser beiden Werte. Üblich ist die Messung der Gleitkomma-Operationen pro Sekunde (FLOPs; Floating-Point Operations per Second), wobei ein FLOP als Addition oder Multiplikation einer Zahl mit einfacher (Single 32-Bit) oder doppelter (Double 64-Bit) Genauigkeit entsprechend des Standards IEEE 754 definiert ist.

Alle höhergeordneten Funktionen wie Division, Quadratwurzel und Trigonometrie lassen sich aus Addierern und Multiplizierern erstellen. Da diese Operatoren und andere gängige Funktionen wie die Fast-Fourier-Transformation (FFT) und Matrix-Operatoren sowohl Addierer als auch Multiplizierer erfordern, besteht in allen diesen Architekturen häufig ein Verhältnis von 1:1 zwischen beiden.

Wie lässt sich nun die Performance von DSP-, GPU- und FPGA-Architekturen auf Basis ihrer FLOPS-Werte vergleichen? Der FLOPS-Spitzenwert wird durch Multiplikation der Summe von Addierern und Mulitplizierern mit der maximalen Betriebsfrequenz berechnet. Damit ergibt sich der theoretische Grenzwert für Berechnungen.

Bildergalerie
Bildergalerie mit 9 Bildern

Dieser wird in der Praxis nie erreicht, da es generell nicht möglich ist, Algorithmen so zu implementieren, dass sie alle Recheneinheiten gleichzeitig beschäftigen. Die Zahl bietet jedoch einen guten Anhaltspunkt für Vergleiche.

DSP TMS320C667x und Tesla K20

Betrachten wir zuerst die DSP-GFLOPS-Performance. Dazu wurde ein DSP von Texas Instruments gewählt: der „TMS320C667x“. Er enthält acht DSP Cores, wobei jeder Core über zwei Verarbeitungs-Subsysteme verfügt.

Jedes Subsystem enthält vier Single-Precision Gleitkomma-Addierer und vier Single-Precision Gleitkomma-Multiplizierer. Dies entspricht insgesamt 64 Addierern und 64 Multiplizierern. Die schnellste Version läuft mit 1,25 GHz und bietet somit maximal 160 GFLOPs (siehe: Abbildung 1).

GPUs sind äußerst beliebte Bausteine – vor allem für die Bildverarbeitung. Einer der leistungsfähigsten ist „Nvidia Tesla K20“. Der Baustein basiert auf „CUDA“ Cores, die jeweils aus einer Single-Gleitkomma Multiplizier-/Addier-Einheit bestehen. Sie führt pro Taktzyklus in Single-Precision Gleitkomma-Konfiguration aus. In jeder Streaming Multiprocessor (SMX) Processing Engine finden sich 192 CUDA Cores.

Der K20 enthält derzeit 15 SMX, obwohl nur 13 zur Verfügung stehen (aufgrund der Prozessausbeute). Damit stehen insgesamt 2496 CUDA Cores zur Verfügung (mit 2 FLOPs pro Taktzyklus), die mit maximal 706 MHz betrieben werden. Die Single-Precision Gleitkomma-Performance beträgt damit insgesamt 3520 GFLOPs (siehe: Abbildung 2).

Die Gleitkomma-Engine

FPGA-Anbieter wie Altera bieten in ihren Bausteinen nun Gleitkomma-Engines in Hardware. Ein Single-Precision Gleitkomma-Multiplizierer und -Addierer wurde in die Hard-DSP-Blöcke der programmierbaren Logikstruktur integriert. Ein mittelgroßer FPGA der Altera FPGA-Serie Midrange Arria 10 ist der 10AX066. Er bietet 1678 DSP-Blöcke, von denen jeder 2 FLOPs pro Taktzyklus bereitstellt, was insgesamt 3376 FLOPs pro Taktzyklus ergibt.

Bei einer Taktfrequenz von 450 MHz (für Gleitkomma; die Festkomma-Modi sind höher) stehen somit 1520 GFLOPs bereit. Über eine ähnliche Berechnung kommt Altera auf 10.000 GFLOPs oder 10 TeraFLOPs Single-Precision-Performance bei den „FPGAs Highend Stratix 10“. Dies wird durch eine Kombination aus höherer Taktrate und größeren Bausteinen mit wesentlich mehr DSP-Rechenressourcen erzielt (siehe: Abbildung 3).

(ID:43625310)