Home Computer Hardware Site Map counter

Benchmarks – oder wie schnell ist mein Computer

Seit es Computer gibt, möchte man wissen, wie schnell sie sind, vor allem wie schnell im Vergleich zu anderen. Dafür gibt es spezielle Programme, für die sich die Bezeichnung „Benchmarks“ eingebürgert hat.

Die Geschwindigkeit zu messen ist gar nicht so einfach. Natürlich gibt es technische Parameter. Die beiden am einfachsten zu benennenden, sind die Taktfrequenz und die Takte pro Befehl.

Jeder Prozessor wird von einem Taktgeber, früher ein separater Quarzkristall, der eine definierte Schwingzahl pro Sekunde hat, heute im Prozessor integriert, angetrieben. Pro Taktsignal wird eine Aktion ausgelöst, z.B. Daten vom Speicher angefordert, eine Addition durchgeführt, eine Adresse auf den Adressbus gelegt. Je nach Komplexität benötigten viele Befehle mehrere Takte. Ein einfacher Befehl bei dem 8-Bit-Prozessor Z80 dauerte z.B. mindestens vier Zyklen lang: Adresse des Befehls an den Speicher übermitteln, Befehl vom Speicher abholen, Befehl dekodieren, also feststellen, was gemacht werden muss und Befehl ausführen. Komplizierte Befehle, oder Befehle, bei denen man Daten vom Speicher oder zum Speicher transferieren musste, konnten erheblich länger dauern. Bei der Z80 CPU z.B. bis zu 23 Takten.

Daraus folgt, dass die Taktfrequenz alleine als Angabe nicht ausreicht. So waren früher z.B. der Prozessor 6502 und die obige Z80 CPU in etwa gleich schnell, wenn die Z80 bei doppelter Taktfrequenz lief. Der Grund lag darin, dass die Befehle der 6502 schneller ausgeführt wurden und dieser Prozessor bei jedem Taktsignal bei ansteigender und absinkender Flanke eine Aktion durchführte. Die schnellere Ausführung wurde dadurch kompensiert, dass die Z80 Befehle „mächtiger“ waren, also ein Befehl teilweise zwei oder drei einfache der 6502 ersetzte.

Auch die Anzahl der Takte pro Befehl ist daher nur bedingt nützlich. Wenn wie bei der Z80 eine CPU direkt 16 Bit Zahlen addieren und subtrahieren konnte, die zweite dazu aber zwei 8 Bit Operationen braucht, nützt es nichts, wenn die zweite weniger Takte pro Befehl braucht. Dazu muss man wissen welche Befehle sehr häufig ausgeführt werden und welche selten. Nur so kann man die durchschnittliche Ausführungsdauer eines Befehls bestimmen und daraus ableiten, wie viele Befehle in einer Sekunde ausgeführt werden. Dies wird meist in MIPS (Millionen Instruktionen pro Sekunde) angegeben.

Tendenziell kann man auch sagen das eine 16 Bit CPU schneller ist als eine 8 Bit CPU und eine 32 Bit CPU schneller als eine 16 Bit CPU. Doch fangen dann schon an die Vergleiche zu hinken. Der Vergleich ist deswegen schwierig, weil der Befehlssatz ein anderer ist. Die ersten 16 Bit CPU hatten z.B. Befehle um Multiplikationen und Divisionen in der Hardware auszuführen, während eine 8 Bit CPU deis durch ein Programm lösen kann. Bei Ganzzahlen ist es so, dass der Wertebereich ansteigt den man mit den Bits die auf einmal verarbeitet werden abbilden kann. Bei Zahlen ohne vorzeichen gilt z.B.

Dies gilt nun für alle Operationen, seien es Rechnungen, abr auch Vergleiche. Will man eine Zahl verarbeiten die nicht in den nativen Wertebereich passt, so muss man sie in kleineren Portionen verarbeiten die in den Wertebereich passen. Eine 32 Bit Addition wird so in zwei 16 Bit Additionen aufgeteilt, dazu kommen dann aber auch weitere Ladevorgänge in die Register, denn die sind ja auch nur 16 Bit breit, fassen also nicht die ganze Zahl.

Wie man leicht sieht, reicht der Wertebereich einer 8 Bit CPU nur für wenige Operationen, damit könnte man nicht mal Bildschirmkoordinaten abarbeiten, ohne diese in zwei Operationen aufzuteilen. Der Wertebereich einer 16 Bit CPU ist größer und reicht mit einer 32 Bit CPU gibt es nur wenige Probleme die nicht mehr in den Wertebereich passen (meist sind größere Zahlen auch keine Ganzzahlen sondern Fließkommazahlen, die von einer eigenen Einheit verarbeitet werden). Der Übergang von 32 auf 64 Bit CPUs im PC Bereich erfolgte denn auch nicht weil diese schneller sind, sondern weil der Adressbereich größer ist und PC's die Grenze erreichten die man mit 32 Bit ansprechen kann (4 Gigabyte).

Bei den heutigen Prozessoren in PC‘s, Servern aber auch Handys oder Tabletts ist es nicht mehr möglich die durchschnittliche Ausführungszeit eines Befehls anzugeben, da diese mehrere Funktionseinheiten pro Kern haben, und versuchen diese optimal auszulasten. Dazu können sie Befehle umsortieren. Zudem zerlegen sie die Befehle in kleinere Elementaroperationen, die zum Teil parallel ausgeführt werden. (Sogenannte Mikroops).

So ist die Leistung von Prozessoren nur anhand der Taktfrequenz nicht zu vergleichen. Nehmen wir den unten erwähnten Dhrystone Benchmark. Bei diesem hat ein AMD 386 32 Bit Mikroprozessor aus dem Jahr 1992 bei 40 MHz einen Spitzenwert von 17,2 VAX-MIPS. Ein Core i7 3930K mit 6 Kernen und 3200 Mhz einen Wert von 17269. Er ist also pro Kern 167-mal schneller. Doch der Prozessor ist nur 80-mal höher getaktet. Pro Mhz ist er also um den Faktor 2 im Laufe der Weiterentwicklung schneller geworden. Bei Fließkommawerten (Whetstone) ist der Sprung sogar noch größer, genauso wenn man als Vergleich ältere Rechner wie den IBM PC heranzieht.

Dhrystones und Whetstones

Benchmarkprogramme versuchen die Geschwindigkeit verschiedener Rechner zu vergleichen, indem sie möglichst realistische Anwendungsszenarios nachstellen. Die ältesten sind jedoch sehr einfach und leisteten dies noch nicht. So die früher sehr populären Dhrystone und Whetstone. Sie führten in Schleifen nur einfache Rechenoperationen, Stringverarbeitung oder Vergleiche aus. Das war zum einen nicht am Alltag orientiert, zum anderen ließen sich die Ergebnisse leicht verbessern, wenn man für den Prozessor verfügbare Optimierungen beim Übersetzen des Quellcodes einschaltete. Bei einem iCore 7 Prozessor liegt der optimierte Wert z.B. fünf bis achtmal höher, als der nicht optimierte. Der einzige Vorteil solcher alter Benchmarks ist, dass man einen groben Überblick hat, wie schnell ein heutiger Rechner verglichen mit früheren ist. Dhrystone stammt aus dem Jahr 1984 und benutzt als Referenz eine VAX 780/11 aus dem Jahre 1977. Der Fließkommabenchmark Whetstone ist sogar noch älter und stammt aus dem Jahre 1976. So ist besagter iCore Prozessor im nicht optimierten Fall beim Dhrystone Benchmark rund 2000 bis 2400-mal schneller als die VAX, immerhin ein Minicomputer von Schrankgröße und einem Anschaffungspreis von 500.000 DM 1977.

Bei Supercomputern ist es üblich, die Fließkommaleistung mit dem Linpack Benchmark in Megaflops anzugeben. Dieser Benchmark ist ebenso alt, aber der erste der sich bemüht ein reales Problem zu untersuchen. Der Linpack multipliziert zwei Matrizen von mindestens 100 x 100 Elementen. (Bei schnellen Prozessoren kann man auch mehr Elemente nehmen). Er ist sehr prozessorfreundlich und liefert bei vielen Rechnern 60 bis 80% der theoretischen Maximalleistung (da der Code nicht nur aus Fließkommaoperationen besteht, wird man nie 100% erreichen). Doch auch er ist leicht durch Optimierungen beeinflussbar. Beim Einschalten aller Standard­optimierungen kletterte beim recht alten Rechner des Autors der Wert von 300 auf 775 MFlops.

Moderne Benchmarks

Heute gibt es nicht einen, sondern viele Benchmarks. Die drei wichtigsten sind der Standard Performance Evaluation Corporation (SPEC), der Sysmark von BAPCo (Business Applications Performance Corporation) und der 3DMark.

Beim SPEC handelt sich um eine Serie von wissenschaftlichen Programmen (z. B. neuronale Netze, finite Elemente, Videoenkodierung usw.) gedacht vor allem für den Vergleich der Geschwindigkeiten von Prozessoren. Wie alle vorhergehenden Benchmarks liegen die Programme als Quelltext vor und werden erst übersetzt. Um die Überoptimierung zu verhindern, darf man allerdings nur eine begrenzte Anzahl von Optimierungen einschalten. SPEC ist relevant für die Auswahl eines Prozessors für einen bestimmten Zweck, wenn bei einem Großrechner oder Server eine bestimmte Aufgabe dominiert. Denn es gibt durchaus große Unterschiede bei den Prozessoren. Als der Pentium 4 erschien, war er beim Videoencodieren erheblich schneller als der Pentium III, bei anderen Benchmarks aber nur wenig schneller und bei einem sogar langsamer.

Für PC Benutzer ist der SPEC-Wert nutzlos, denn sie können die Programme nicht neu übersetzen. Zudem dominieren Rechenoperationen. Wer mit seinem Rechner dagegen surft, das eine oder andere Spiel spielt oder Textverarbeitung betreibt, nutzt die Fließkommaeinheit nur wenig.

Die Möglichkeit der Optimierung hat nicht nur theoretische Bedeutung: Mit jeder Prozessorgeneration führte Intel neue Befehle ein, oder ganze Baugruppen. So wurde die klassische Fließkommaeinheit durch die Möglichkeit mehrere Daten gleichzeitig zu bearbeiten erweitert. Diese Erweiterungen haben Namen wie MMX, SSE, SSE2, SSE3 oder AVX. Werden sie eingesetzt, so steigt die Performance bei manchen Problemen drastisch an. Doch wenn sie eingesetzt werden und das übersetzte Programm im Maschinencode soll auf einem Rechner starten, der die Einheit nicht hat, so läuft es im besten Fall nicht, im schlimmsten stürzt es ab. Intel hat seit dem Pentium vor allem auf Befehlserweiterungen für Fließkommazahlen gesetzt. Alle obigen Erweiterungen nutzen die FPU. AVX2 als letzte Erweiterung kann vier Fließkommazahlen parallel verarbeiten. Die häufig eingesetzte Kombination einer Multiplikation gefolgt von einer Addition bekam sogar einen eigenen Befehl, der in einem Takt ausgeführt wird. Ein Benchmarktest eines Paradebeispiels für diesen Befehl, die Matrixmultiplikation ergab dann sehr unterschiedliche Resultate:

i7-4-Kernprozessor mit Hyperthreading:

Das bedeutet: ein und dasselbe Programm kann bis zu 35-mal schneller ablaufen. Das ist ein extremes Beispiel, weil normaler Code nicht nur diesen einen hochoptimierten Befehl nutzt, er zeugt aber die Crux. Vor allem wird deutlich das der Compiler selbst schon nicht die optimale Leistung herausholt (obwohl ein Compiler von Intel, also dem Prozessorhersteller genutzt wurde).

Hersteller von Standardsoftware, also alles was sie kaufen oder frei herunterladen können, wie Browser, Office aber auch Bild- und Videoverarbeitung nutzen diese Einheiten daher nicht oder nur selten. Für PC Benutzer ist der BAPCO Sysmark daher aussagekräftiger. Er umfasst eine Reihe von Anwendungstests wie Office Anwendungen, Browser und Bildverarbeitung. Eingesetzt werden verbreitete Anwendungen wie Adobe Photoshop oder MS Office. Damit ist er näher an der Wirklichkeit des Einsatzes eines Desktoprechners. Setzt man diese Programme für Benchmarks ein, so sieht man erstaunliches. Außer der obigen Tatsache das Befehlserweiterungen nicht genutzt werden, meistens verarbeiten die Programme nicht mal viele Fließkommazahlen - wo muss eine Textverarbeitung denn viel Rechnen oder ein Browser - gibt es noch ein zweites Problem: sie sind meistens auch nur Singel-Threaded, nutzen also nur einen Prozessorkern aus. Das liegt in der Natur der Sache. Eine Webseite wird vom Beginn des Quelltextes nach unten gerendert, da kann man nicht die Aufgabe auf mehrere Kerne aufteilen. Ähnliches gilt für Textverarbeitung, wo man allerhöchstens die Seitenformatierung oder Rechtschreibkorrektur im Hintergrund durchführen kann. Wenn diese Programme von mehreren Kernen profitieren, dann meist durch die Nutzung mehrerer Dokumente oder beim Browser mehrerer Seiten (oder dem vorrausschauenden Laden und Rendern von Links in der aktuellen Seite). Bei Single Threaded Anwendungen sieht man dann aber seltsame Effekte. Dann hat ein Atom J1900, ein 35 Euro Prozessor 60% der Performance eine 950 Euro teuren iCore i7-5960X mit acht Kernen. Werden alle Kerne genutzt und AVX Instruktionen wie beim Linpack Benchmark, dann erreicht er nur 5% der Leistung.

Diese Fokussierung auf Single-Threaded Leistung führte dazu, dass Intel ihre Pläne aufgab die Kernzahl alle zwei Jahre zu verdoppeln. Sie stieg seit der Einführung 2005 zwar von 2 auf maximal 8 Kerne bei Prozessoren für Desktop-Rechner (Standard sind 2014 allerdings nur 4 Kerne). Stattdessen wurden die Prozessoren optimiert, sodass ein Kern höher getaktet werden kann, wenn nur ein Thread läuft. Eer nutzt die Tatsache aus, das die maximale Stromaufnahme, die mit dem Takt rasch ansteigt für alle Kerne gilt und wenn dann zwei oder drei Kerne schlafen und kaum Strom verbrauchen so kann der verbliebene ihr Thermalbudget mit nutzen.

Für den Käufer eines PC folgt daraus, dass es ihm meistens mehr bringt, wenn der Prozessor nur wenige Kerne hat, die aber hoch getaktet sind. Zwei Kerne sollten es aber sein, denn ein Kern wird meist durch Hintergrundprozesse ausgelastet. Es gibt Ausnahmen von der Regel, die liegen vor wenn das Problem tatsächlich hoch parallelisierbar ist. Das ist bei Bildbearbeitung, Videobearbeitung sowie das En- und dekodieren von komprimierten Daten (Videos, Musik) der Fall. Allerdings werden diese Kodierungen  heute auch schon effizient durch die Onboardgrafik durchführt. Sie hat spezialisierte Einheiten dafür. Damit kann dann selbst ein Atom mit niedriger Leistung HD-Video ruckelfrei abspielen.

Speziell für Spiele wichtiger ist der 3D Mark. Er ist beinhaltet eine Reihe von Szenen aus Spielen, die gezeichnet werden und dabei wird bestimmt, wie oft das Bild neu gezeichnet wird, die sogenannte Framerate. Sinkt diese ab, ruckelt es und bei der großen Gattung der Echtzeitspiele (vom Ego Shooter bis zu Strategiespielen) ist das entscheidend, zwischen spielbar oder nicht spielbar. Entsprechend dem Fortschritt in der Darstellung und immer schnelleren Grafikkarten wird dieser Benchmark jährlich aktualisiert, während bei BAPCo einige Jahre zwischen zwei Benchmarks vergehen und der SPEC-Benchmark sogar noch von 2006 ist.

Bestimmt wird bei dem 3D Mark vor allem die Geschwindigkeit der Grafikkarte. Selbst ein teurer iCore 7 Sechskernprozessor wird beim 3D Mark von einem billigen Prozessor geschlagen, wenn dieser nicht die OnBoard Grafik, sondern eine Grafikkarte für 100 Euro einsetzt. Bedingt durch die Aufgabe beim Bildaufbau, wo man im Prinzip für jedes Objekt und jedes Pixel dieselbe Aufgabe lösen muss, sind Grafikkarten beim Rendern von Szenen den PC-Prozessoren bei Weitem überlegen, denn sie haben Hunderte bis Tausende sehr einfacher Recheneinheiten anstatt nur zwei bis acht Prozessorkerne. Mit speziellen Bibliotheken kann man diese Rechenleistung auch für PC-Anwendungen nutzen. Eingesetzt wird dies z.B. bei Videobearbeitung, da auch Bilder nach demselben Raster bearbeitet werden.

Veröffentlichungsdatum des Artikels: 5.10.2013
Artikel zuletzt aktualisiert: 19.11.2014

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Neues Hier werben Bücher vom Autor Buchempfehlungen Top 99