11Aug
Wenn Sie schon einmal viel Vergleich für eine neue CPU gemacht haben, haben Sie vielleicht bemerkt, dass alle Kerne die Geschwindigkeit haben und nicht eine Kombination aus verschiedenen. Warum das? Der heutige SuperUser Q & A Post hat die Antwort auf die Frage eines neugierigen Lesers.
Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.
Die Frage
SuperUser-Lesegerät Jamie möchte wissen, warum CPU-Kerne alle die gleiche Geschwindigkeit haben anstelle von verschiedenen:
Im Allgemeinen würden Sie beim Kauf eines neuen Computers basierend auf der erwarteten Arbeitslast für den Computer bestimmen, welcher Prozessor gekauft werden soll. Die Leistung in Videospielen wird in der Regel von der Geschwindigkeit eines einzelnen Kerns bestimmt, während Anwendungen wie die Videobearbeitung von der Anzahl der Kerne bestimmt werden. In Bezug auf das, was auf dem Markt verfügbar ist, scheinen alle CPUs ungefähr dieselbe Geschwindigkeit zu haben, wobei die Hauptunterschiede mehr Threads oder mehr Kerne sind.
Zum Beispiel:
- Intel Core i5-7600K, Grundfrequenz 3,80 GHz, 4 Kerne, 4 Threads
- Intel Core i7-7700K, Grundfrequenz 4,20 GHz, 4 Kerne, 8 Threads
- AMD Ryzen 5 1600X, Grundfrequenz 3,60 GHz, 6Kerne, 12 Threads
- AMD Ryzen 7 1800X, Grundfrequenz 3,60 GHz, 8 Kerne, 16 Threads
Warum sehen wir dieses Muster zunehmender Kerne, aber alle Kerne haben die gleiche Taktfrequenz? Warum gibt es keine Varianten mit unterschiedlichen Taktraten? Zum Beispiel zwei "große" Kerne und viele kleine Kerne.
Statt etwa vier Kerne bei 4,0 GHz( dh 4 × 4 GHz, 16 GHz maximal), wie wäre es mit einer CPU mit zwei Kernen bei 4,0 GHz und vier Kernen mit 2,0 GHz( dh 2 × 4,0 GHz + 4 ×2.0 GHz, maximal 16 GHz)?Wäre die zweite Option bei Single-Thread-Workloads genauso gut, bei Multithread-Workloads jedoch möglicherweise besser?
Ich stelle dies als allgemeine Frage und nicht speziell in Bezug auf die oben aufgeführten CPUs oder über eine bestimmte Arbeitslast. Ich bin nur neugierig, warum das Muster ist, was es ist.
Warum haben CPU-Kerne alle die gleiche Geschwindigkeit statt der anderen?
Der Antwort-
-SuperUser-Mitwirkende bwDraco hat die Antwort für uns:
Dies wird als heterogenes Multi-Processing( HMP) bezeichnet und ist weit verbreitet bei mobilen Geräten. In ARM-basierten Geräten, die big. LITTLE implementieren, enthält der Prozessor Kerne mit unterschiedlichen Leistungs- und Leistungsprofilen, dh einige Kerne laufen schnell, zeichnen aber viel Leistung( schnellere Architektur und / oder höhere Taktung), während andere energieeffizient, aber langsam sind( langsamere Architektur und / oder niedrigere Takte).Dies ist nützlich, da der Stromverbrauch überproportional ansteigt, wenn Sie die Leistung erhöhen, sobald Sie einen bestimmten Punkt überschritten haben. Die Idee hier ist, um Leistung zu bekommen, wenn Sie es brauchen, und Akkulaufzeit, wenn Sie es nicht tun.
Auf Desktop-Plattformen ist der Stromverbrauch viel weniger ein Problem, so dass dies nicht wirklich notwendig ist. Die meisten Anwendungen erwarten, dass jeder Kern über ähnliche Leistungsmerkmale verfügt, und Planungsprozesse für HMP-Systeme sind viel komplexer als die Planung für herkömmliche SMP-Systeme( Windows 10 unterstützt technisch HMP, ist jedoch hauptsächlich für mobile Anwendungen gedacht)Geräte, die ARM big. LITTLE verwenden).
Außerdem sind die meisten Desktop- und Laptop-Prozessoren heute weder thermisch noch elektrisch auf den Punkt beschränkt, an dem einige Kerne schneller laufen müssen als andere, selbst bei kurzen Bursts. Wir haben im Grunde eine Wand darüber getroffen, wie schnell wir einzelne Kerne bauen können, so dass das Ersetzen einiger Kerne durch langsamere die verbleibenden Kerne nicht schneller laufen lässt.
Obwohl es einige Desktop-Prozessoren gibt, die einen oder zwei Kerne haben, die schneller laufen können als die anderen, ist diese Fähigkeit derzeit auf bestimmte sehr hochwertige Intel-Prozessoren beschränkt( bekannt als Turbo Boost Max Technology 3.0) und bringt nur einen geringen Gewinn mit sichin der Leistung für jene Kerne, die schneller laufen können.
Zwar ist es durchaus möglich, einen herkömmlichen x86-Prozessor mit großen, schnellen Kernen und kleineren, langsameren Kernen zur Optimierung von Workloads mit hohem Threading zu entwickeln. Dies würde jedoch das Prozessordesign erheblich komplizierter machen, und Anwendungen werden es wahrscheinlich nicht richtig unterstützen.
Nehmen Sie einen hypothetischen Prozessor mit zwei schnellen Ka- by Lake-Kernen( 7. Generation) und acht langsamen Goldmont( Atom) -Kernen. Sie hätten insgesamt 10 Kerne, und Workloads mit hohem Threading, die für diese Art von Prozessor optimiert sind, können einen Leistungsgewinn und eine höhere Effizienz gegenüber einem normalen Quad-Core-Kaby-Lake-Prozessor erzielen. Die verschiedenen Typen von Kernen weisen jedoch sehr unterschiedliche Leistungsstufen auf, und die langsamen Kerne unterstützen nicht einmal einige der von den schnellen Kernen unterstützten Befehle, wie AVX( ARM vermeidet dieses Problem, da sowohl die großen als auch die KLEINEN Kerne die gleichen Anweisungen unterstützen).
Wiederum gehen die meisten Windows-basierten Multi-Threaded-Anwendungen davon aus, dass jeder Kern das gleiche oder fast das gleiche Leistungsniveau hat und die gleichen Anweisungen ausführen kann, so dass diese Art von Asymmetrie wahrscheinlich zu einer weniger als idealen Leistung führtstürzt sogar ab, wenn es Anweisungen verwendet, die von den langsameren Kernen nicht unterstützt werden. Während Intel die langsamen Kerne modifizieren könnte, um erweiterte Instruktionsunterstützung hinzuzufügen, so dass alle Kerne alle Anweisungen ausführen können, würde dies Probleme mit der Softwareunterstützung für heterogene Prozessoren nicht lösen.
Eine andere Herangehensweise an das Anwendungsdesign, die näher an dem liegt, was Sie wahrscheinlich in Ihrer Frage denken, würde die GPU für die Beschleunigung von hochparallelen Teilen von Anwendungen verwenden. Dies kann mit APIs wie OpenCL und CUDA geschehen. Wie für eine Single-Chip-Lösung, fördert AMD Hardware-Unterstützung für GPU-Beschleunigung in seinen APUs, die eine traditionelle CPU und eine leistungsstarke integrierte GPU auf dem gleichen Chip, wie heterogene Systemarchitektur, kombiniert, obwohl dies nicht viel Industrie außerhalb aufgenommen hatvon einigen spezialisierten Anwendungen.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.
Bildkredit: Mirko Waltermann( Flickr)