Wadenbeisser schrieb:
Da es aber nach der Meinung einiger User so wahnsinnig unmöglich zu sein scheint mehr als 8 Kerne bei einem Programm zu nutzen dürfte das alles kein allso großes Problem sein denn es würde sich alles in einem Chiplet abspielen und die Kommunikation über den RAM damit entfallen.
ganz so einfach ist das leider nicht. Zum einen muss da bei Zen 2 die Kommunikation über den IO Die stattfinden, was aber nicht wirklich einen negativen Impact zu haben scheint - also gleich schnell wie auf einer Zeppelin Die des Ryzen 1 auch, schlicht über den L3. Zum Anderen, weiß dein Scheduler nicht wirklich was für ein Workset er bekommt.
zB: Cinebench. Jeder Kern bekommt vollkommen unabh vom anderen sein eigenen Speicherbereich und arbeitet diesen ab. Angenommen das wäre auf 4 Kerne begrenzt, wo lege ich nun die Last auf die CPU? Alles innerhalb eines Chiplets? Innerhalb eines CCX? Das verursacht zum einen einen thermalen Hotspot (taktet uU sogar runter da zu heiß), zum anderen limitiert hier im blödesten Fall etwas im Chiplet wie zB der L3 oder auch die Bandbreite zum IO Die. Das versucht man natürlich designtechnisch auszuschließen, also man versucht dass es egal ist auf welchem Kern eine Aufgabe landet.
Genauso gibt es andere Worksets bei denen es wichtig ist dass die Aufgaben in einem CCX landen da der gemeinsame L3 hier eine große Rolle spielt. Dazu gehören oft auch Games.
Einfach mal überlegen weshalb ausgerechnet bei AMD / Ryzen so viel Aufwand in so Dinge wie Updates, Scheduler Updates, Energiesparpläne, Game Mode... usw gelegt wird - immer mit dem Ziel einen Flaschenhals zu beseitigen und sei es die Threads auf geeignete Kerne zu legen.
Bei Zen 2 ist das alles schon durch die andere Architektur 10x besser im Griff als bei Zen 1, da war es wirklich Chaos pur mit dem Epcy und seinen 4 Die und dann noch TR 1/2 die nur Ram Zugriff an zwei dieser Die hatten...
Windows ging lange vollkommen easy an die Sache ran. Man hat in physische und logische Threads unterschieden und dann erst die einen, dann die anderen belegt. Zufällig. Und damit nicht eine thermische Spannung entsteht in diversen Zyklen zb den einen 100% belasteten Threads hin und her gewechselt. Das kann man jede Sekunde mal machen, ist für ne CPU ja ne Ewigkeit - auch wenns für uns recht Chaotisch aussieht im Tasktmanager.
Für AMD gab es die letzten Jahre 20 Sonderlösungen. Angefangen mit den Modulen, der CCX Thematik, dann die Multi Die Lösung Epyc, dann TR mit weniger Ram Kanälen usw... alles Dinge die beim Scheduler eine Rolle spielen. Wie gesagt, mit Zen 2 wurde es glücklicherweise wieder etwas einfacher.
Und Intel... Intel dachte sich wohl mit Mesh ist quasi vollkommen losgelöst welcher Thread auf welchem Kern landet. Einfach da ein flaches Konstrukt.
@ 8 Kerne.
Zum einen müsste es bei dir 4 Kerne heißen da 4 Kerne ein CCX sind, zum anderen gibts genug Tools die mehr auslasten.
Aber schau dir zb mal das Scaling von FFMPEG oÄ an, da findet recht viel InterCore Kommunikation statt und da spielt es dann eine große Rolle wo die Threads wie belastet werden.
Genauso bei Games. Games mögen 8 Kerne + auslasten, aber auch hier ist es ein vollkommen anderer Last Charakter als zb Cinebench da sie eben gemeinsam an Problemen arbeiten und nicht 100% getrennt wie Raytracing / Rendern zB.