Warum haben die CPU-Hersteller aufgehört, die Taktraten ihrer Prozessoren zu erhöhen? [geschlossen]

63

Ich habe gelesen, dass die Hersteller aufgehört haben, sich auf höhere Taktraten zu konzentrieren, und nun an anderen Dingen arbeiten, um die Leistung zu verbessern.

Mit

  • Eine alte Desktop-Maschine mit Intel® Xeon® Prozessor E3110 mit einer Taktrate von 3,0 GHz
  • und ein neuer Server mit AMD Opteron (TM) Prozessor 6272 mit einer Taktrate von 2,1 GHz

wenn ein einfacher Verschlüsselungsvergleich mit (Singlethread) durchgeführt wird

 openssl aes256c

Der Desktop schnitt weitaus besser ab als der Server.

Warum arbeitet der Prozessor mit der besseren Taktrate trotz der neuesten Optimierung besser?

Lerner
quelle
57
Der Desktop-Chip ist ein Dual-Core-Chip. Der Server ist eine 16-Kern-CPU. Die Verwendung eines Single-Thread-Benchmarks ist überhaupt NICHT geeignet.
MSalters
@learner - Da die Geschwindigkeit der Prozessoren nicht mit der benötigten Spannung ansteigen kann, wird die Wärme reduziert. Durch die Konzentration auf den Stromverbrauch können sie in Zukunft theoretisch die Prozessorgeschwindigkeit erhöhen.
Ramhound
1
Bitte zitieren Sie aktuelle Fälle, in denen "Hersteller" die Taktraten sogar verringerten (ohne Äpfel und Orangen zu vergleichen), oder beschränken Sie Ihren Fragetitel auf "nicht steigend".
Jan Doggen
8
Die Taktraten von AMD und Intel waren seit den K6 / Pentium-Tagen kein fairer Vergleich. AMD vermarktete Athlon-Prozessoren als 2500+ oder 3000+, wenn ihre Kerntakte 1,8 oder 2,1 betragen könnten, aber sie bewerteten sich in der Regel ziemlich genau mit Intel-Chips, die echte 2,5 oder 3 GHz takten. Es gibt einfach Art und Weise zu viele Unterschiede zwischen den Architekturen nun einen Vergleich einfach auf Taktraten zu machen.
KeithS

Antworten:

72

Der Grund, warum sich die Hersteller nicht mehr auf die Erhöhung der Taktrate konzentrieren, liegt darin, dass wir die Prozessoren nicht mehr schnell genug kühlen können, damit dies realisierbar ist. Je höher die Taktrate, desto mehr Wärme wird erzeugt, und wir haben jetzt ein Stadium erreicht, in dem es nicht mehr effizient ist, die Prozessorgeschwindigkeit aufgrund der Menge an Energie zu erhöhen, die für die Kühlung aufgewendet wird.

Eine andere Antwort geht detailliert darauf ein, wie eine höhere Taktrate nicht in allen Bereichen eine bessere Leistung bedeutet.

Paul Hay
quelle
1
+1 Ich habe anscheinend meine Maschine gekauft, als diese Mauer getroffen wurde. Mein 8-jähriger P4 mit 3,4 GHz ist wahrscheinlich der Schnellste in Bezug auf die Taktrate, wenn man einen Großteil des Marktes betrachtet (nicht OK).
Karthik T
2
Beachten Sie, dass der Stromverbrauch ebenfalls ein Problem darstellen würde. Wenn Sie einen 16-Kern-3.0-GHz-Prozessor hätten, würde dieser wahrscheinlich mehr als 200 Watt verbrauchen, was die gängigsten Netzteile in Kombination mit dem Rest des Systems kaum unterstützen können.
Mixxiphoid
9
@Mixxiphoid Sie müssten diese 200+ W auch irgendwie in die CPU bringen, bei einer Spannung, die die Schaltung verarbeiten kann. Das ist an sich eine nicht triviale Aufgabe.
einen Lebenslauf vom
1
Nicht nur das, um den CPU-Takt zu erhöhen, müssen sie die Pipeline vergrößern, sondern jedes Mal, wenn Sie den Code verzweigen, den Kontext ändern, den Speicher überspringen oder löschen müssen, löschen Sie die gesamte Pipeline, und Sie müssen sie erneut füllen, um zu geben Ein Ergebnis für diesen Befehl, daher ist es besser, die Pipeline und die CPU-Frequenz zu reduzieren. Sie müssen also nicht lange warten, um die Pipeline wieder zu füllen, wenn Sie den Kontext wechseln oder springen müssen.
Lefsler
1
@demonofnight: Es wäre zu viel zu sagen "jedes Mal, wenn Sie (...) springen müssen". Unbedingte direkte Verzweigungen stellen kein Kontrollrisiko dar, so dass sie nicht aus bedingten Verzweigungen heraus zählen. ~ 95% -99% werden durch verschiedene Techniken vorhergesagt (Daten basieren auf etwas Papier, das auf SPEC basiert). Direkte Verzweigungen stellen das Problem dar, wenn das Ziel noch nicht registriert ist und eine falsche Vorhersage vorliegt. Ich bin mir nicht sicher, was Sie mit "Fork the Code" oder "Clear the Memory" meinen, aber Kontextwechsel sollten nicht so oft ausgeführt werden (Interrupts und möglicherweise I / O).
Maciej Piechotka
37

Die Verarbeitungsgeschwindigkeit ist viel schneller als die Taktrate.

  • Unterschiedliche CPUs können aufgrund unterschiedlicher Varianten der Pipeline-Anordnung und mehrerer Komponenteneinheiten (Addierer usw.) in jedem Kern unterschiedliche Beträge in der gleichen Anzahl von Taktzyklen ausführen. Während dies in Ihrem Test nicht der Fall ist, stellen Sie häufig fest, dass ein "langsamer" Chip mehr kann als ein schneller (gemessen nur an der Taktrate), da er mehr pro Tick kann.

  • Der von Ihnen durchgeführte Test reagiert möglicherweise sehr empfindlich auf Unterschiede in der CPU-Architektur: Er kann für eine bestimmte Architektur optimiert werden. Möglicherweise ist die Leistung nicht nur zwischen Intel- und AMD-Chips unterschiedlich, sondern auch zwischen Intel- (oder AMD-) Chips verschiedener Familien. Wahrscheinlich wird auch ein einzelner Thread verwendet, sodass die mehreren Kerne der CPUs nicht ausgenutzt werden.

  • Aus Gründen des Strom- und Wärmemanagements werden niedrigere Taktraten angestrebt: Eine Erhöhung der Taktrate wirkt sich nicht linear auf den Stromverbrauch und die Wärmeabgabe aus.

  • Aufgrund der obigen nichtlinearen Beziehung ist es für die heutigen Anforderungen weitaus effizienter, mehrere Verarbeitungseinheiten zu haben, als die Geschwindigkeit einer Einheit immer weiter zu erhöhen. Dies ermöglicht auch clevere Tricks, um Strom zu sparen, z. B. das Ausschalten einzelner Kerne, wenn sie nicht verwendet werden, und das Wiederherstellen der Kerne, wenn die Nachfrage wieder steigt. Natürlich helfen mehrere Kerne einem Singlethread-Algorithmus nicht, obwohl dies der Fall wäre, wenn Sie zwei oder mehr Instanzen gleichzeitig ausführen würden.

David Spillett
quelle
Wie ist also das Verhältnis zwischen Taktrate und Stromverbrauch?
User84207
$ P = CV ^ 2f $. Sie können auch lesen wollen dies .
Zakkak
19

Warum senken die Hersteller Ihrer Meinung nach die Taktrate, indem sie nur zwei Prozessoren vergleichen?

  1. Der 6272 hat eine Turbo-Geschwindigkeit von 3 GHz. Die niedrigere Grundgeschwindigkeit dient nur dazu, die durchschnittliche Leistung zu senken und eine akzeptable TDP für ein Workloard beizubehalten, wenn alle Kerne belastet sind.
  2. AMDs nächster Hochleistungschip für den Desktop, der FX-9590, wird 5 GHz erreichen.

Die Taktrate ist auch nicht die gleiche wie die Leistung pro Taktzyklus. Sie können einen 3,8-GHz-P4-Core gegenüber einem 3,2-GHz-Core von einem i7-3930K haben, aber das bedeutet nicht, dass der P4-Core schneller ist.

Alles, was hier über den Stromverbrauch gesagt wird, gilt auch für ein 16-Kern-Design, bei dem Sie sich natürlich mehr um TDP-Probleme kümmern müssen.

Auch Ihre Benchmark-Methode, mit der Sie nur openssl testen, ist etwas zu einfach, um reale Zahlen zu erhalten. Vielleicht sollten Sie eine Krypto-Benchmark-Suite ausprobieren.

s1lv3r
quelle
3
Nur um eine Analogie zu Clock-Speed ​​= Performance-Trugschluss hinzuzufügen. Stellen Sie sich vor, eine Person unternimmt sehr kleine Schritte, aber sehr schnell (hohe Taktrate), eine andere Person unternimmt sehr große Schritte mit einer etwas langsameren Geschwindigkeit (niedrigere Taktrate). Die Person, die große Schritte unternimmt, kann sich viel schneller bewegen.
Martin Konecny
@MartinKonecny: Tolle Visualisierung!
Zach Latta
2
@MartinKonecny ​​Ich verstehe, dass die meisten Assembler-Anweisungen (ADD, MOV, IMUL usw.) in einem einzigen Zyklus ausgeführt werden. Werden bei diesen neuen Prozessoren mehrere Anweisungen in einem Zyklus ausgeführt?
Nialsh
4
@nialsh Das ist bei CISC-Computern überhaupt nicht der Fall (tatsächlich besteht eine der bestimmenden Eigenschaften von CISC darin, dass Befehle mehrere Zyklen benötigen ). Wenn alle Befehle einen Zyklus benötigen, dauert die Ausführung des langsamsten Befehls genauso lange wie der schnellste Anweisung.
Scott Chamberlain
x86-CPUs erforderten früher mehrere Taktzyklen pro Befehl, können heutzutage jedoch mehrere Befehle pro Taktzyklus ausführen.
Oskar Skog
13

Ihr Testfall (aes-256-Verschlüsselung) reagiert sehr empfindlich auf prozessorspezifische Optimierungen.

Es gibt verschiedene CPUs mit speziellen Anweisungen, die die Ver- und Entschlüsselungsvorgänge beschleunigen sollen. Diese speziellen Anweisungen sind möglicherweise nicht nur auf Ihrem Desktop vorhanden, sondern auch auf der AMD-CPU. Außerdem unterstützt openssl diese speziellen Anweisungen möglicherweise nur für die Intel-CPU. Hast du nachgesehen, ob das der Fall ist?

Um herauszufinden, welches System schneller ist, versuchen Sie es mit einer "richtigen" Benchmark-Suite - oder verwenden Sie einfach Ihre typische Arbeitslast.

Jakob
quelle
Wo findet die Übersetzung zu dieser speziellen Anweisung statt? Ich bin nicht sicher, ob es verschiedene Compiler für verschiedene Befehlssätze gibt.
Shubham
Compiler haben Optionen, um auf verschiedene Befehlssätze und / oder spezielle "Eigenfunktionen" abzuzielen, die CPU-spezifischen Befehlen genau zugeordnet sind. Es ist möglich, dass eine einzelne ausführbare Datei prüft, auf welcher CPU-Familie sie ausgeführt wird, und basierend darauf einen anderen Codepfad auswählt.
Russell Borogove
10

Einfach: Der AMD-Chip ist viel, viel schneller, weil es sich um einen 16-Kern-Chip handelt. Bei 115 Watt bedeutet dies, dass jeder Kern ~ 7 Watt produziert. Dies wäre nicht erreichbar, wenn jeder Kern mit 3 GHz betrieben würde. Um diese 7-Watt-Zahl zu erreichen, senkte AMD die Taktfrequenz. Wenn Sie die Taktfrequenz um 10% senken, wird der Stromverbrauch um 20% gesenkt, sodass Sie 25% mehr Kerne auf einen Chip setzen können.

MSalters
quelle
10

Wie andere bereits gesagt haben, können wir CPUs nicht mehr effektiv kühlen, wenn wir die Spannung erhöhen, die für die gleichen relativen Taktratenerhöhungen in der Vergangenheit erforderlich war. Es gab eine Zeit (P4-Ära und früher), in der Sie eine neue CPU kaufen und feststellen konnten, dass die Geschwindigkeit "sofort" zunimmt, da die Taktrate im Vergleich zur vorherigen Generation erheblich erhöht wurde. Jetzt haben wir eine Art Thermowand getroffen.

Die Taktrate jeder neuen modernen Prozessorgeneration nimmt geringfügig zu, dies hängt jedoch auch von der Fähigkeit ab, sie angemessen zu kühlen. Chiphersteller wie Intel konzentrieren sich ständig darauf, die Chipgröße der CPU zu verkleinern, um sie energieeffizienter zu machen und bei gleichen Takten weniger Wärme zu produzieren. Als Randbemerkung macht diese schrumpfende Chipgröße moderne Prozessoren anfälliger für Überspannungen als für Überhitzung. Dies bedeutet, dass es auch die maximale Taktrate einer aktuellen CPU-Generation begrenzt, ohne dass der Chiphersteller weitere Optimierungen vornimmt.

Ein weiterer Bereich, auf den sich die Chiphersteller stark konzentrieren, ist die Erhöhung der Anzahl der Cores on Chip. Dies trägt zu einer signifikanten Erhöhung der Rechenleistung bei, jedoch nur, wenn Software verwendet wird, die mehrere Kerne nutzt. Beachten Sie hier den Unterschied zwischen Rechenleistung und Geschwindigkeit. Einfach ausgedrückt, bezieht sich Geschwindigkeit darauf, wie schnell ein Computer einen einzelnen Befehl ausführen kann, während sich Rechenleistung darauf bezieht, wie viele Berechnungen ein Computer in einer bestimmten Zeitspanne durchführen kann. Moderne Betriebssysteme und viel moderne Software nutzen mehrere Kerne. Das Problem ist, dass die gleichzeitige / parallele Programmierung schwieriger ist als das Standardparadigma der linearen Programmierung. Dies verlängerte die Zeit, die viele Programme auf dem Markt brauchten, um die Vorteile dieser neueren Prozessoren voll auszuschöpfen, da viele Entwickler nicht daran gewöhnt waren, Programme auf diese Weise zu schreiben. Es gibt immer noch einige Programme auf dem Markt (entweder moderne oder ältere), die nicht von mehreren Kernen oder Multithreading profitieren. Das von Ihnen angegebene Verschlüsselungsprogramm ist ein solches Beispiel.

Diese beiden Schwerpunkte der Chiphersteller sind eng miteinander verbunden. Indem sie sowohl die Chipgröße als auch den Stromverbrauch eines Chips verringern, können sie dann die Anzahl der Kerne auf dem Chip erhöhen. Letztendlich wird auch dies an eine Wand stoßen und einen weiteren, drastischeren Paradigmenwechsel bewirken.

Der Grund für diesen Paradigmenwechsel liegt darin, dass wir uns den Grenzen von Silizium als Basismaterial für die Chipherstellung nähern. Daran arbeiten Intel und andere schon seit einiger Zeit. Intel hat angekündigt, dass eine Alternative zu Silizium in Arbeit ist, und wir werden es voraussichtlich nach 2017 sehen. Zusätzlich zu diesem neuen Material untersucht Intel auch 3D-Transistoren, die "die Rechenleistung effektiv verdreifachen" könnten. In diesem Artikel werden diese beiden Ideen erwähnt: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm

PseudoPsyche
quelle
2
  • Die Wärmeverluste entsprechen dem H 4. Frequenzgrad f.

    H ~ f ^ 4

    Die geringfügige Erhöhung der Frequenz führt also zu hohen Wärmeverlusten.

  • Weitere Miniaturisierung

    Eine höhere Frequenz führt zu einer weiteren Kristallminimierung. Gegenwärtig gibt es keine Technologien, um effektiv mit Materialien im Nanometerbereich zu arbeiten, und Nanometer sind die Grenze.

Hexenmeister
quelle
2
-1 Der vierte Potenzteil ist nicht richtig. Leistung (pro Sekunde erzeugte Wärme) in CPUs ist (ungefähr) linear proportional zur Taktfrequenz wie P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). Die zugeteilte Spannung hängt von der Taktrate ab (obwohl nicht unbedingt linear). Siehe: physics.stackexchange.com/questions/34766 Unter dem Strich ist die von der CPU erzeugte Leistung bei einer Taktrate im Bereich von 1,6 GHz - 5 GHz ungefähr linear bis quadratisch. (Nicht prop zu f ^ 4).
Dr. Jimbob
2

Wie in einigen anderen Antworten angegeben, möchten die CPU-Hersteller die Taktraten niedrig halten, um den Stromverbrauch und die Wärmeabgabe zu steuern. Um bei gleicher Taktfrequenz mehr zu arbeiten, werden mehrere Strategien angewendet.

Große On-Chip-Speicher-Caches können mehr Daten "in der Nähe" der CPU speichern, die mit minimaler Verzögerung verarbeitet werden können, im Gegensatz zum Hauptspeicher, der viel langsamer ist, um Daten an die CPU zu liefern.

Unterschiedliche CPU-Befehle erfordern eine unterschiedliche Anzahl von Taktzyklen. In vielen Fällen können Sie eine einfache Schaltung verwenden, um eine Operation über mehrere Taktzyklen zu implementieren, oder eine komplexere Schaltung, um dies in weniger zu tun.

Das dramatischste Beispiel für die Intel-Evolution ist der Pentium 4, der in Bezug auf die Taktfrequenz einen großen Ausreißer darstellte, aber keine angemessene Leistung zeigte. Die Bitverschiebungsanweisungen, die in früheren Chips 32 Bits in einem einzigen Zyklus verschieben konnten, verwendeten eine viel einfachere Schaltung im Pentium 4, die für jede Bitverschiebung einen einzigen Zyklus erforderte. Die Erwartung war, dass die Pentium 4-Architektur aufgrund ihrer Einfachheit auf viel höhere Taktraten skaliert werden kann, aber das hat nicht geklappt, und die schnelle, komplexe Umschaltschaltung kehrte in den Core- und späteren Architekturen zurück.

Russell Borogove
quelle
2

Von IEEE:

Warum also nicht die Uhr schneller stellen? Weil sich die Kosten für Stromverbrauch und Wärmeabgabe nicht mehr lohnen. Intel bezeichnet den Kompromiss zwischen Geschwindigkeit und Leistung als "grundlegendes Theorem für Multicore-Prozessoren". Aus diesem Grund ist es sinnvoll, zwei oder mehr Verarbeitungsbereiche oder Kerne auf einem einzigen Chip zu verwenden.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

Azevedo
quelle