Bernd Leitenbergers Blog

Das Moorsche Gesetz gilt noch immer – oder nicht mehr

So, an dem heutigen Artikel habe ich fast zwei Tage gearbeitet, vor allem daran die ganzen Daten zusammenzubekommen. Entsprechend lang ist er geworden. Ich hoffe ihr weist das zu würdigen.

Die ct‘ hat wie immer vor Weihnachten ihre Empfehlungen für den „optimalen“ PC (sortiert nach Anwendungen) gegeben. Wie immer gibt es einen Grundlagen Artikel, was man in jeder Preisklasse von Prozessor, Speicher, Festplatte und Grafikkarte erwarten kann. Mich hat zweierlei gestört: das erste war das im Text zwar darauf eingegangen wird, dass sich heute Einstiegsprozessoren und High-end Core i7 in der Singlethreadperformance kaum unterschieden, das sieht man an den Ergebnissen aber kaum. Die Tabellen führen nur Benchmarks von auf mehrere Threads optimierten, fließkommaintensiven Benchmarks. Die in einem früheren Artikel beim Vergleich genutzten Benchmarks wie PC-Marks, die die reale Performance von Anwendungsprogrammen als Basis nahmen, fielen weg,

Das zweite war dass man die AMD Prozessoren aber auch einige Intel Prozessoren im Low-End als veraltet darstellt. Nun zumindest bei AMD gilt dies im Hinblick auf den Stromverbrauch, weil AMD noch im 28 nm Prozess produziert. Intel hat inzwischen den 14 nm Prozess voll im Griff, das erlaubt es, wenn man gleich viele Transistoren für eine gewisse Funktion braucht, diese auf einem Viertel der Fläche unterzubringen und so den Stromverbrauch deutlich zu senken. Hinsichtlich der für Integeranwendungen wichtigen Leistung hat sich seit Einführung der Core Mikroarchitektur, das ist nun auch schon 7 Jahre her, nicht viel getan, hier gab es nur evolutionäre Veränderungen. Intel hat seit 15 Jahren vor allem an Schraube Fließkommaperformance gedreht, die bei typischen Desktopanwendungen wie Textverarbeitung, Surfen, Mail aber auch Videodekodierung kaum genutzt wird.

Bevor ich einen Leserbrief an die ct‘ schreibe dachte ich mir, veröffentliche das im Blog, da haben mehr Leute was davon und ich kann weiter ausholen. Zuerst einmal: warum erwarten wie das PCs schneller werden? Grundlage ist schlussendlich das „Moorsche Gesetz“. Gordon Moore prognostizierte 1965 das sich die Anzahl der Elemente auf einer bestimmte Chipgröße alle 12 Monate verdoppelte, später korrigierte er auf 24 Monate, als Ende der Sechziger das Wachstum abflachte das auf 24 Monate.

Nun ist für den Anwender letztendlich egal, wie viele Transistoren auf ein Die passen. Das hat die Folge, das man den Speicher erweitern kann und er pro Bit immer billiger wird. Solange aber der Rechner nicht schneller wird nützt dem Anwender das nichts (oder was würde ein C-64 mit 8 GByte RAM anfangen können?) Solange die CPU nicht schneller wird, wohl wenig. Aber mehr Transistoren erlauben eine ausgeklügelte Architektur: mächtigere Befehle, Verarbeitung von mehr Daten gleichzeitig, stufenweise Verarbeitung verschiedener Befehle in unterschiedlichen Stadien in mehreren Teilen des Prozesors. Dadurch steigt letztendlich die Geschwindigkeit.

Moores Gesetz gilt noch immer, auch wenn die Kurve nun etwas abflacht. Was jedoch nicht mehr gilt, ist dass die Geschwindigkeit automatisch ansteigt. Intel wie AMD scheinen einen Endpunkt in der x86 Architektur erreicht zu haben. Die Performance pro Kern steigt seit einigen Jahren nur noch langsam an. Mehr parallel arbeitende Einheiten machen wenig Sinn, wenn sie nicht vollständig ausgelastet werden. Hyperthreading oder SMRT wie Intel es nun nennt zeigt das ja deutlich Hyperthreading simuliert für das Betriebssystem mehr Kerne als es tatsächlich gibt. Mehr Geschwindigkeit erreicht man dadurch, dass die „virtuellen“ Kerne, die von dem Code in einem Thread ungenutzten Funktionseinheiten ausnutzen. Wären diese ausgelastet, so wäre der Gewinn gleich Null. Das Hyperthreading immer effektiver ist (beim Pentium 4 waren es 10-15%, bei Nehalem schon 20% und bei Haswell sind es 30%) liegt daran dass es immer mehr Einheiten für Ganzzahlanweisungen gibt, aber der Code die Parallelität nicht her gab.

Da ich seit Juli an einer Serie über die x86-Architektur arbeite (primär zur eigenen Fortbildung, aber ich hoffe, es nützt auch anderen) habe ich auch Benchmarkergebnisse gesammelt. Es gibt eigentlich nur zwei Benchmarks, die sowohl auf dem 8086 wie auch einem Core 5XXX arbeiten: Dhyrstone und Whetstone. Sie sind sehr alt, mit den entsprechenden Nachteilen, aber Dhrystone korreliert sehr gut mit der Singlethreadperforance auch moderner Anwendungen und Wheatstone sehr gut mit der Fließkommaperformance ohne AVX Unterstützung. Ich habe sie auch gewählt, weil sie beim BOINC Netzwerk Grundlage für die Credits sind die ein Benutzer bekommt. Da ich selbst BONIC installiert habe, kann ich auch leicht den geschätzten Aufwand in GFLOPS durch die verbrauchte Prozessorzeit teilen und komme auf in etwa die gleichen Wert wie bei Whetstone. Die BOINC Ergebnisse publizieren aber viele um anzugeben. Das erlaubt zumindest bei neuen Prozessor eine einfachere Recherche.

So habe ich folgende Tabelle erstellt. Dazu noch einige Bemerkungen:

Kerne Ausführungseinheiten
Fließkomma
Ausführungseinheiten
Integer
Takt [MHz] Transistoren Dhrystones Dhrystones
/MHz
Dhrystones
/MHz/Einheit
Whetstones Whetstones
/MHz/Einheit
Transistoren/
Dhrystones
‚8086 1 1 1 4,77 29.000 0,5 0,10 0,10 0,0104 0,00 58000
‚80286 1 1 1 10 134.000 1,889 0,19 0,19 0,0852 0,01 70937
‚80386 1 1 1 40 275.000 17,5 0,44 0,44 5,68 0,14 15714
‚80486 1 1 1 66 1.200.000 45,6 0,69 0,69 15,2 0,23 26316
Pentium 1 1 2 200 3.200.000 352 1,76 0,88 132 0,66 9091
Pentium Pro 1 1 2 200 5.500.000 373 1,87 0,93 161 0,81 14745
Pentium II 1 2 2 300 7.500.000 544 1,81 0,91 245 0,41 13787
Pentium III 1 2 2 1000 29.400.000 1858 1,86 0,93 816 0,41 15823
Pentium 4 1 1 4 3066 125.000.000 2430 0,79 0,20 1858 0,61 51440
Pentium D 2 1 4 3000 230.000.000 3678 1,23 0,31 1119 0,37 31267
Core 2 Duo E6850 (Merom) 2 3 3 3000 291.000.000 8144 2,71 0,90 3142 0,35 17866
Core 2 Duo E8600 (Penryn) 4 3 3 3950 825.000.000 9101 2,30 0,77 3625 0,31 22662
Core I7 950 (Nehalem) 4 3 3 3333 731.000.000 6443 1,93 0,64 2913 0,29 28364
Core I7 2600 (Sandy Bridge) 4 3 3 3400 995.000.000 11797 3,47 1,16 3428 0,34 21086
Core I7 3770K (vy Bridge) 4 3 3 3500 1.400.000.000 14196 4,06 1,35 3719 0,35 24655
Core I5 4690 (Haswell) 4 3 4 3800 1.400.000.000 16700 4,39 1,10 4700 0,41 20958
Core i7-5820K (Haswell EP) 6 3 4 4400 2.600.000.000 19000 4,32 1,08 4320 0,33 22807

Das interessante sind die Spalten nach den Messwerten. Dhrystones/MHZ ist ein Wert für die Effizient einer Architektur. Er steht für die Singlethreadperformance. Man sieht dass dieser seit der Einführung der Core Mikroarchitektur (und das ist auch schon 7 Jahre her) nur von 2,71 auf 4,32 anstieg. Das steht im Einklang mit Benchmarkergebnissen die ohne spezielle Optimierungen bei Ganzzahlanwendungen, wie sie die meiste heutige Software ist, pro Generation eine Steigerung von meist 15% feststellt.

Noch konstanter ist der Wert Dhrystones pro Einheit, also pro ALU, Dieser ist bei dem Wert des Pentium mit einer Ausnahme um 1 schwankend mit kleinen Ausschlägen nach oben und unten. Die Ausnahme ist der Pentium 4, dessen Netburst Architektur im Markt scheiterte. Das diese nicht so optimal war, sieht man auch an der Performance Transistoren pro Dhrystone (letzte Spalte). Auch hier fallen die beiden Prozessoren mit dieser Architektur durch hohe Werte auf. Bei letzterem Wert wurde die Kernzahl berücksichtigt, allerdings kein Hyperthreading. Dieser Wert ist allerdings mit Vorsicht zu genießen, da im Laufe der Zeit immer mehr in den Prozessor gewandert ist. Heute ist die komplette Grafik dort enthalten, Speicherkontroller, Anbindung der Slots, Cachecontroller, Caches (schon bei Nehalem 60% der Fläche) und Memory Management Unit. Das alles fehle noch bei den ersten Generationen. Alleine die Grafik macht bei Ivy Bridge und Haswell rund 400 Millionen Transistor Funktionen oder ein drittel der Komplexität aus. Hyperthreading wurde ebenfalls nicht berücksichtigt und sollte bei den I7-Prozessoren den Wert um 20 bis 30% senken. Trotzdem fällt der Pentium durch seine Effizienz auf. Folgerichtig nutzte Intel dieses Design für den Xeon Phi – der zeigt, was wir auch heute mit den 2,6 Milliarden Transistoren haben könnten: 50 anstatt 6 Prozessoren pro Chip.

Was ist nun die Konsequenz? Nimmt man den Anstieg der T5ansistorzahlen so gilt das Moor’sche Gesetz nach wie vor. Etwas anders sieht es bei der Performance aus, die beim Anwender ankommt. Die ist seit der Einführung der Core Mikroarchitektur nur langsam gestiegen. Nimmt man den E6850 Prozessor vom Herbst 2007 und vergleicht ihn mit dem leistungsfähigsten Core i3 (ebenfalls zwei Kerne) I3-4370 von 2014, so bekommt man um 94% mehr Leistung pro Singlethread (Integer). Bei Fließkomma sind es sogar nur 42%. Dieser Wiederspruch ergibt sich daraus, das Intel seit dem Pentium 4 sich auf SIMD Erweiterungen konzentrierte, die liefern heute die achtfache Performance bei einfachgenauen Zahlen wie die klassischen x86 Befehle – aber eben nur wenn sie genutzt werden. Früher war der Gewinn im selben Zeitraum höher. Wer einen 1984 gekauften 80286 1991 (nach sieben Jahren) durch einen 80486 ersetzte bekam 12 x mehr Leistung, wich er 1998 einem Pentium II, war der Anstieg erneut der Faktor 12. Ein 2006 gekaufter Pentium D war immerhin noch siebenmal schneller – da flachte es schon ab.

Intel versuchte zuerst die Problematik durch mehr Kerne zu kompensieren, doch weil Software diese meist nur selten nutzte, hat man im Desktopsegment seit einigen Jahren die Kernzahl auf 4 beschränkt (bei Servern wo die Kerne ausgelastet sind gibt es mittlerweile bis zu 18 Kerne pro CPU), Stattdessen führte man Turbo Boost ein um wenigstens die Taktfrequenz eines oder zwei Kernen zu steigern, wenn schon die Kerne nicht alle genutzt wurden und Haswell bekam wieder mehr Funktionseinheiten, mit Haswell EP steigt nun die Kernzahl erneut an, zumindest im obersten Segment (i7).

Meiner Ansicht nach wäre es Zeit für eine neue Architektur, Doch die scheint nicht zur Diskussion zu stehen. Vielmehr tippe ich darauf das Intel mehr Beschleunigungsfunktionen integrieren wird, z.B. eine noch leistungsfähigere Grafikeinheit. Die hat seit ihrer Einführung in der Westmere Generation deutlich an Geschwindigkeit zugelegt. Früher war sie langsamer als selbst die langsamsten Graphikkarten, nun erreicht sie immerhin das 50 Euro Niveau des Grabbeltischs.

Die mobile Version verlassen