Prozessor-Tests EEMBC stellt Gleitkomma-Benchmark-Suite vor

Intel vs. ARM - wer hat die besseren Embedded-Karten?
Benchmarks helfen, die schnellsten Prozessoren zu ermitteln - doch viele Werte sind durch Compiler-Hersteller und -Einstellungen manipulierbar.

Das Embedded Microprocessor Benchmark Consortium (EEMBC) hat mit FPMark eine neue Benchmark-Suite entwickelt, welche die Leistung von Embedded-Prozessoren mit Gleitkomma-Einheiten (FPU) misst.

Die Gleitkomma-Darstellung ermöglicht eine genauere Berechnung von Bruchzahlen als Festpunktzahlen (Integer), weil sich über die darstellung von Mantisse und Exponent der Dezimalpunkt verschieben lässt. Darüber hinaus macht das Gleitkommaformat numerische Berechnung in vielen Fällen wesentlich einfacher und viele Algorithmen nehmen mit Gleitkomma-Berechnungen bei ähnlicher Prezision weniger Taktzyklen als Festkomma-Code in Anspruch.

Die FPMark-Suite verwendet 10 verschiedene Kernel mit 53 Workloads, von denen sich jeder selbst überprüft, um die korrekte Ausführung des Benchmarks zu gewährleisten. Die Workloads basieren auf der gleichen Infrastruktur wie EEMBC MultiBench so dass der Benutzer mehrere Kontexte starten kann. Die Kernel in FPMark sind eine Mischung aus Allzweck-Algorithmen (wie schnelle Fourier-Transformation, lineare Algebra, Arcus-Tangens-Funktion, Fourier-Koeffizienten-Berechnung, Horner-Schema, LR-Zerlegung und Black-Scholes-Gleichung) und komplexe Algorithmen (wie ein neuronales Netzwerk, ein Ray-Tracer und eine erweiterte Version der Livermore-Schleife).

Bei individuellen Ergebnissen wird die Rechenleistung in Iterationen pro Sekunden angegeben, dazu kommt noch die verwendete Präzision (Dp oder Sp) und der eingesetzte Datensatz (S, M oder L für Small, Medium und Large). Ein Ergebnis von 8,25 bei doppelter Präzision und kleinem Datensatz würde daher mit 8,25 DpS-FPMarks angegeben.

Auf höchster Ebene wird dann der FPMark als geometrisches Mittel aus allen Einzelergebnissen (SpS, SpM, SpL, DpS, DpM und DpL) berechnet. Für Low-End-Mikrocontroller gibt es noch den MicroFPMark, der dem SpS-FPMArk entspricht und ausschließlich in einfacher Präzision auf dem kleinen Datensatz ausgeführt wird.

Was kann FPMark besser als andere, häufig von PC- und Handy-Zeitschriften und anderen “Testorganen” benutzte Benchmarks wie Whetstone oder Linpack, die objektiv wegen der Manipulierbarkeit durch Compilereinstellungen nahezu wertlos sind? Zum einen werden die Daten, mit denen die Algorithmen berechnet werden, über einen Zufallsgenerator erzeugt. Damit wird verhindert, dass ein Compiler Ergebnisse einfach “vorberechnet”, die in Wirklichkeit Bestandteil des Tests sind. Wenn Sie z.B. bei einer Arcus-Tangens-Funktion den Operanden kennen, weil es sich um eine Fix-Zahl handelt, können Sie die Funktion statt zur Laufzeit auch vom Compiler berechnen lassen und sich die Taktzyklen für die Berechnung sparen.

Zum anderen sind die FPMark-Berechnungen nicht schleifeninvariant, so dass der Compiler an dieser Stelle keine Operationen aus der Schleife entfernen kann. Als Schleifeninvariante werden Eigenschaften einer Schleife in einem Algorithmus bezeichnet, die zu einem bestimmten Punkt bei jedem Schleifendurchlauf gültig sind, unabhängig von der Zahl ihrer derzeitigen Durchläufe.

Ähnlich wie bei EEMBCs CoreMark sind Zertifizierungen für FPMark nicht erforderlich, aber EEMBC wird die Verwendung von zertifizierten Benchmark-Werten unterstützen. Nicht-Mitglieder können die gesamte FPMark-Suite einschließlich Quellcode und Dokumentation, für 495 Dollar kaufen (pro Einzel-Firmenlizenz). Eine akademische Lizenz für Universitäten und andere Lehranstalten kostet 195 Dollar.

Leider ist jedoch auch beim FPMark laut Vermutungen der Linley-Group damit zu rechnen, dass findige Compiler-Bauer Mittel und Wege finden, die Ergebnisse hochzutreiben – ähnlich wie dies beim CoreMark der Fall war. Es ist jedoch davon auszugehen, dass auch hier “Software der realen Welt” viel eher von solchen Compiler-Einstellungen und –Optimierungen profitieren wird, als die bei Linpack und Co. der Fall ist. Insofern stellt FPMark für Anwender, die mit Benchmarks arbeiten, einen deutlichen Fortschritt dar.