Synthetische Sandra: Ein Review des Benchmarks
17. April 2006 / von BlackBirdSR / Seite 3 von 3
Neben diesen arithmetischen Tests bietet Sandra auch einen "CPU Multimedia Benchmark" Dieser generiert ein Mandelbrot-Fraktal, um damit die Integer- und Gleitkommaleistung zu messen. Für die Berechnung gibt es verschiedene Versionen, die sich an den Befehlssätzen der CPU orientieren. SiSofware erhofft sich damit eine praxisnahe Bewertung der CPU. Die FAQ erläutert uns den Test wie folgt:
Zitat: The benchmark is multi-threaded for up to 64 CPUs maximum on SMP systems. This works by interlacing, i.e. each thread computes the next column not being worked on by other threads. Sandra creates as many threads as there are CPUs in the system and assignes each thread to a different CPU. The benchmark contains 6 versions (ALU, MMX, MMX Enhanced, Wireless MMX, SSE and SSE2) that use integers to simulate floating point numbers, as well as 5 versions that use floating point numbers (FPU, 3DNow!, 3DNow! Enhanced, SSE and SSE2). This illustrates why older fractal generation programs used integers (e.g. the well-known FractInt): on 386/486 CPUs the integer version is 3-4x times faster. The (E)MMX, 3DNow! and SSE(2) versions compute 2/4/8 Mandelbrot point iterations at once - rather than one at a time - thus taking advantage of the SIMD instructions. Even so, 2/4/8x improvement cannot be expected (due to other overheads), generally a 2.5-3x improvement has been achieved. The ALU & FPU of 6/7 generation of processors are very advanced (e.g. 2+ execution units) thus bridging the gap as well. We found it useful to see the differences between the old and new versions of CPUs within a family as well as comparing similar CPUs from different manufacturers (e.g. Intel vs. AMD). Übersetzung: Der Benchmark ist multithreaded. Er enthält 6 Versionen (ALU, MMX, MMX Enhanced, Wireless MMX, SSE and SSE2), die Gleitkommazahlen mit Hilfe von Integerberechnungen simulieren, und 5 Versionen (FPU, 3DNow!, 3DNow! Enhanced, SSE and SSE2), die mit Gleitkommazahlen selbst arbeiten. Dies soll veranschaulichen, warum ältere Programme zur Erstellung fraktaler Bilder auf Integerberechnungen zurückgegriffen haben. Auf einem 386/486 ist die Integerversion 3-4x schneller. Die (E)MMX, 3DNow! und SSE(2) Versionen berechnen 2/4/8 Durchläufe auf einmal, statt einen nach dem anderen, und nutzen daher die Vorteile der SIMD-Befehlssätze. Trotzdem kann man keinen Anstieg um das 2/4/8-fache erkennen. Im generellen kann man ein 2.5-3-fachen Performanceanstieg feststellen. Die ALU & FPU sind sehr fortgeschritten (z.B. 2+ Ausführungseinheiten) und schließen damit die Lücke. Wir fanden den Benchmark nützlich, um alte und neue Versionen von CPUs innerhalb einer Familie und ähnliche CPUs verschiedener Hersteller zu vergleichen (z.B. AMD und Intel). |
Multimedia-Test von Sandra
SiSioftware erhofft sich mit diesem Benchmark also eine praxisnahe Darstellung der Multimedia-Performance moderner CPUs. Dabei wird intensiv auf die verschiedenen SIMD-Befehlesätze Wert gelegt. Wie man aber selbst schon angibt, zeigt man damit nur die möglichen Leistungssteigerungen für eben jenen Algorithmus auf. Dies als Multimedia-Test zu bezeichnen ist vielleicht etwas gewagt. Immerhin konzentriert man sich auf einen wichtigen Aspekt moderner "Multimedia-CPUs", die SIMD-Funktionen. Inwiefern Speicherbandbreite, Zugriffszeit und Cache-Leistung in das Ergebnis einfließen könnten, bleibt aber unberücksichtigt.
Im ersten Schritt wird die Leistung mit Hilfe von Integerwerten gemessen. Bei der Betrachtung der einzelnen Ergebnisse fällt auf, dass Pentium 4 CPUs anscheinend 8 Iterationen pro Takt durchlaufen (8x SSE2), nahezu alle anderen CPUs aber auf 4 Iterationen (4x SSE) beschränkt sind. Gerade K8 und Pentium M sind allerdings ebenfalls in der Lage, diese Berechnungen mit SSE2 zu erledigen. Welche Auswirkungen dies auf die Ergebnisse hat, ist ungewiss. Es hinterlässt jedoch ein Gefühl der Unsicherheit zurück. Sicher ist einzig, dass der Pentium 4 ohne SMT auch mit diesem "Vorteil" nicht besonders viel Leistung vorzeigen kann. Allerdings ist auch in diesem Benchmark MultiThreading immer aktiviert. Dadurch kann sich der Pentium 4 bei einem standardmäßigen Durchlauf immer an die Spitze setzen.
Die 64 Bit Version dieses Tests scheint übrigens ein ganz eigenes Süppchen zu kochen. Dort sind nur für K8 und Pentium 4 jeweils 16 Iterationen eingetragen. Die Performance geht dabei allerdings völlig unterschiedliche Wege: Während die Integerleistung des Pentium 4 leicht ansteigt, verliert der K8 drastisch an Punkten:
Intel Pentium 4 Northwood 3.2 GHz, 512 KB L2, SMT on/off | Integer x8 SSE2: 19458 / 24437 |
Intel Pentium 4 Prescott 3.2 GHz, 1 MB L2, SMT on/off | Integer x8 SSE2: 18034 / 23021 |
Intel Pentium M 1.8 GHz, 2 MB L2 | Integer x4 SSE2: 17170 |
AMD Athlon 64 1.8 GHz, 512 kB L2 | Integer x4 SSE2: 17233 |
AMD Athlon XP 1.8 GHz, 256 kB L2 | Integer x4 aSSE: 17049 |
- Zusammenfassung:
- einzig Mandelbrot-Fraktal um gesamte Multimedia-Performance anzugeben
- Unsicherheit
- eventuell unterschiedliche Codepfade für CPUs mit gleichen Fähigkeiten
- MultiThreading immer an
- 64 Bit Test undokumentiert, liefert fragwürdige Ergebnisse
Die Gleitkommavariante des Tests offenbart nur geringfügige Abweichungen. Einzig der Pentium 4 glänzt erneut mit Vorteilen über das restliche Feld. Wie in den übrigen Durchläufen überzeugt Northwood mit geringfügig höherer Leistung als Prescott, während beide CPUs mit Hilfe von SMT extrem weit vorne liegen.
In diesem Fall nutzen mit 4-Iterationen allerdings alle CPUs nahezu identische Voraussetzungen. Ob dabei SSE oder SSE2 verwendet wird, scheint keine Auswirkungen auf die Leistung zu haben. Die 64Bit Version ist auch hier undokumentiert, und ist schwer nach zu vollziehen. Es werden 8-Iterationen pro Durchgang berechnet. Der Athlon 64 gewinnt dabei kaum Performance, während der Pentium 4 auch ohne SMT um ein Drittel zulegt, und damit sogar den SMT-Wert der 32Bit Version übertrifft.
Intel Pentium 4 Northwood 3.2 GHz, 512 kB L2, SMT on/off | Float x4 SSE2: 24928 / 35603 |
Intel Pentium 4 Prescott 3.2 GHz, 1 MB L2, SMT on/off | Float x4 SSE2: 21224 / 30439 |
Intel Pentium M 1.8 GHz, 2 MB L2 | Float x4 SSE2: 18915 |
AMD Athlon 64 1.8 GHz, 512 kB L2 | Float x4 SSE2: 18555 |
AMD Athlon XP 1.8 GHz, 256 kB L2 | Float x4 SSE: 18073 |
Intressant ist vielleicht noch der von SiSoftware angesprochene Vergleich zwischen SIMD und der Berechnung durch die FPU, welche nur eine Iteration erlaubt. Ein Pentium M erreicht damit weniger als ein Viertel der ursprünglichen Leistung, und übertrifft einen Itanium 2 1.6GHz (direkter IA64-Code): x1 FPU 4314 <-> 3973 it/s.
Dieser nutzt allerdings ebenfalls nur eine Iteration pro Durchlauf. Ob der Itanium 2 nun weniger geeignet ist für solche Berechnungen oder der verwendete Code einfach nur schlecht an IA64 angepasst ist, bleibt offen. Mit einem Wert von 4314 it/s übertrifft der 1.8 GHz Pentium M nach diesem Test allerdings auch einen 2.4 GHz K8. Es kann sich jeder selbst denken, wie sehr das für diesen Test spricht.
- Zusammenfasung:
- kaum Unterschiede zwischen Pentium M, K7 und K8
- Messung der reinen FPU-Leistung führt zu unrealistischen Ergebnissen
- Multithreading immer aktiviert
- 64 Bit Test undokumentiert und Ergebnisse fern ab der Realität
Zu den Speichertests von Sandra gibt es nicht viel zu sagen. Schon seit Jahren setzt man dabei auf einen Streaming-Test, welcher die Speicherbandbreite messen soll. Das Resultat sind Ergebnisse, die sehr nahe am theoretischen Maximum liegen, welches die jeweilige Architektur erreichen kann. SiSoftware rühmt sich damit, den bekannten "STREAM" Benchmark optimiert zu haben und so verlässlichere Ergebnisse erzielbar seien. Unter diese Optimierungen fallen intensive Codeanpassungen und Methoden, um die jeweils höchste Übertragungsrate sicherzustellen. Neuere CPUs dürfen zudem auf Prefetch-Mechanismen setzen, mit denen Daten ohne Umwege über die Caches gelesen und geschrieben werden können.
Leider sind die Ergebnisse dann auch hauptsächlich theoretischer Natur. Die wenigsten Anwendungen sind derart optimiert und arbeiten mit größeren zusammenhängenden Speichermengen. Für solche Anwendungen fällt die Zugriffslatenz oftmals weit mehr ins Gewicht als die reine Speicherbandbreite. In einer der letzten Versionen integrierte SiSoftware dann auch einen ansprechenden Test für das gesamte Cache/Hauptspeicher-System der CPU. Aufgrund der höheren Anforderungen an den Leser und Tester zugleich scheint allerdings niemand wirklich auf diesen Test zu setzen. Zumal es bessere Alternativen gibt; Beispielsweise den Rightmark Memory Analyzer. Die wichtigen Zugriffszeiten vernachlässigt SiSoftware allerdings noch immer. Das macht Everest weitaus besser.
Schlussendlich kann man sagen, dass es SiSoftware Sandra auf den ersten Blick eigentlich ganz gut meint. Im Detail offenbaren sich dann aber die Schwächen: Zwar dokumentiert SiSoftware als eine der wenigen Firmen in diesem Bereich den Benchmark relativ genau – allerdings finden sich in den Erklärungen viele Unstimmigkeiten und Widersprüche. Die Tests an sich sollen die Leistungsfähigkeit der CPUs für den realen Einsatz messen, die verwendeten Testmethoden stellen jedoch ein Scheitern dieses Ansinnens sicher. Man vergleicht zwar gerne verschiedene Architekturen mit Hilfe von Sandra, aber es kann nur davon abgeraten werden, die Ergebnisse ohne weiteres hinzunehmen.
Überrascht hat uns sicherlich die Tatsache, dass SiSoftware viele der Benchmarks gerne als realitätsnahe Tests sieht, während sich eindeutig das Gegenteil aus den Ergebnissen und der eigenen FAQ ableiten lässt. Denn am Ende bleibt Sandra auch nur ein weiterer Benchmark unter vielen. Deren Ergebnisse sind stark davon abhängig, wie der Hersteller das Programm auslegt. Auch im Falle von Sandra halten wir das für wenig gelungen, um die reale Leistung korrekt einzuschätzen.
Für die Zukunft würden wir uns daher eine aktuellere FAQ wünschen, die zumindest klar darstellt, dass die Tests nur einseitig andeuten können, wie die Leistung denn sein könnte. Auch an den Tests selbst würden wir uns gerne einige Änderungen wünschen. So erzeugt das Verhalten der 64 Bit Tests doch das ein oder andere größere Stirnrunzeln. Auch die generell starke Abhängigkeit von SIMD und MultiThreading entspricht nicht dem momentanen Stand der Dinge. Die Ergebnisse werden dadurch deutlich verzerrt. Für den Speichertest würde zumindest eine Angabe der effektiven Zugriffslatenz nicht schaden. Ein Speichertest mit etwas mehr Praxisnähe könnte ebenfalls gefallen - auch wenn die Balken dann nicht so lang werden :).
Immer wieder findet man in CPU-Tests im Web Abschnitte, in denen die Sandra-Ergebnisse ohne Kommentar aufgeführt werden. Unserer Meinung nach ist das der falsche Weg, betrachtet man die Probleme hinsichtlich der Aussagekraft der Benchmarks. Andere führen Sandra zwar auf, nehmen den Ergebnissen dann aber die Gewichtung, in dem man synthetische Benchmarks generell als praxisfern bezeichnet. Oft werden Tester faktisch gezwungen, sich selbst fadenscheinige Erklärungen für die herausgekommenen Sandra-Ergebnisse auszudenken. Ergebnisse ganz kommentarlos in den Raum zu stellen, ist dann nochmals gefährlicher. Der Leser wird somit gezwungen, ohne Beschreibung des Testverfahrens eben aus den puren Ergebnissen eine Einschätzung zur Leistungsfähigkeit von Hardware zu bilden.
Generell wäre es zu empfehlen, jeden Benchmark, den man verwendet, auch etwas genauer zu betrachten. Erst dann kann man dem Leser auch vermitteln, was die Ergebnisse eigentlich aussagen. Leider ist es selbst für den Tester oft unmöglich, dem Benchmark wirklich auf den Zahn zu fühlen - an dieser Stelle wären eigentlich die Hersteller gefragt. Ist man mit einem Test nicht zufrieden, weil der Test eigentlich nicht zu dem passt, was man in seinem Artikel vermitteln will, so sollte man ihn auch konsequent herauswerfen.