Singelcore und was macht der Rest des Systems?

Registriert
März 2020
Beiträge
159
Hallo

Wie der Titel schon sagt geht es um Singelcore Leistung. Ich höre immer wieder das es ja in Spielen besser ist wenn die Singelcore Leistung hoch ist. Was ich mich aber die ganze Zeit Frage ist, was macht der Rest des System dabei im Hintergrund?

Ich meine bei mir laufen nicht nur 6 Game Launcher sondern auch GHub von Logitech, meisten Firefox mit mehr als 5 Tabs in 2 Fenstern, die AMD Radeon Software, GPU Tweak, Spotify, Oculus Tray Tool usw im Hintergrund. Die benötigen doch auch Leistung.

Läuft das dann alles auf einem Kern wenn der Singelcore in Games hochtaktet oder laufen die anderen Kerne dann nur mit Minimalleistung und übernehmen die ganzen Progs? Oder springt das ganze internt immer wieder um von Multi auf Singelcore?

Wenn jemand ne gute Seite kennt die das erklärt reicht mir auch der Link, ich habe versucht was zu finden, aber die Suchmaschien zeigen nur Vergleiche und Benchmarks wenn man da etwas eingibt bezüglich singelcore (Was auch sonst)
 
Hi @Steven Coolmay

Windows braucht deine anderen Kerne auch und lastet diese gleichmässig aus mit deinen Gamelaunchern usw. Was bei der Singlecore Leistung den Ausschlag gibt ist der Boosttakt deines Prozessors, das heisst die Taktfrequenz wird bei Bedarf erhöht um die Berechnungen durchzuführen. Bei älteren Games werden oft nur wenige Cores genutzt, daher ist die Singlecore Leistung wichtig. Bei Cyberpunk z.B werden viele Cores ausgelastet, da kommt es auch drauf an, mehr Kerne zu haben, die mit einem hohen Takt laufen können.

Ich bin kein Profi, aber das ist so ungefähr mein Halbwissen, welches ich sehr gerne mit dir Teile... ^^
 
  • Gefällt mir
Reaktionen: Baal Netbeck und Steven Coolmay
Singlecore Leistung ist nur bei schlecht optimierten Spielen relevant, bei allen wo schon 2+ Kerne genutzt werden rückt das bereits in den Hintergrund.

Das System kann ja weiterhin die anderen Kerne belasten mit dem ganzen andren Kram den du laufen hast, dafür sind die ja da.
 
  • Gefällt mir
Reaktionen: M4ttX, H3llF15H und Steven Coolmay
Es geht abseits der Gesamtleistungsfähigkeit aller Kerne zusammen, um die Fähigkeit einen sehr kritischen Softwarethread, z.B. den Mainthread eines Spiels so schnell abzuarbeiten, dass genau dieser Mainthread keine weiteren auf seiner Arbeit beruhenden weiterverteilten Arbeiten z.B. nach ihm gespawnte Parallele Threads so stark verlangsamt, dass das Spielvergnügen darunter leiden würde.
UE4_parallel_frontend.jpg
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: THE_P4IN, Baal Netbeck, Steven Coolmay und eine weitere Person
Das ist abhängig von der System- und Softwarearchitektur (Betriebssystem und Anwendungssoftware) und lässt sich somit nicht in Kürze beantworten.
 
  • Gefällt mir
Reaktionen: Lawnmower, PHuV und Steven Coolmay
Kyze schrieb:
Singlecore Leistung ist nur bei schlecht optimierten Spielen relevant, bei allen wo schon 2+ Kerne genutzt werden rückt das bereits in den Hintergrund.
Naja, wenn ein Spiel nur wenig Kerne nutzt, ist es weniger die Optimierung und eher die Architektur des Spiels (der Software).
 
  • Gefällt mir
Reaktionen: Steven Coolmay
@Flare Ja, danke. Kritischer Thread. Mit dieser Erklärung kann ich etwas Anfangen.
Ist also so ähnlich wieder kritische Pfad im Netzplan der Softwareentwicklung? Der Rest darf ein wenig hin und her gerschoben/verzögert werden nur der kritische hat immer Vorrang.

@ella_one
Hat das auch etwas mit der Prozessorzeitplanung in den Leistungsoptionen zu tun?
Clipboard02.jpg


Sprich Option Programme der kritische Pfad wird bevorzugt, Hintergunddienst und alles wird gleich behandelt? Also so grob.
 
Steven Coolmay schrieb:
Was ich mich aber die ganze Zeit Frage ist, was macht der Rest des System dabei im Hintergrund?
Das meint nicht, dass nur ein Kern belastet wird oder werden soll. Das meint schlicht nur, dass Spiele heute leider oft immer noch nicht alle Kerne der CPU nutzen können. Eine Engine mit maximal 4 Threads wird also auf einer 4 Kern CPU mit 120% Leistung pro Kern besser laufen als auf einer 8 Kern CPU mit 100% Leistung pro Kern, jetzt stark vereinfacht ausgedrückt. Daher wird hier die Leistung eines einzelnen Kerns stärker gewichtet als die Gesamtleistung aller Kerne.

Es ist damit nicht gemeint, dass ein Kern die Arbeit machen soll und der Rest des Systems Däumchen dreht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Baal Netbeck und Steven Coolmay
Singlecore in 'Spielen' ist vor allem bei Spielen gefragt, deren kaum überarbeitete Engine noch immer auf Uralthardware aus den frühen bis Mitte der 2000er ausgelegt ist, siehe CSGO (Valve hat deren letzten 'eigenen' Spiele als Auftragsarbeit erstellen lassen, und bis auf Steam wurde so gut wie jedes komplett von denen selbst entwickelte Projekt nach 1-2 Jahren abgewickelt und eingestampft, siehe der beliebte Steam Controller, oder das 'Steambox' Projekt), League of Legends, oder Fortnite.

Die meisten Engines heutzutage sind auf zumindest 4 Threads ausgelegt, ob diese nun auf 4 echten Kernen oder 4 Virtuellen laufen, ist auf dem Papier erstmal egal, 4 echte ist natürlich besser.
 
@Steven Coolmay Zum Zocken/Alltrag immer auf "Programme" eingestellt lassen. Nur wenn dein System primär dazu dient Dienste laufen zu lassen und diese viele Ressouren brauchen solltest du das andere einstellen.

Zum Thema SingleCore: All deine aufgelisteten Programme laufen locker auf einem einzigen Kern (Scheduler), ohne dass dieser davon überhaupt warm wird.
Für Games ist die SingleCore Leistung wichtig das stimmt, das heißt aber nicht dass die anderen Kerne Pause haben.

Ob Game oder irgendein Programm: Man kann nicht alles in unendlich viele kleine Stücke teilen um es zu berechnen. Einige Berechnungen benötigen eine andere Berechnung die bereits abgeschlossen ist. Das hat nicht nur etwas mit irgendeiner Engine zu tun. Daher wird es auf absehbarer Zeit immer wichtig sein dass einige Kerne sehr hoch takten können. Wenn du nebenbei in Firefox irgendetwas machst wird das natürlich nicht auf den Kern laufen, der sowieso schon am Anschlag ist.
 
  • Gefällt mir
Reaktionen: Baal Netbeck und foo_1337
Steven Coolmay schrieb:
Ich höre immer wieder das es ja in Spielen besser ist wenn die Singelcore Leistung hoch ist.
jein.
wenn im MC der Takt stark abfällt, dann kann es wieder anders aussehen.
Hoher Takt auf 8Kernen würde ich sagen, ist wichtiger, als nur der auf einem Kern.
 
bedingt
wenn für Hintergrund Programme höhere prio haben reagiert der pc schneller auf eingaben
Wenn für Programme dann arbeitet der pc die Programme schneller ab.
das ist aber vorrangig für die ram Nutzung vs auslasgerungsdatei hat man mehr als genug ram erübrig sich diese Einstellung.

Thema singletrhead

PC sind Dumm den diese arbeiten eine Aufgabe nach der nächsten ab. Und das schnell
Sehr schnell.
Durch den kniff out of order der erstmals 1994 auf dem markt kam wurde es möglich das zuvor genutzte Prinzip in order zu überwinden.
Ab dann wurde es möglich keine Ewigkeit mehr zu warten bis ein Programm die Berechnung beendet hat. Und der PC wurde multitasking fähig.

Windows 95 war geboren
Somit können Programme ihre Berechnung vom os unterbrochen werden oder die zeit des warten auf dem Cache Inhalt bzw ram und die Rechen Leistung parallel nutzen zu können.
Hier greift ja der hardware bug von intel spectre an.

Das OS verwaltet lediglich alle Programme die es zum betrieb braucht und teilt die Rechen Leistung gemessen an zeit zu.
Im grunde sind alle Programme primär singlethread
Sämtliche multicore programme sind entweder zusammengeasste singlethreadaufgaben die abgarbeitet werden oder in einen vituellen renderthread die eine liste abarbeitet und dem programm ein singelthread vorgaukelt vernehmlich der api
Echte parallele Programme gehen aus reiner Logik nicht
Den es sind die unbekannte Ergebnisse der Berechnung den vom nächsten schritt im Programm abhängen daher ist immer ein hoher singlethread Leistung im Vorteil man kann allerdings per software die api und programmsprachen vortäuschen das nur ein thread genutzt wird (kern)
Dazu kommt das das OS mehrere Programme gleichzeitig laufen lassen kann das ging bis 2005 nur begrenzt
meist bis der ram zu klein wurde.
Heute sind Ram oder Prozessor zeit nahezu unbegrenzt lediglich die datentransferraten limitieren PC heute noch extrem.
Größte Nadelöhre
USb Protokoll von usb 2-3,2 30mb bis 125mb
HDD und sata Protokoll max sind von 1 bis 3 80mb 600mblettere hängen immer vom mainboard pcie lanes ab die am chipsatz geteilt werden von der cpu woher alle datenleitungen im pc gesteuert werden. auf Konsumenten PC ist das meist 4 lanes im standard pcie2 3 oder 4
PCIe Protokollpcie1 1,1 2 3 4 x1 von 125mb bis 2gb pro lane
RAm standard von ddr4 2133 bis 3866 =18gb-31gb singlechannel dual fast doppelt ~meist um die 1,8fach
31-56gb
 
  • Gefällt mir
Reaktionen: Baal Netbeck
syfsyn schrieb:
Durch den kniff out of order der erstmals 1994 auf dem markt kam wurde es möglich das zuvor genutzte Prinzip in order zu überwinden.
Ab dann wurde es möglich keine Ewigkeit mehr zu warten bis ein Programm die Berechnung beendet hat. Und der PC wurde multitasking fähig.
Multitasking hat nicht zwangsläufig mit OOE zu tun. Multitasking gab es weit vorher, auch bei x86. (Und OOE gab es auch schon vorher in anderen Architekturen).

syfsyn schrieb:
Sämtliche multicore programme sind entweder zusammengeasste singlethreadaufgaben die abgarbeitet werden oder in einen vituellen renderthread die eine liste abarbeitet und dem programm ein singelthread vorgaukelt vernehmlich der api
Oh je...

syfsyn schrieb:
Dazu kommt das das OS mehrere Programme gleichzeitig laufen lassen kann das ging bis 2005 nur begrenzt
meist bis der ram zu klein wurde.
Jetzt wird es aber richtig abenteuerlich.

Die anderen Sätze lasse ich mal unkommentiert.
 
Ich denke es liegt zu grossen Teilen einfach nur daran, wie diese Software geschrieben ist, wie sie eben mit mehren Kernen umgeht.

Manche Programme können garnicht mit vielen Kernen umgehen. Die nutzen im Pinzip nur einen. Da ist SC Performance natürlich das wichtigste.

Andere Software nutzt nur einen Kern, kann aber z.b auf 8 Kernen 8 Instanzen laufen haben. Da zählt also, wieviel Performance eben diese 8 Kerne haben. Sehr gut dafür ist z.b sowas wie Boinc, wo jedem Kern eine Berechnung zugewiesen wird. Habe ich nur 2 Kerne, erreiche ich weniger als eben mit 8. Egal fast wie die SC Performance ist. Vorteil ist einfach, das man eben 8 statt 2 Workloads abarbeiten kann.

Der Vorteil den der Nutzer mit vielen Kernen hat ist auch, das du eben spielen kannst, während im Hintergrund etliches läuft. Das ging früher bei nur einem Kern sehr viel schlechter bis garnicht.

Kann man auch leicht selber prüfen, indem man eben seine Anzahl der Kerne limitiert. Mit 2 kannst du eher nicht problemlos spielen und deine anderen Programme offen haben. Mit 4 geht das sicher besser.
 
Steven Coolmay schrieb:
Ich meine bei mir laufen nicht nur 6 Game Launcher sondern auch GHub von Logitech, meisten Firefox mit mehr als 5 Tabs in 2 Fenstern, die AMD Radeon Software, GPU Tweak, Spotify, Oculus Tray Tool usw im Hintergrund. Die benötigen doch auch Leistung.
Erstmal... Warum muss das alles laufen?
Und zweitens... Ja die benötigten auch Leistung, also sollte so wenig wie möglich laufen, um die bestmögliche Performance in Spielen zu haben.

Egal ob du genug RAM für alles hast und deine CPU neben dem Spiel noch Reserven hat.... Alles was nebenbei läuft, kann hinderlich sein... Vor allem weil die anderen Programme immer wieder ihre eigenen Daten in die CPU Caches bringen und damit Daten des Spiels raus wirft...
Steven Coolmay schrieb:
Wie der Titel schon sagt geht es um Singelcore Leistung. Ich höre immer wieder das es ja in Spielen besser ist wenn die Singelcore Leistung hoch ist. Was ich mich aber die ganze Zeit Frage ist, was macht der Rest des System dabei im Hintergrund?
Das ist denke ich eine übliche Verallgemeinerung die dich verwirrt.

Genauer musste man wohl sagen, dass die Spieleleistung (im CPU Limit) oft von der Rechenleistung des CPU Kerns dominiert wird, der gerade den main-thread des Spiels abarbeitet... Und auch das ist eine starke Verallgemeinerung.

Nimm einen modernen 8 Kerner ...und ignorieren, dass die meist 16threads haben. ;)

Benchmarks wie cinebench können den perfekt auslasten, da sie jedem thread unabhängige Aufgaben zuweisen, die größtenteils in den CPU Cache passen.... So kann jeder Thread eigenständig arbeiten und muss kaum auf den Ram oder andere Threads warten.
Die CPU wird hier aber auch besonders warm usw. und die modernen boost Varianten senken den Takt... Man findet eine "multicore Leistung"(für dieses Programm).

Ich kann Cinebench auch anweisen nur einen Threads zu nutzen.
Der boost wird hier höher ausfallen... Und der eine Kern leistet mehr, als 1/8 der mc Leistung.... Wir haben die single Threads Leistung gefunden.


Bei Spielen ist das ungemein schwieriger... Andere haben es ja schon beschrieben.... multithreaden ist mit den vielen Abhängigkeiten problematisch..... Ein Threads muss darauf achten, dass alles chronologisch passt und die Arbeit verteilen, zusammenführen und noch vieles mehr.
Oft werden dabei inzwischen 4-7 CPU Kerne wirklich ausgenutzt.... Der Verbrauch ist also höher als bei einem Thread in Cinebench... Und damit sinkt auch der Takt und die Leistung des CPU Kerns, der gerade den Main Threads bearbeitet.

Und die Kommunikation dauert auch seine Zeit... Und es gibt viel mehr RAM Zugriffe als bei Cinebench...usw.

Die Situation ist also viel komplexer und kann eigentlich nicht mit "single core Leistung", verglichen werden.

Trotzdem ziehen viele den Vergleich, da CPUs mit mehr Kernen/Threads stark in der mc Leistung zunehmen und das nicht im gleichen Maße in Spielen hilft.
Die sc Leistung korreliert oft besser mit der Spiele Leistung.

Meiner Meinung nach ist das kein allgemeingültiger Zusammenhang.... Eher eine öfter zutreffende Bauernregel.
 
  • Gefällt mir
Reaktionen: BloodReaver87
Eine schöne Analogie aus diesem Artikel:

Wenn eine Frau für ein Baby 9 Monate braucht schaffen es 9 Frauen deswegen nicht in einem Monat. Wenn ich aber 9 Babies möchte schaffen es 9 Frauen in 9 Monaten

:D

Fazit: Die Möglichkeit zur Parallelisierung hängt vom Ergebnis ab, das angestrebt wird.
 
  • Gefällt mir
Reaktionen: Baal Netbeck
Seh ich genauso wie Baal Netbeck. Wenn der Main Thread limitiert, bringen mehr Cores erstmal gar nichts.
Es ist also bei Spielen essenziell, dass ein einzelner Core viel Leisten kann. Auch wenn alle anderen schon (teil) belastet sind und man nicht nur viele (schwache) Cores hat.

Zudem ist die Skalierbarkeit mit vielen Threads/Cores beschränkt. Doppelt so viele Kerne bringen noch lange nicht doppelt so viel Performance. Je stärker man immer mehr Kerne auslasten will, desto Spezieller und parallelisierbarer muss die Aufgabe sein.

Spiele kann man nicht beliebig parallelisieren, wobei natürlich versucht wird, genau das zu erreichen. Wie weit man das treiben kann, wird die zeit zeigen.
 
  • Gefällt mir
Reaktionen: Baal Netbeck und foo_1337
floq0r schrieb:
Wenn eine Frau für ein Baby 9 Monate braucht schaffen es 9 Frauen deswegen nicht in einem Monat. Wenn ich aber 9 Babies möchte schaffen es 9 Frauen in 9 Monaten
Um diese meist unzutreffenden, aber lustigen Analogien zu unterstützen möchte ich das "multithreaded Baby" einführen.

Die Main-Mama wird befruchtet, teilt dem Embryo aber in 9 Teile und gibt den anderen 8 Frauen je einen Teil... Dann brüten alle 9 Frauen an ihrem Arm oder Bein, vor sich hin und wenn sie fertig sind, werden alle Teile wieder in der Main-Mama zusammengeführt.

Die muss die Teile noch richtig anordnen und verbinden und dann das Gesamtergebnis auswerfen.

Wegen dem zusätzlichen Aufwand und weil Frau 7 ungewöhnlich lange für die Organe gebraucht hat, ist das Baby aber erst nach 3-4 Monaten fertig.

Nur 3 Frauen hätten vermutlich 5-6 Monate gebraucht.... Mehr Frauen sind also deutlich besser als eine.... Aber um so mehr Frauen um so schwieriger ist es Vorteile zu finden....20 Frauen bringen kaum mehr als 9.... Sind eventuell sogar langsamer, weil die Main-Mama mehr Zeit mit telefonieren und Zusammenkleben von Baby-Kleinteilen verbringt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: BloodReaver87 und flying_ass
Oder Softwareentwicklung (eigentlich so gut wie alle Probleme) allgemein.

Selbst wenn du alleine ein Tool schreibst, das nach einer Woche fertig ist, dann bedeutet das nicht, dass du es mit sieben Programmieren auf einen Tag fertig gehabt hättest.

Beschränkte Parallelisierbarkeit ist eben ein universelles Problem, das wahrscheinlich auch niemals lösbar sein kann. Aufwand steigt exponentiell.
 
  • Gefällt mir
Reaktionen: Baal Netbeck
Ist denn jetzt bei der Schwangeren die SC oder eher die MC Leistung wichtig? :)
Kann die den Workload nicht auch in 8 Monaten schaffen, anstatt in 9? Indenm ich den Takt z.b erhöhe?
 
  • Gefällt mir
Reaktionen: Baal Netbeck
Zurück
Oben