Warum überhaupt noch feste Anzahl von CPU Kernen statt flexibler ALU Gruppierung?

Martyn

Ensign
Registriert
Nov. 2024
Beiträge
194
Bin gerade auf den Gedanken gekommen das man heutzutage doch eigentlich garkeine feste fest vorgegebene Anzahl von CPU Kernen mehr bräuchte, sondern man einfach die CPUs einfach mit einem flexiblen Frontend und flexiblen Shedulern ausstatten könnte, welche die vorhandenen ALUs je nach gewähltem Profil flexibel auf virtuelle Kerne aufteilen könnten. Das könnt man dann über das EFI / BIOS erledigen.

Man könnte dann eine CPU Familie zum Beispiel in den Ausbaustufen 36+24+12 / 48+32+16 / 60+40+20 / 72+48+24 / 96+64+32 ALUs ( Integer + Gleitkomma + AVX ) und mit verschiedenem Maximaltakt anbieten.

Dann aber z.B. bei der mittleren 60+40+20 Stufe im EFI / BIOS folgende Einstellungen zulassen:

10 Performance-Kerne
4 Performance-Kerne + 12 Efficiency-Kerne
2 Performance-Kerne + 24 Efficiency-Kerne
4 Performance-Kerne + 8 Efficiency-Kerne + 4 ARM Kerne
4 Performance-Kerne + 6 Efficiency-Kerne + 6 ARM Kerne
2 Performance-Kerne + 20 Efficiency-Kerne + 4 ARM Kerne
2 Performance-Kerne + 16 Efficiency-Kerne + 8 ARM Kerne

10 Performance-Kerne wären wahrscheinlich ideal fürs Gaming, die Konfigurationen mit ARM Kernen aber zum Beispiel um Android-Apps nativ laufen zu lassen.
 
ich würde vermuten, dass die flexibilität den Preis einer komplexeren und dadurch langasmeren Kommunikation unter den Elementen hat, was dann die performanz verringert. Soweit mir bekannt ist ohnehin halbleiter "platz" den man durch den schritt sparen würde ohnehin keine knappe ressource un man eher etwas platz benötigt um die abwärme abführen zu können.
 
Was du willst ist also quasi eine CPU nach GPU-Vorbild. Dort gibt es auch "ALUs", die man allerdings Unified-Shader-Einheiten (oder CUDA-Cores oder Shader-Cores oder ALU-Cores) nennt.

Für MIMO-Aufgaben (multiple input and multiples output) mit überschaubaren Aufgabenbereich ist das ein gutes Design, aber bei unserer Desktop-Arbeit überwiegen eher komplexe, nichtlineare Aufgabenstellungen.

Massiv-parallele Verarbeitung ist gar nicht nötig und auch oft nicht möglich. Also wozu Geld in ein entsprechendes Design stecken, das kein Vorteil bietet? Im Gegenteil: Statt die Prozesse auf eine relativ überschaubare Anzahl von Kernen zu verteilen, muss jetzt bei jeder kleinen Aufgabenstellung vom Scheduler immer wieder geschaut werden, wo denn der Prozess als nächstes ausgeführt werden muss. Der Prozess springt dann also von ALU zu ALU. Das ist extrem ineffizient. Programme leiden heute schon teils unter enormen Performance-Verlusten, wenn sie vom Scheduler von Kern zu Kern verschoben werden.
 
  • Gefällt mir
Reaktionen: Martyn, Volvo480, .fF und 2 andere
Für mich klang das Konzept, was Jim Kellers Truppe bei Intel sich ausgedacht hatte (bis sie gegangen sind), sehr interessant: Rentable Units statt Hyperthreading. Tweaktown dazu:
Beast Lake Next rumored with 2x IPC over Raptor Lake
Instead of losing P-Core counts and getting smaller and more efficient cores, there would've been monster cores with "Rentable Units". These RU modules would have 2 threads per RU module, which wasn't Hyper-Threading. If you need lots of performance... they stay as one, if you need more threads, they split up dynamically. That. Would've. Been. Exciting, Intel.

Read more: https://www.tweaktown.com/news/1002...ver-raptor-pat-gelsinger-killed-it/index.html
Ob das am Ende auch den erhofften Performance-Sprung gebracht hätte, steht natürlich auf nem anderen Blatt. Aber das Konzept war auf jeden Fall mal "anders".
 
  • Gefällt mir
Reaktionen: Martyn
Klingt für mich nach Hyperthreading, das nach Bedarf an- und abgeschaltet werden kann. Die hätten damit vor dem gleichen Problem gestanden wie AMD jetzt mit 9900X3D-CPUs, wo nicht alle Chiplets den 3D-Cache haben. Wo soll ein Prozess ausgeführt werden? Braucht der jetzt mehr Performance oder reicht weniger auch aus? Das ist an sich nicht für einen Computer entscheidbar, deswegen pflegt AMD auch eine entsprechende Liste von Programmen, wo drin steht, was auf welchen Kernen ausgeführt werden soll.
 
Krik schrieb:
Was du willst ist also quasi eine CPU nach GPU-Vorbild. Dort gibt es auch "ALUs", die man allerdings Unified-Shader-Einheiten (oder CUDA-Cores oder Shader-Cores oder ALU-Cores) nennt.
Ja, so in etwa hätte ich mir das vorgestellt.

qiller schrieb:
Ob das am Ende auch den erhofften Performance-Sprung gebracht hätte, steht natürlich auf nem anderen Blatt. Aber das Konzept war auf jeden Fall mal "anders".
Das kann natürlich gut sein, aber irgendwie würde ich mir nach dme gefühlten technologischen Trippelschritten der letzten Jahre mal wieder was Grössers Neues wünschen.
 
@Martyn
Das täuscht, wenn man ein paar Intel-Generationen mal ausklammert. Die CPUs werden seit Jahren bei jeder Generation um 10-20 % schneller. Die CPUs bekommen immer mehr Kerne, sie enthalten mittlerweile auch verschiedene Arten von Kernen (mit/ohne 3D-Cache, P- oder E-Core). AMD führt Chiplets ein. Neuerdings enthalten sie NPUs. Da passiert also einiges.

Die modernen Highend-CPUs bieten so viel Leistung, dass man dafür passende Anwendungen schon suchen muss.
 
  • Gefällt mir
Reaktionen: JumpingCat
Zurück
Oben