Die Hauptverbraucher im Idle sind nicht die CPUs. Da können ein paar Watt gespart werden aber das restliche System braucht viel mehr.
Verschiedene Plattformen brauchen unterschiedlich viel, weil unterschiedlich viele Funktionen zur Verfügung gestellt werden. Plattformen/Mainboards für viele Kerne und damit viel maximalverbrauch, haben in der Regel eine Spannungsversorgung, die mit ihrer Effizienz nicht auf Idle ausgelegt ist sondern darauf bei vollast nicht zu überhitzen.
Und wie schon gesagt wurde, ist die Situation bei GPUs, nicht so, dass alle Prozessoren an einer Aufgabe arbeiten sondern jeder macht seinen eigenen Krams. Da müssen ja vor allem tausende dreieckige Flächen aus ihren Positionen in der 3D Welt auf die Monitorebene projeziert werden. Vorher mussten da noch Texturen drüber gelegt werden. Da rechnet jeder Prozessor für sich und am Ende wird alles addiert. Und nachher müssen noch andere Prozessoren der CPU in der Nachbearbeitung ran......aber eigentlich läuft alles parallel und nacheinander und nicht zusammen.
Die CPUs können das auch. Wenn man sich Videobearbeitung oder Raytracing anguckt, dann berechnet eben jeder CPU Kern einen Bereich des Bildes und am Ende wird zusammengefügt.
Cinebench skaliert ja praktisch Perfekt mit mehr CPU Kernen.
Was nur schwer geht sind PC Spiele.
Da muss das Spielgeschenen in Echtzeit aktuell bleiben. Die meiste Arbeit, die man auslagert, muss wieder mit dem Rest zusammengeführt und synchronisiert werden.
Was der Spieler macht, was die KI macht und was die Physik macht, muss immer wieder synchronisiert werden und das bedeutet viel Kommunikation zwischen den CPU Kernen. Und in der Regel viele Wechsel im Cache und viele kleine Ram Zugriffe.
Bei klassischer DX11 Programmierung, wird ein CPU Thread damit beauftragt die Arbeit zu verteilen und wieder zusammenzuführen sowie die Drawcalls abzuarbeiten und den GPU Treiber zu füttern.
Gerade mit sehr vielen Objekten im Spiel werden die Drawcalls immer aufwendiger und egal wie viel des Spielgeschehens auf andere Kerne ausgelagert wird, irgendwann lohnt es sich gar nicht mehr, weil das Organisieren mehr Rechenzeit benötigt als die eigentlichen Berechnungen.
Und die Drawcalls sind mit mehr Objekten mehr Arbeit.
Und dann hängt man im CPU limit weil ein CPU Kern überlastet ist.
Nvidia mit ihrem halben softwaresheduler trickst da etwas rum und lässt die Drawcalls auf anderen CPU Threads berechnen.
AMD GPUs haben sich da in eine unflexible Sackgasse manövriert, wo der Hardware Sheduler das standardverfahren erzwingt(Zumindest ist das die allgemeine Erklärung, die man so findet)
low level APIs zeigen, dass es auch anders geht und irgendwie alles beliebig verteilt werden kann. jeder sendet seine Infos einfach direkt an die GPU ohne zusammenzuführen und ohne Umweg über den Treiber.
Frag mich nicht wie, aber an Ashes of the Benchmark sieht man wie das funktionieren kann. Im DX12 CPU Benchmark wird meine 8 Kern 16 Thread CPU zu 80-90% ausgelastet...gleichmäßig über alle Threads.
Natürlich ist AotS auch ein Extrembeispiel, wo unsinnig viele Objekte und Effekte benutzt werden um die CPU Last hochzutreiben.
Aber mit der Technik wären so Spiele wie Supreme Comander oder Starcraft 2 plötzlich mit vielen 100 FPS möglich.
Shooter werden von sowas nicht so stark profitieren, aber wenn man dann anfängt mit den neuen Möglichkeiten eine weiter zerstörbare Umgebung oder so umzusetzen, dann sehe ich da noch viel Potential.
Aber egal ob high oder low level API. Gerade wenn viele CPU Kerne benutzt werden, ist der Bedarf an Kommunikation groß. Und um so mehr CPU Kerne, um so länger die Kommunikationswege.
Wenn genug für viele Kerne zu tun ist, dann ist es natürlich gut sie zu haben.
Besser als nur 4 oder weniger Kerne zu haben, die dann überlastet sind.
Aber gerade alte Spiele, die nur einen Kern unterstützen und deren Arbeit dann teilweise vom bescheuerten Windows 10 Scheduler von Thread zu Thread geschoben wird um eine gleichmäßige Auslastung aller Kerne zu erhalten, laufen dann auf vielen CPU Kernen eher bescheiden.