Warum Single Core Performance immer noch wichtiger in games?

C

cat_helicopter

Gast
Hi,


wie wir alle wissen, ist Intel AMD leider immer noch ein Schritt voraus was die Single-Core Performance angeht. AMD behauptet zwar, die IPC läge gleich auf, aber in games scheint das jedenfalls bei selben Takt nicht der Fall zu sein.

Meine Frage ist nun aber, warum eigentlich selbst moderne Spiele immer noch so arbeiten IPC > Kerne.
Selber habe ich einen 2700 auf 3,9 ghz mit 8 Kernen und SMT.

Meine Freundin zockt mit einem 7700k der nicht übertaktet ist. Selbe Grafikkarte nur und etwas langsamerer RAM. Gleiche SSD etc.

Wenn wir zusammen nebeneinander z.B. Ghost Recon zocken, dann lädt ihr PC schneller und hat sie mehr Frames. Das ist fast überall so.

Viele sagen immer "schlecht optimiert". Aber ich habe das Gefühl, dass ist einfach nur so, weil das alle sagen. Denn wenn ich mir die CPU Auslastung ansehe, dann sind bei mir alle 8 Kerne ausgelastet. Dh. es läuft ja verteilt auf verschiedenen CPUs und mir leuchtet es nicht ein, warum 8 moderne CPUS einer alten 4 Kern CPU nachstehen sollte.

Kann mir das jemand genau erklären, woran das jetzt liegt, dass Intel AMD da voraus ist?
 
Du könntest bei 8 Threads schon mit 12,5% Auslastung im Taskmanager im CPU-Limit stecken.
Genau das ist Single-Thread Performance ;)

Versuche deinen RAM zu oc'en und die Timings scharf zu stellen, dann könntest auf Augenhöhe kommen.
 
Nur weil "alle Kerne was zu tun haben" heißt das nicht, dass das Spiel auf allen Kernen gleichzeitig läuft, das Stichwort heißt hier "Corehopping".
 
  • Gefällt mir
Reaktionen: Baal Netbeck
einmal: parallelisierbarkeit. nicht jeder algorithmus lässt sich beliebig auf verschiedene kerne verteilen. insbesondere in spielen da dort viele reaktionen in echtzeit ablaufen.
zudem: aufwand, also schlechte optimierung. das bleibt immer ein problem und bis vor kurzem wurde dabei immer nur auf die eigenarten von intel cpus geachtet. am ende kann man die letzten prozente an performance heraus holen indem man annahmen über den aufbau der hardware schon in der spieleengine selbst berücksichtigt.
 
  • Gefällt mir
Reaktionen: Snudl
Ich glaube es könnte sich lohnen Popcorn auszupacken :smokin:

on Topic: ich weiß es nicht genau, aber der 7700k hat halt nen hohen Takt und 4 Kerne mit Hyper-Threading. Ist jetzt nicht gerade langsam... kann schon sein, dass der zwischendrin mehr FPS bringt.
Wie du schon sagst, die wenigsten sind auf mehr Kerne ausgelegt.

Ich denke, man kann sich das nicht so einfach rechnen, wie du es dir gerne wünscht (alle 8 Kerne ausgelastet (was heißt das genau?!) = Rechenpower > 4-Kerner)...
 
cat_helicopter schrieb:
Wenn wir zusammen nebeneinander z.B. Ghost Recon zocken, dann lädt ihr PC schneller und hat sie mehr Frames. Das ist fast überall so.

Ghost Recon ist ein allgemein sehr schlecht programmiertes Spiel. Da wundert es mich nicht, dass hohe Singlecore Leistung gefordert wird.

Vergleicht mal BF5, da wird der i7 keine Chance gegen deinen Ryzen haben.
 
cat_helicopter schrieb:
dann lädt ihr PC schneller und hat sie mehr Frames.
Habt ihr exakt die gleichen Grafikeinstellungen inklusive Auflösung gewählt?
 
  • Gefällt mir
Reaktionen: Baal Netbeck und danyundsahne
  • Gefällt mir
Reaktionen: Dome87 und Aduasen
cat_helicopter schrieb:
...Selber habe ich einen 2700 auf 3,9 ghz mit 8 Kernen und SMT...

du hast ihn manuell auf 3,9 Ghz übertaktet? Das du so unter Umständen je nach last 200 Mhz weniger hast als im nicht übertakteten Zustand ist dir klar?
 
Du hast in Spielen ja viel Ursache->Wirkung. Also deine Spielfigur tut was, dannach passieren dann weitere Dinge usw.

Du musst halt immer auch den Zeitfaktor sehen. Du kannst theoretisch auf den Kernen gleichzeitig rechnen. Die Frage ist nur, wann wird das Ergebnis gebraucht? Oder braucht vielleicht ein Job auf Kern 3 Ergebnisse vom Job auf Kern 4 usw.?
Sprich: In der Programmlogik wirst du immer Programmteile haben, die aufeinander warten.

Mit einer hohen SingleCore Leistung ist dann halt der Job auf dem Kern schneller fertig, d.h. kürzere Wartezeit für andere Jobs, egal ob die auf dem selben Kern liegen oder auf einem anderen. Eine höhere Kernanzahl ist hier also nicht von größter Bedeutung.

Wenn du jetzt aber die Situation hast, dass es egal ist, wann ein Kern mit seiner Rechnung fertig ist, sondern nur irgendwann alle Ergebnisse vorliegen müssen (z.B. Video Encoding), dann sparst du sofort mit jedem weiteren Kern mehr Zeit, weil mehr gleichzeitig arbeiten können.

Da die schiere Möglichkeit, ob groß parallelisiert werden kann oder nicht, sehr von der Spiellogik abhängt, und das auch nicht gerade ein Schalter ist, den man umlegt, sondern eine knifflige Designfrage, liegt hier häufig der vermeindlich einfachere Weg auf einem Kern näher.
Daher wird SingleCore Leistung nie unwichtig werden. Gerade in Spielen nicht.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Baal Netbeck, Zoidberg, kisser und 2 andere
  • Gefällt mir
Reaktionen: douron
Naesh schrieb:
Nope , du liegst falsch.

https://www.computerbase.de/2018-11...rtx-2080-ti-fe-1920-1080-conquest-mehrspieler

CB bestätigt dies auch.

Selbst ein 4/8 Kerner der 7. Gen ist schneller als nen Ryzen mit 8/16 in BF 5 :D

Da ist der 7700k im Einzelspieler sogar schneller als der 8700k.
MP braucht man eigentlich nicht vergleichen bei Differenzen von unter 10%.
Das kann immer auf die aktuelle Spielsituation geschoben werden.

Aber in dem Beispiel erkennt man eben gut, dass selbst BF5 noch eher SC lastig unterwegs ist. Sonst wäre der 7700k nicht schneller als der 8700k.

Entsprechende Gegenbeispiele sollten AC:Origins / Odysee, Tomb Raider mit DX12 sein.
 
In Dirt 4 geht ein Ryzen wohl auch besser als Intel.
 
IPC ist nicht gleich single core Leistung.....es ist die Taktbereinigte Leistung....und von Anwendung zu Anwendung verschieden.

AMD hat da durchaus auf Intel aufgeschlossen, ist mal vorne, aber auch oft noch leicht dahinter.
Intel hat aber auch mehr Takt und damit mehr Leistung.
Der 7700K wird mit seinen 4,4-4,5GHz deutlich mehr Leistung pro Kern bieten als du mit 3,9GHz.

Und auch wenn 6 und 8 Kerne immer öfter unterstützt werden, limitiert halt oft ein einzelner Kern auf den die anderen warten müssen.
Manchmal sieht man das in der Einzelauslastung der Kerne, wenn ein Thread zu 90-100% ausgelastet ist, oder wenn zwei Threads des gleichen Kerns zusammen über 100% kommen(z.B. 60%+70%).
Aber oft sieht man es auch gar nicht, weil Windows die Arbeit super schnell von Kern zu Kern schiebt und es so aussieht, als wären alle gut beschäftigt(aber nicht ausgelastet), obwohl eigentlich immer nur hintereinander berechnet wird und die singlecore Leistung limitiert.

Das deuten einer CPU/Thread Auslastung ist nur schwer und selten möglich.
Am besten guckt man einfach auf die GPU Auslastung. Ist die nicht dauerhaft bei 99-100% bremst die CPU...fertig.

Was ja auch kein Desaster ist, solange die Leistung weiterhin hoch genug ist!

Wenn man sorgen hat, dass die eigene CPU nicht die Leistung bringt, die sie bringen sollte, dann muss man reine CPU Benchmarks machen und sieht daran ob etwas nicht stimmt.
CInebench R15 ist z.B. gut, weil es relativ zuverlässig ist und es viele Vergleichswerte im Internet gibt.
Man kann hier auch den single core Test machen und so abschätzen, wie die Leistungsunterschiede sein können sobald ein CPU Kern limitiert.

Wenn man in Spielen im CPU limit ist, kann auch schneller Ram etwas bringen. Nicht so viel wie CPU Takt, aber gerade in neueren Spielen kann es auch mal 20% ausmachen(in der Regel aber eher unbedeutende 3-6%).
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Wow4ikRU und .Sentinel.
Nun, einfach lässt sich das ganze nicht erklären.
Da kommt sehr viel zusammen, was die Geschwindigkeitsunterschiede und die Auslastung erklären könnte.

Was mmn oft unterschätzt wird: wie ist der (Engine)Code kompiliert worden.

Der Compiler sollte auf die entsprechenden CPU Eigenheiten achten um die maximale Geschwindigkeit heraus zu holen. Der Code und Compiler von Ghost Recon wird auf die Intel-Architektur optimiert worden sein.
Der optimierte Maschinencode für Ryzen wird aber anders aussehen, weil einfach die Architektur grundverschieden ist.

Der Rest wurde schon erwähnt: Multithreading klappt nicht immer wie erwünscht da Gaming-Code nicht beliebig parallelisierbar ist.

Dazu kommt noch, das Ryzen - wieder Architekturbedingt - von hohen Speichertakten mehr profitiert als Intel:
Je schneller ein Kern Datennachschub bekommt, umso schneller können die Ergebnisse berechnet werden.
 
cat_helicopter schrieb:
Viele sagen immer "schlecht optimiert". Aber ich habe das Gefühl, dass ist einfach nur so, weil das alle sagen. Denn wenn ich mir die CPU Auslastung ansehe, dann sind bei mir alle 8 Kerne ausgelastet. Dh. es läuft ja verteilt auf verschiedenen CPUs und mir leuchtet es nicht ein, warum 8 moderne CPUS einer alten 4 Kern CPU nachstehen sollte.

Ist tatsächlich so.. einfach nur schlecht bzw. nicht wirklich optimal optimiert. Die Konsolen beweisen ja, dass dies mit Durchschnitt-Hardware möglich ist. Natürlich kann man das nicht 1 zu 1 Vergleichen.
Man merkt auch, dass bei gewissen Konsolenportierungen der PC einfach nur stiefmütterlich behandelt wird. Aber es wird auf jedenfall besser.
Nichtesdestotrotz war ich vor einigen Jahren ziemlich erstaunt was die PS3 am Schluss noch grafisch geleistet hat (GTAV, Uncharted 3, Last of Us, God of War 3...)
 
Fast alle Produkte werden darauf optimiert, mit möglichst geringen Kosten "gut genug" zu sein. Was "gut genug" bedeutet, ist natürlich sehr unterschiedlich.

Die meiste Software ließe sich theoretisch auf dutzende Threads anpassen, allerdings lohnt sich das in vielen Fällen nicht, weil es einen limitierenden Thread gibt, vllt. eine Handvoll weiterer stark fordernder und der Rest ist irrelevanter Kleinkram, bei dem es sich nicht lohnt, über eine Parallelisierung nachzudenken.

Du hast dann wenige Kerne, die auf Anschlag laufen und die restlichen dümpeln mit ein wenig Auslastung vor sich her, weil sie sich nur um den gesammelten Kleinkram + sonstige Systemtasks kümmern.

Wenn du tatsächlich einen Workflow hast, der am Ende nicht absehbar durch einen Thread limitiert wird, heißt das noch immer nicht, dass es sich finanziell lohnt, teure Entwicklungskosten in Parallelisierung zu versenken.

Wenn ein Spiel mit Highend-Hardware nach wie vor im GPU- und nicht CPU-Limit hängt und auf den gängigen Standard-Configs auch eher GPU- als CPU-limitiert ist, steckt da niemand weiteres Geld rein.

Wenn ein Bildbearbeitungsprogramm für Endnutzer im Schnitt 0,3 Sekunden für den Abschluss einer Anpassung braucht, mag man das vllt. auf die dreifache Geschwindigkeit optimiert bekommen, aber das Geld dazu wird niemand ausgeben, weil es den Kunden nicht interessiert.
 
Zurück
Oben