Versuch mal alles gleichzeitig in Echtzeit zu betreiben, das schaft dein scheduler irgendwann nicht mehr, Preämtives Multitasking hat auch seine grenzen.
Das war in Echtzeit!? Knapp 250 aktive Prozesse, da schläft keiner, warum sollte ich Prozesse schlafen legen, dann kann ich sie auch schließen...
Mir erschließt sich dein Festhalten an diesem Punkt nicht... Wenn du sonstwas alles gleichzeitig kannst, mit sieben Armen und fünf Beinen, drei Köpfen und drölfzig Fingern - ist doch kein Ding. Aber bitte nicht immer so tun als würde da ausschließlich generische Volllast-Tasks die Regel sein. Die Regel ist kleine bis relativ geringe Hintergrundbelastung, die sogut wie jeder PC auf ner halben Arschbacke abfrühstückt. Wo ich absolut mit gehe ist bspw. das Streaming - wer streamt und dann den Stream gar noch per CPU encodiert, der hat natürlich Bedarf -> aber mal ehrlich, das ist exakt dieser von mir genannte generische Volllast Task. Je nach Qualitätssetting bekommt man da spielend auch den 12C Ryzen oder 16C Ryzen in die Ecke gefahren. Es ist ne absolute Nische und in der Form absolut nicht die Regel. Sooo viele andere Tasks, die man neben aktivem Spielen wirklich noch hinbekommen sollte und die dann noch hohe Last erzeugen soll, gibt es nicht. Was soll das denn sein? Benenn doch einfach mal ein paar ganz konkrete Beispiele!?
Ja Hardware ist auch Hardware trotzdem erfüllen GPUs andere Anforderungen als CPUs. Die Grundlage ist die gleiche.
Ich habe 1999 auch Quake3 und damals Untreal tournament auf einem Singlecore gezockt, hat auch funktioniert obwohl die Leistung der IPC damaligen Zeit ein X faches ist, würde 1 Kern / 1 Thread nicht mehr ausreichen um aktuelle Software laufen zu lassen.
Zum ersten, ist natürlich Käse - Hardware ist eben nicht gleich Hardware. Du hast es selbst gesagt, ne GPU erfüllt andere Anforderungen als ne CPU. Bei Software schaut das aber anders aus. Multithreading ist keine Neumode-Erscheinung, die es seit AMD Ryzen gibt. Das ist Programmierer-Basics zweite Klasse. Die wohl häufigste Form im Multithreading ist nicht das, was ihr in den Foren immer gern haben wollt - nämlich die Leistungsskalierung. Die häufigst genutzte Form von Multithreading ist einfach nur das Entkoppeln der verschiedenen Tasks von einander. Das heist eben nicht, dass diese zeitgleich laufen müssen, das heißt bestenfalls, dass diese zeitgleich laufen können. Aber der Knackpunkt ist eben, dass ein gleichzeitiges Ausführung in der Kann-Bestimmung bei ausreichend schneller sequenzieller Abarbeitung schlicht nicht notwendig ist.
Zum zweiten - das ist halt der falsche Denkansatz. Natürlich würde das auch mit nem Single Thread Prozessor gehen. Bitte keine Unwahrheiten verbreiten. Ich nutze sehr viele VMs, wo schlicht nur eine einzige vCPU zugewiesen ist. Weil mehr einfach nicht notwendig ist. Das ist nur ne Anforderungsfrage. Ein aktuelles Spiel wird aber meist mehr Anforderungen an einen Prozessor stellen, als du heute mit einem Single Thread erfüllen können wirst.
Man kann über drüber streiten wie aussagekräftig solche Benchmark sind, aber gerade in Modernen Games sieht man ganz klar Präferenz zu mehr Kernen.
Ein 9900k der hohe Taktraten hat ist eigentlich ganz vernünftig zum es nicht auf niedrigere Taktraten zu schieben warum dann doch etwas schneller geht.
Ich verstehe nicht, worauf du hinaus willst!?
Hast du meine Ausführung oben nicht gelesen? Ich habe dir schon versucht zu erklären, dass eine gewisse Basisperformance in einem Spiel notwendig ist - wenn man diese erfüllt, skaliert die FPS/die Frametimes meist nur noch über pro Thread Performance, wenn man sich in einem CPU Limit befindet. Ich sehe in deinem Video absolut keine Preferenzen - Winzige Mehrleistung aus 100% mehr Ressourcen sind schlicht nicht das, was aus meiner Sicht eine Skalierung bedeutet. Natürlich wird es im Detail, je nach Szene, je nach Anforderung schneller. Aber das hat auch erklärbare Gründe. Bspw. skaliert der NV GPU Treiber mit der CPU Breite. Ist der Prozessor "breiter", wird das Treiber Backend bei NV dafür sorgen, dass es eine gewisse CPU Skalierung gibt. Das geht soweit wie man Threads auseinander ziehen kann. Ein Spiel, was hohe Basisanforderungen an den Prozessor stellt -> bspw. wenn du ein Assassins Creed auf Origins oder Odysse auf 2C/4T ausführst, wirst du allein vom Spiel recht hohe CPU Belastung erhalten. Der zweite Thread des Kerns ist "makulatur" - er muss sich unter der Decke die Recheneinheiten mit dem anderen Thread teilen. Kommt dann noch der GPU Treiber OnTop, so wird man ein deutliches Leistungsproblem bekommen.
Es ist nachweisbar, dass NV GPUs mit ihrem Software Scheduling etwas anfälliger für diesen Umstand sind als bspw. AMD mit einem Hardware Scheduler. Hohe CPU Last schmeckt einer NV GPU also weniger als einer AMD GPU. Da gibts so nette Videos der "Fans" zu, die sich dann freuen, dass die AMD GPU schneller bei hoher CPU Last wird ohne zu verstehen, was da passiert.
Ändert im Umkehrschluss aber ncihts daran, dass es andersrum, nämlich nach oben, deswegen lange nicht wirklich gut skaliert. Weil die Basis, wenn sie einmal erfüllt ist, nicht mehr Leistung erzeugen kann. Es bleiben also ein paar Teile übrig, die je nach Spiel etwas mehr, mal etwas weniger stark auf CPU Multithreading anspringen und damit ein paar Prozent hoch oder runter zulegen. Thats it. Das ist keine Magic oder ultra komplex... Man muss es nur einfach auch verstehen wollen
Dennoch sieht man einen Trend, ein echter Hexacore ohne SMT wird durchaus gut ausgelastet das hatte man 2010 noch nicht.
Logischerweise hatte man das noch nicht... Die Anforderungen lagen auch deutlich niedriger... Denk doch mal andersrum - wenn der ganze Markt 6C/12T hätte - es würde nichts mehr darunter geben, dann kann man auch entsprechend damit "arbeiten". Bis das aber der Fall ist, vergehen eben nicht nur 2-3 Jahre. Sondern teils 10 und mehr Jahre. Dazu kommt, dass es häufig obenraus immer breiter wird, unten aber nicht auch nachgezogen wird. Es gibt heute genau so noch beliebte 2C/4T Modelle - im Zweifel muss man diese mit berücksichtigen als Entwickler. Einfach davon aus gehen, dass 12 Threads Volllast in einer Anwendung immer die Regel sein können funktioniert nicht. Weil man damit sogut wie den kompletten Mobile Markt ausklammert. Der eben der viel größere Anteil ggü. Desktops ist - ggf. den großen Schmetten noch viel mehr.
Gamersnexus hat den 3300x vs 7700k getestet und auch angemerkt ein Quadcore mit SMT geht noch, aber der läuft halt am Limit. Spätestens ab der 2070 Super wird dieser zur bremse. Ich hab noch Zeiten mit erlebt wo Leute mit Dualcores schon in Teamspeak Verzögerung und Latenz hatten, als sie nebenbei was gezockt hatte und die CPU auf 99%/100% auf Anschlag gelaufen ist.
Keine Ahnung, dann machst du was falsch - oder deine Leute. Teamspeak ist effektiv ein Witz, was Performance angeht.
Das CPU zu GPU Argument ist auch nicht wirklich haltbar. Wetten dass ich auch ne 2080TI mit nem 3300X ans Limit bekomme? Ist kein Akt - es ist nur eine Frage der Anforderungen an die GPU.
Das wird dann irgendwann mal ein Problem, wo das Spielebackend mehr Anforderungen setzt als ein 4C/8T Prozessor stemmen kann. Bis dahin limitiert normalerweise die GPU - ist diese schnell genug, dann bringt dir pro Thread Performance mehr Punkte als auf diese zu verzichten. Weil wie gesagt, FPS bekommst du durch Takt und IPC oder beides. Bis jetzt hat es schlicht nicht funktioniert, lieber doppelte Anzahl Cores zu kaufen anstatt die Kohle zu sparen und stattdessen 2 Jahre später ein aktuelles Modell zu erstehen. Wer Cores auf Vorat für die Zukauft ersteht, verbrennt Kohle. Kauf dann, wenn der Bedarf real vorhanden ist.