• Mitspieler gesucht? Du willst dich locker mit der Community austauschen? Schau gerne auf unserem ComputerBase Discord vorbei!

Wie viele Kerne (Cores) unterstützen eure Games?

Banger schrieb:
Also 29,7% Gesamtauslastung, also 4,75 verteilte Threads. Aufgerundet also 5.

So ist es
04a97f13.gif


GTA V max cpu.jpg
 
GTA 5 ist also grün und die Hintergrundkrinte ist also rot?

Dann werden bei den Konsolen 8 Threads auch nicht benutzt, aber da ist wohl die schwächere Grafikkarte mit Einstellungen auf Hoch (=/= Maximum) auf 1600*900 immer im Limit? Habe noch niemanden gesehen, der bei den Konsolen das OSD zuschalten kann.
 
Banger schrieb:
GTA 5 ist also grün und die Hintergrundkrinte ist also rot?

Ähm, nicht ganz. Alles was du im rechten Fenster siehst, ist nur von GTA V (ohne Hintergrundprozesse)!
Die Farben im Graphen zeigen einfach nur, welcher Teil der Auslastung vom User-mode (Grün) und welcher Teil vom Kernel-mode (Rot) kommt.

Banger schrieb:
Habe noch niemanden gesehen, der bei den Konsolen das OSD zuschalten kann.

Was soll ein Konsolero auch mit einem OSD? Ändern kann man doch eh nicht wirklich etwas und um zu sehen das es nicht rund läuft, brauch man kein OSD :evillol:
 
ok, erstpost ergänzt: gta5 unterstützt 5 kerne.
 
Dying Light - nutzt einen (!) kern (ernsthaft)
 
- max payne 3: unterstützt 8 kerne.
 
Hmm.. wenn man überlegt, dass es eigentlich eine Vorgänger-Engine zu GTA5 sein könnte :-)
Je nach Situation sehe ich da auch nur zwei hochgetaktete Kerne.



In den Zwischensequenzen mit 3000 FPS (in UHD), da haben scheinbar alle Kerne ein bisschen was zu tun^^

Dying Light dagegen beschäftigt bei mir mehr als einen Kern. Glaube ich. Ich würde da so auf vier tippen.
 
Zuletzt bearbeitet:
hoppla, da hab ich mich vertan. max payne 3 rechnet auf 4 kernen.
 
Wieder mal für unsere Theoretiker hier.



Man kann sich ja im Ressourcen-Monitor anschauen wie viele Threads ein Programm startet. Hier am Beispiel Elite Dangerous. Startet 64 Threads.
Aber an meinen Kernen und im Ressourcen-Monitor sieht man, das rein rechnerisch nur 3 Kerne ausgelastet werden....

Woher kommt diese Diskrepanz? Würde ein Rechner mit 64 Kernen mehr FPS schaffen (wenn man mal davon absieht, dass ich im GPU-Limit hänge^^)
 
Über sowas hab ich schon mal nachgedacht, aber weil ich noch nicht mal 2 Jahre programmiere und auch keine Spiele, war ich mir nicht sicher ob das was ich mir überlegt habe überhaupt einen wahren Kern hat.

Wenn ich von Threads spreche sind das Threads die vom Spiel gestartet worden sind, außer es gibt den entsprechenden Zusatz. Außerdem gehe ich davon aus dass das Betriebssystem keine Leistung braucht und alle Threads richtig zuweist.

Eine Sache im Voraus die zwar logisch ist, aber vielleicht vergessen wird. Das Problem beim Multithreading ist (das ich zumindest oft habe), dass man zwar auf Daten aus anderen Threads zugreifen kann, aber natürlich aufgrund von schwankender Priorität man nicht genau weiß wie weit der Thread in diesem Moment ist.
Ich bin mir nicht sicher ob ganz klar ist warum das ein Problem bzw. nicht ganz einfach lösen können ist und inwieweit in der Praxis dafür vielleicht schon eine Lösung gibt, aber worauf ich hinaus will ist, dass man nur auf Daten eines anderen Threads zugreifen kann/sollte die sicher berechnet sind.


Ich nehme mal ein Rennspiel wie TrackMania, dort fahren im Online Modus z.B. 10 Leute (einschließlich mir) eine Strecke, wir beeinflussen uns aber nicht gegenseitig. In der Engine wird die Lage der Ghosts und des eigenen Autos von jeweils einem Thread (nenne ich jetzt mal Fahrzeug-Thread) berechnet und die ganze Umgebung (Umgebungs-Thread) von einem Thread, was insgesamt 11 Threads macht. Allerdings ist das was in den Fahrzeug-Threads berechnet werden muss wesentlich simpler, weshalb ein Fahrzeug-Thread im Durchschnitt pro Frame nur ein zehntel der Zeit des Umgebungs-Threads braucht. Außerdem können alle Fahrzeug-Thredas parallel laufen, schließlich beeinflussen wir uns ja nicht gegenseitig.

Variation 1:
Dadurch das die Fahrzeug-Threads die Daten aus dem letzten Frame bekommen, können alle 11 Threads parallel laufen. Das bedeutet dass das Ausführen aller Fahrzeug-Threads nacheinander genau so lange dauert wie das des Umgebungs-Threads. Weshalb das Spiel dann zwar mit 11 CPU-Threads gleichzeitig umgehen kann, aber effektiv sind es nur 2 die genutzt und ausgelastet werden. Was sich auch 1:1 in den FPS wiederspiegelt.

Variation 2:
Dieses mal werden die Daten aus dem aktuellen Frame bezogen, das heißt das erst der Umgebungs-Threads dran ist und danach dürfen die Fahrzeug-Threads erst ausgeführt werden, welche aber weiterhin parallel ausgeführt werden können. Das führt dazu dass das Spiel dieses mal maximal 10 Threads genutzt können, aber dafür diese auch effektiv. Gleichzeitig sieht es aber bei der Auslastung der CPU so aus als ob nur 2 Threads der CPU genutzt werden.

CPU-ThreadsFPSAuslastung (Kerne)
1100%100% (1)
2133%75% (1,33)
3143%47% (1,43)
4154%38% (1,54)
5167%33% (1,67)
6167%28% (1,67)
7167%24% (1,67)
8167%21% (1,67)
9167%19% (1,67)
>=10181%18% (1,81)


Da ich wie schon erwähnt keine Erfahrungen in der Spielentwicklung gemacht habe, kann ich nicht sagen wie weit das oben beschriebene Bespiel von der Realität entfernt ist. Was ich aber (offensichtlich) glaube ist, dass es gut die Komplexität von Multithreading rüber bringt und dass es zeigt wie kleine Variationen schon einen großen Unterschied machen können.
Das ist im Grund noch ein sehr simples Bespiel, ich will glaube nicht wissen was z.B. in Elite Dangerous los ist :)

@HisN
"Theoretiker" ist hier das richtige Stichwort.
 
THX für den kleinen Exkurs :-)
 
das ist ja das ding, mit dx11. nicht alle kerne werden auch angesprochen. windows verwaltet die kerne zwar, aber mehr schlecht, als recht. dx12 wird auch wirklich alle kerne ansprechen können. da wirds dann richtig interessant.

ich trage mal im erstpost nach, daß sich die ermittelten werte auf dx11 beziehen.
 
Was sich noch zeigen wird.
Moment .. ich hätte da doch ein DX12-Game.... Sekunde.

Edit: OKEY, das ist Imposant.
a) Ich bekomme das Game selbst in kleinsten Settings nicht aus dem GPU-Limit raus.
b) Selbst an der Grenze zum GPU-Limit ... schaut selbst. Ich mache gleich noch einen Durchlauf mit HT



Konkret Krass ... sehr schön. Endlich wieder ein Argument für viele Kerne :-)

 
Zuletzt bearbeitet:
Aufn Papier. Kann mir auch 48 Kerne reindengeln und lande bei 4000fps. Dem Normalo reichen derzeit 4 Kerne völlig aus und das wird auch noch ne Weile so bleiben.
 
Geht es hier darum?
Die ersten die brüllen "das Game ist aber Scheisse Programmiert", sind doch die auf deren Kisten es (aus welchen Gründen auch immer) ruckelt.
Ich freu mich darüber, dass ein Entwickler es geschafft hat sein Game so massiv zu parallelisieren dass 16 Threads praktisch voll ausgelastet werden.
 
Wegen der Thread-Diskussion noch zwei Anmerkungen:
1: Mehrere Threads werden oft nicht nur für Rechenaufgaben sondern für Asynchrones I/O verwendet. Hierunter fallen zum Beispiel Netzwerk, Festplattenzugriffe, Eingabe, Graphik und Sound. In vielen Fällen ist die Rechenlast von diesen Threads niedrig, weil sie die meiste Zeit auf Ereignisse warten, wie dass die Datei geladen oder dass die Graphik fertig ist.

2: Eine Möglichkeit für ein Anwendungsdesign ist, dass man für jedes Aufgabengebiet eine eigene Gruppe an Workerthreads erstellt: Beispielhaft eine Gruppe für Physik, eine Gruppe für KI. Wenn die Anwendung zusätzlich so designt ist, dass die Aufgaben nacheinander abgearbeitet werden (zum Beispiel zuerst die Physik und danach die KI), kann jeweils nur eine Gruppe dieser vielen Workerthreads und nicht alle gleichzeitig rechnen. Dadurch kommt es auch zur Situation, dass eine Anwendung viele Threads und nur eine niedrige CPU-Auslastung besitzt.
 
HisN schrieb:
Geht es hier darum?
Die ersten die brüllen "das Game ist aber Scheisse Programmiert", sind doch die auf deren Kisten es (aus welchen Gründen auch immer) ruckelt.
Ich freu mich darüber, dass ein Entwickler es geschafft hat sein Game so massiv zu parallelisieren dass 16 Threads praktisch voll ausgelastet werden.

Nein, darum geht es hier nicht, da hast du recht.

Ich will aber noch kurz schreiben, um nicht den Eindruck entstehen zu lassen, ich würde nur kurz was hinklatschen und nicht auf eventuelle Antworten eingehen.

Ich kann zB. deine Sichtweise nicht nachvollziehen, weswegen jetzt noch mehr Kerne eine Antwort auf ruckelnde Spiele sein könnten. Selbst wenn sie wirklich scheiße portiert/programmiert/nicht optimiert worden sind, läßt jemand mit gesundem Menschenverstand das Spiel einfach kalt links liegen, anstatt in den nächsten Laden zu laufen und dagegen "anzurüsten".

Bisher ist es einfach so, daß rund zehn Jahre nach q6600 vergangen sind und es laufen immer noch nicht alle Spiele schön gleichmäßig auf allen verfügbaren Kernen. Was sie unter Umständen auch nicht müssen. Die Masse an jährlich wiederkehrenden Spielen braucht ja bis dato nicht mal 4x100% einer schnöden Vierkerners. Zudem kostet sowas manpower, Zeit, also Geld. Bringt nicht jedes Entwicklerstudio auf, wo ich aber wieder bei dem Punkt bin, daß ich deswegen nicht in einen Laden renne und diesen Umstand mit meinem Geld ausgleiche. Dazu sind mir die Spiele einfach zu unwichtig geworden.

Das wird sich mit DX12 ändern, ja, das stimmt. Frage bleibt aber bestehen, wann dann auch die Spiele kommen, bei denen ein Vierkerner NICHT mehr ausreicht. Ich gehe auch davon aus, daß man durch DX12 durchaus ein Leistungsplus haben wird, aber es wird sich sobald kein Bild ergeben, daß man mit einem Vierkerner nur 35fps erreicht und mit einem 6er oder 8er dann wieder auf gewohnte 60fps kommt. Strategiespiele profitieren da schon mehr von (siehe dein Beispiel und darüber freue ich mich als CoH- und Anno-Spieler auch drüber), aber Strategie ist einfach ein kleiner Markt, wenige Spielen in vielen Jahren im Vergleich zu früher. Tja, und Brachialo-Produktionen wie SC (nicht SimCity..) werden vielleicht auch 6-Kerner zum Glühen bringen, aber herrje, 5 Jahre Entwicklungszeit, viel viel Geld, da werden andere Studios noch 5 gewohnte FIFAs, NFS, CoD usw. usw. usw. usw. releasen, bis das für die Masse wirklich die Relevanz bekommt, ohne Aufrüstung nichts mehr gescheit zum Laufen zu bringen.

Zu dem q6600 und die annähernd 10 Jahre, du kennst ja die Steam Surveys: Für wen entwickelt man da eigentlich, wenn der große Querschnitt einer nicht unbedeutenden (sagen wir doch der Größten) Spiele-Plattform names Steam noch mit Zweikernern unterwegs ist? Glaube, war 48% Zweikern zu 44% Vierkern, ist doch lächerlich, aber anscheinend reichts der Masse. Du bist ein Freak, gäbe es schon 20Kerner, hättest du einen, die meisten scheinen ihre paar Stunden pro Woche heute noch gut mit 2xzweieinhalb Ghz bestreiten zu können. Demnach war sogar ich 2010 quasi auch noch early adopter mit einem q9400 lol.

So, Kernaussage: Du hast Recht, darum gehts hier aber gar nicht. :)
 
Bitte mich nicht falsch verstehen, ich kann es gut nachvollziehen wenn ein Programmierer sagt: Mein Game ist nicht massiv parallelisierbar und es nutzt halt nur einen Kern. Ich hab auch nicht die Kohle um noch ein weiteres Jahr Entwicklung zu bezahlen um diesen Umstand abzuschaffen. Ich bin der letzte der schreit "kauft euch 8-Kerner, ich hab es euch doch gesagt".

Ich hab es bis jetzt immer so gehalten: Ich kaufe meine Hardware NACH der Software. Und da ich von Beruf Grafiker bin, hat mein Rechner viele Kerne. Für Games hätte ich das nicht gemacht.
Und ob man jetzt in den Laden rennt um für sein Lieblingsspiel Kohle in Hardware zu versenken (was ich durchaus legitim finde), das sei jedem selbst überlassen.

Falls ich den Eindruck hinterlassen haben sollte das ich der Meinung bin das ohne 8-Kerner gar nix mehr geht, sorry, wollte ich nicht.
Aber es ist schon so seit ich denken kann (und ich bin ein alter Sack), dass die Games, der Motor der Hardware-Industrie in diesem Sektor sind.
Wenn Leistung übrig ist, dann nutzen das die Game-Programmierer aus. War schon immer so, wird wahrscheinlich immer so bleiben, und sich darüber beschwehren? Wirklich jetzt? *g*
 
Zurück
Oben