Kerne und Hyperthreading bei Spielen

Fraagi3

Lt. Junior Grade
Registriert
Okt. 2015
Beiträge
326
Moin Leute,

ich habe mich in letzter Zeit sehr intensiv mit Hardware auseinander gesetzt und finde das Thema Hardware immer interessanter.

Ich bin ein bisschen verwundert was Hyperthreading im Gaming berreich angeht...
Überall kann man lesen dass die meisten Spiele kein Hyperthreading unterstützen und es daher keinen vorteil bieten soll eine CPU mit ht zu kaufen, aber ist es nicht im endeffekt so, das ht trotzdem einen vorteil bei Spielen bietet?

Allein aus der Sicht, dass außer des Spiels ja noch Hintergrundprozesse, Musik und Voice Programme laufen, welche die Kerne auch beanspruchen.

Bedeutet also wenn man eine CPU mit ht oder auch mehr als 4 kerne im System hat, können die Spiele die Kerne intensiver beanspruchen und die CPU last bleibt niedrig oder habe ich da etwas falsch verstanden?
 
Zuletzt bearbeitet:
Also mal abgesehen davon, dass eigentlich eher die GPU limitiert und nicht die CPU:

Da gehts ja erstmal nicht darum ob HT oder echte Cores.
Wenn eine Anwendung mehr Kerne (oder Threads) verwenden kann, dann bringt dir eine CPU mit mehr Kernen auch was.

Hintergrundprozesse sind idR auch zu vernachlässigen, außer du hast besonders CPU-beanspruchende Anwendungen laufen. Aber Browser, Steam, Teamspeak.. geht alles "nebenbei".

Edit: Die Anwendungen raufen ja auch nicht aus, wer welche Kerne bekommt sondern das OS vergibt sozusagen "CPU-Zeit"
 
Grundsätzlich: Hyperthreading ist eine Art der Leistungssteigerung in modernen CPUs. Allerdings müssen bestimmte Bedingungen erfüllt sein, damit es auch leistungssteigernd wirkt. Ein gutes Beispiel für Games, die davon profitieren, sind die Frostbite-Engine-basierten Spiele wie die Battlefield-Serie.

Andererseits gibt es auch Spiele, die davon nicht profitieren bzw. sogar langsamer sind.

Fraagi3 schrieb:
können die Spiele die Kerne intensiver beanspruchen

Ein Kern kann nicht "intensiver" genutzt werden, sowas gibt es nicht. Entweder er führt Befehle / Instructions aus - oder eben nicht.
 
Ich bin auf diese überlegung gekommen weil meine CPU (I5 6600K) bei Fortnite + Ts3 + Spotify + Firefox meist zu 100% ausgelastet ist.
Inzwischen habe ich meine CPU auf 4,2 GhZ OC aber selbst mit dem OC ist die CPU noch bei 100% wenn ich allerdings die eben gennanten Programme nicht offen habe läuft Fortnite stabil bei ca. 70% CPU auslastung.

Wenn ich jetzt eine CPU mit mehreren Kernen bzw HT hätte, wäre das trotzdem so?
 
Ein Game oder eine Anwendung kann SMT nicht „unterstützen“. Für Programme sehen Virtuelle und Reale Kerne erstmal alle gleich aus. Das Betriebsystem weist den Programmen die benötigten Ressourcen zu. Moderne Betriebssysteme kennen die Unterschiede zwischen physikalischen und virtuellen Threads - dementsprechend verteilen sie Anwendungen sinnvoll. Verwendest du Beispielsweise eine rechenintensive Anwendung die 8 Kerne nutzen kann und du hast eine CPU mit 8 Kernen + SMT = 16 Threads, werden die echten Kerne ausgewählt. SMT ist allerdings eine schöne Sache, da hier die Ressourcen eines einzelnen Cores - je nach Anwendungsszenario - deutlich besser ausgenutzt werden können. Bei Multithreading Anwendungen die alle Threads belegen können, geht man von einer Performance Steigerung von ca. 30% aus.

Wird ein älteres Betriebssystem verwendet kann SMT aber zu Leistungsverlusten führen, da diese nicht zwischen den Physikalischen und den Virtuellen Kernen unterscheiden. Dadurch kann es auch häufiger passieren, dass zum Beispiel Single-Thread Programme von einem SMT-Thread, einem virtuellen CPU Kern, bearbeitet werden. Hier kann es, wenn der zugehörige echte Kern gering belastet wird, zu geringen Leistungsverlusten kommen. Ist der zugeordnete Kern allerdings stark belastet, sind hohe Performanceverluste in der Single-Thread Anwendung wahrscheinlich.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: conf_t, Slainer, Asghan und eine weitere Person
Kleiner Erfahrungswert ;

Hab n Xeon E5 2630v4 aufm X99 - 10 Kerne bei 2,2 GHz / bis zu 3,1Ghz Turbo.

Als ich ihn neu hatte, ließ ich HT an = 10 reale Kerne + 10 virtuelle = 20 im Taskmanager..yeeeah..aber ;

Irgendwie, nach ca 6 Monaten einma alles Kreuz und quer gespielt hab ich mich entschieden HT auszumachen, läuft im allgemeinen besser, gibt viele Spiele die zicken/laufen sogar schlechter mit HT oder machen klassischen Fehler einen HT Kern als realen anzusehen oer können teils gar nicht mehr als 16 Kerne ansprechen.

Von daher wirkt es sinnvoller nur reale Kerne anzusprechen, wenn man schon soviele hat.

Gibt aber auch Programme die können sehr gut mit HT umgehen und machen deutlich mehr Leistung - ist nur manchmal nervig das immer selbst herausfindenzumüssen ; Neustart - Bios - HT aktivieren - Boot - läuft mist - neustart - bios - HT aus - boot ...nächstes Program/Spiel gleiches Prozedere nochmal.
 
truetrue, hat sich bei mir wohl einfach noch vom p4 3,06 mit HT /RD-Ram eingebrannt :) - der erste seiner Art, wo Intel soo stolz drauf war...look at meee...HT^^
 
  • Gefällt mir
Reaktionen: konkretor
Virtuelle und native Kerne teilen sich die gleiche FPU/ALU, dadurch hast du keinen Geschwindigkeitsvorteil mit mehr Kernen, wenn diese bereits durch Berechnungen ausgelastet sind.
 
HT ist super, wenn die beiden Threads mit nahe beieinander liegenden Daten arbeiten.
Wenn zwei völlig unterschiedliche Threads auf demselben Kern laufen, können sie sich gegenseitig den geteilten L2 Cache überschreiben.
 
Ein CPU Limit kann auch bei weitaus weniger als 100% CPU Auslastung vorliegen, das ist so, seit es Mehrkern-CPUs gibt.

SMT/HT erlaubt vor allem dem OS, die Aufgaben dynamischer zu verteilen, allerdings hat der Hyperthread nicht die Leistung eines echten Kerns.
HT liefert daher auch "nur" ca. 20% mehr Leistung, wenn die zusätzlichen Threads genutzt werden können im Gegensatz zu einem echten Kern, der volle 100% bringen würde.
Bei anderen Architekturen liefert SMT dafür um so mehr, die SPARC CPUs zB haben pro Kern 8 Threads.

Dein Spiel läuft im Gegenzug aber nicht zwangsweise besser, wenn du mehr Kerne hast,denn sowas muss die Software auch erstmal Unterstützen und der Großteil der Consumersoftware (also auch Spiele) ziehen den meisten Nutzen aus 2-4 Kernen, gelegentlich mal mehr, aber selbst dann ist der Performancezuwachs sehr überschaubar.
The Division (welches recht gut mit mehr Kernen/Threads skaliert) hat zB einen FPS Zuwachs im einstelligen Bereich, wenn man von 4 auf 6 bzw. von 6 auf 8 Kerne geht.
 
Fraagi3 schrieb:
Moin Leute,

Überall kann man lesen dass die meisten Spiele kein Hyperthreading unterstützen und es daher keinen vorteil bieten soll eine CPU mit ht zu kaufen, aber ist es nicht im endeffekt so, das ht trotzdem einen vorteil bei Spielen bietet?

Diese Infos sind zum Teil veraltet. Ich erinnere mich an Tests, wo HT durchaus was gebracht hat. Waren nicht die Battlefield Spiele so ein Fall?

Edit, anbei Beispiele (vor allem den zweiten Link mal checken):
http://www.legitreviews.com/wp-content/uploads/2017/09/pubg-cpu-core-performance.png

https://www.computerbase.de/2017-02/cpu-skalierung-kerne-spiele-test/
 
Zuletzt bearbeitet:
Battlefield war soweit ich weiß immer im Vorsprung im Bezug auf Mehrkernnutzung.
Aber mittlerweile kann sogut wie jedes Spiel mehr als 4 Threads nutzen.
Die wenigen altbackenen Spiele die das nicht können sind in der Masse eher zu vernachlässigen.
 
mykoma schrieb:
Ein CPU Limit kann auch bei weitaus weniger als 100% CPU Auslastung vorliegen, das ist so, seit es Mehrkern-CPUs gibt.

SMT/HT erlaubt vor allem dem OS, die Aufgaben dynamischer zu verteilen, allerdings hat der Hyperthread nicht die Leistung eines echten Kerns.
HT liefert daher auch "nur" ca. 20% mehr Leistung, wenn die zusätzlichen Threads genutzt werden können im Gegensatz zu einem echten Kern, der volle 100% bringen würde.
Bei anderen Architekturen liefert SMT dafür um so mehr, die SPARC CPUs zB haben pro Kern 8 Threads.

Dein Spiel läuft im Gegenzug aber nicht zwangsweise besser, wenn du mehr Kerne hast,denn sowas muss die Software auch erstmal Unterstützen und der Großteil der Consumersoftware (also auch Spiele) ziehen den meisten Nutzen aus 2-4 Kernen, gelegentlich mal mehr, aber selbst dann ist der Performancezuwachs sehr überschaubar.
The Division (welches recht gut mit mehr Kernen/Threads skaliert) hat zB einen FPS Zuwachs im einstelligen Bereich, wenn man von 4 auf 6 bzw. von 6 auf 8 Kerne geht.

Ja aber angenommen das spielt zieht 4 kerne und man hat 6 echt. Dann würden doch die Programme wie Spotify ts3 etc. Auf dem 5 und 6 kern laufen damit sich 4 kerne komplett auf das Spiel beschränken oder nicht?

Aber wie kann es denn sein das ich trotz OC immer noch 100% Auslastung habe wobei nen i7 mit weniger GhZ aber mehr Threads bei nur bei 30% liegt?
 
Leider gibs da manchmal son Mist wie ; Program läuft prinzipiell nur auf CPU 0,1,2,3 - kennt 4 und 5 gar nicht und wenn andere Programme das auch nicht kennen, werden die nicht automatisch auf 4 und 5 ausweichen, nur weil die frei sind. Sehr ärgerlich.

In Win10 und mit anderen Programmen kann man manuell die CPU Zugehörigkeit manuell festlegen. Bei irgendwas hab ich das andauernd gebraucht. Hab dann das Programm immer von CPU 0 auf CPU 8 oder 10 geschoben, damit es 0-7 in Ruhe lässt.

Auch würde ich es nicht mehr so statisch betrachten. Es gibt je nach Alter der Spiele/Programme noch dieses CPU 1,2,3,4 denken = CPU 5,6,7,8,9,10 nicht ansprechbar (manuell verschiebbar), aber mittlerweile können die CPUs selbst sehr viel verschieben, Befehle teilen, auch wenn das Spiel/Program das ursprünglich nie vorgesehn hat oder kann, so kann der Befehlssatz mittlerweile sehr wohl verteilt werden.

Habs oft gesehn das selbst Spiele die nur Dual Support haben bei mir trotzdem mehrere Kerne busy halten.
Macht jetzt aber auch keine Wunder, sowie wie das beschriebende Problem das Windows/Mac/Programme/Spiele so intelligent sind zu erkennen "oh CPU 0+1 sind busy, ich nehm mal CPU 7"

Alles noch sehr nervig, nicht perfekt..aber naja was ist das schon. Bin schon froh das mittlerweile alles sehr viel aufgelöster ist und meiner Meinung nach ab ca 2010 Multicore denken anfing durchzukommen "wir programmieren nicht mehr für Dual/Triple/quad.. sonder einfach für X-cores ..8,10,12,16,20,32

Zocke grade gern Surviving Mars, hat eigentlich echt kaum Anforderungen, läuft trotzdem auf allen 10 Kernen, obwohl es das nun nicht wirklich nötig hat. games wie Anno und Battlefield skalieren oft bis zu 16 Kernen, Teamspeak quetscht sich da schon irgendwiewo dazwischen :)
 
freekymachine schrieb:
Neustart - Bios - HT aktivieren - Boot - läuft mist - neustart - bios - HT aus - boot ...nächstes Program/Spiel gleiches Prozedere nochmal.
Da ist es aber deutlich einfacher, wenn du im Taskmanager die CPU-Zugehörigkeit änderst, wie in deinem letzten Post beschrieben. Die geraden Kerne sind die echten, die ungeraden die virtuellen. Funktioniert bei meinem Ryzen 7 1700 problemlos, krieg damit einige Ruckler in alten Spielen weg.
 
Zurück
Oben