Welcher Core-ID ist ein Hyperthread? AMD 5800X3D

Kickstart

Lieutenant
Registriert
Juli 2014
Beiträge
875
Hallo,
ich versuche gerade ein wenig zu experimentieren mit Process-Lasso und finde nichts im Netz, welcher meiner Kerne die echten sind.
Es gibt 16, von ID 0-15.
0-7?
8-15?
Alle ungeraden IDs?
Alle geraden IDs?

Grüße Manu
 

Anhänge

  • 2023-02-27 18_46_33-NVIDIA GeForce Overlay DT.png
    2023-02-27 18_46_33-NVIDIA GeForce Overlay DT.png
    16,3 KB · Aufrufe: 170
Soweit ich weiß, alle ungeraden Zahlen. Also Thread 1, 3, 5, etc.
Das sind die HT/SMT Threads.

Alle geraden sind "richtige Kerne"

MfG
 
  • Gefällt mir
Reaktionen: Baal Netbeck, NameHere und Kickstart
Also 0 ist ein echter Kern?
 
Ist effektiv egal. Hyperthreading bezieht sich vor allem auf I/O, nicht aufs rechnen. Betriebssystem und Hardware haben das schon recht gut raus wie man Rechenlast und I/O so verteilt, dass die performance am bestern ist.
Willst du kein HT: Schalte es im BIOS aus
Das kostet vermutlich weniger Performance als dem Scheduler mit einer weiteren Abstraktionsebene rein zu fummeln.
Wenn du echtzeit Anforderungen hast, ist windows nicht das richtige betriebssystem
 
Ne, es geht nur um ein Spiel. Star Citizen kommt mit den Hyperthreads nicht klar. Für alles andere lasse ich Process-Lasso aus, es sei denn, ich stelle das noch bei anderen Spielen fest, das es damit besser funktioniert.
 
  • Gefällt mir
Reaktionen: whats4, Samuelz und Baal Netbeck
Kickstart schrieb:
Ne, es geht nur um ein Spiel. Star Citizen kommt mit den Hyperthreads nicht klar. Für alles andere lasse ich Process-Lasso aus, es sei denn, ich stelle das noch bei anderen Spielen fest, das es damit besser funktioniert.
Spider-Man Remastered und Miles Morales. Sind auch so ein Fall, wo das abschalten von den SMT Threads auf Ryzen 3000 und 5000 bessere FPS und Frametimes liefert. Sonst ist mir aber nichts bekannt.
 
Kickstart schrieb:
Ne, es geht nur um ein Spiel. Star Citizen kommt mit den Hyperthreads nicht klar. Für alles andere lasse ich Process-Lasso aus, es sei denn, ich stelle das noch bei anderen Spielen fest, das es damit besser funktioniert.
Bei dem 5800X3D sollte das aber kaum ins Gewicht fallen. Die neueren Intel mit Performance/Efficiency Kernen machen da mehr Probleme.
 
  • Gefällt mir
Reaktionen: madmax2010
Kickstart schrieb:
Ne, es geht nur um ein Spiel. Star Citizen kommt mit den Hyperthreads nicht klar. Für alles andere lasse ich Process-Lasso aus, es sei denn, ich stelle das noch bei anderen Spielen fest, das es damit besser funktioniert.
Sorry für OT, aber Star Citizen kommt ernsthaft nicht mit HT zurecht??
 
Soweit ich weiss gibt es keinen echten und virtuellen Core, sondern Core 0 und 1 sind einfach zwei virtuelle Kerne, die intern eigentlich nur einen Kern haben.
 
  • Gefällt mir
Reaktionen: madmax2010, Baal Netbeck und dms
Renegade334 schrieb:
Bei dem 5800X3D sollte das aber kaum ins Gewicht fallen. Die neueren Intel mit Performance/Efficiency Kernen machen da mehr Probleme.
Doch doch, extrem! Richtig heftig. Wenn man die SMTs im Bios deaktiviert, läuft es butterweich.
Frettchen! schrieb:
Sorry für OT, aber Star Citizen kommt ernsthaft nicht mit HT zurecht??
Naja, Alpha eben.
Ergänzung ()

Was ich gerade am testen bin,
bei den Spielen, welche mir wichtig sind, ermittele ich erst mal, welcher Kerne das sind und falls es z.B. 0-7 sind, aber die restlichen ignoriert werden, lenke ich das auf 8-15 um.
Oder bin ich falsch damit?
Denn, wenn viele Programme einfach mit den ersten Kernen arbeiten, dann lasse ich diese frei und lass meine Games auf den ungenutzt laufen. So kommt sich weniger in die Quere.
 
Zuletzt bearbeitet:
Kickstart schrieb:
Doch doch, extrem! Richtig heftig. Wenn man die SMTs im Bios deaktiviert, läuft es butterweich.
Hätte ich nicht gedacht. Bin mit der Leistung meines 3900X bisher auch so zufrieden gewesen. Gerade um Area18 und Microtech scheinen ein paar extra Threads nicht zu schaden.
Vor 1 oder 2 Versionen hatte ich da immer 20/24 Threads belegt (im Weltraum deutlich weniger). Ich habe damals vermutet, dass andere Spieler, viele Objekte, Wetter und/oder NPC stark die CPU belasten und war eher erstaunt, dass es mal ein Spiel außer Total War schafft so viele Threads halbwegs gleichmäßig zu belegen.
 
Mein Bauchgefühl.
Ja, das das stimmt. Im All hast Du 130fps, auf manchen Stationen nur 30.
Und das trotz meines Systems. Also viel mehr geht aktuell kaum und wenn das sind es ein paar Prozent schneller für einiges mehr an Geld.
Ich war mit einem Freund im Verse, er hat einen Intel + eine 3080 unf einen anderen Bildschirm von der Audlösung her. Wird hatten immer, bis auf 2-3%, die gleichen FPS.
Das Game muß extrem Serverabhängig sein, was ich einfach nicht verstehen kann.
 
Kickstart schrieb:
Oder bin ich falsch damit?
Denn, wenn viele Programme einfach mit den ersten Kernen arbeiten, dann lasse ich diese frei und lass meine Games auf den ungenutzt laufen. So kommt sich weniger in die Quere.
Renegade334 schrieb:
Vor 1 oder 2 Versionen hatte ich da immer 20/24 Threads belegt (im Weltraum deutlich weniger). Ich habe damals vermutet, dass andere Spieler, viele Objekte, Wetter und/oder NPC stark die CPU belasten und war eher erstaunt, dass es mal ein Spiel außer Total War schafft so viele Threads halbwegs gleichmäßig zu belegen.
Da muss man denke ich einiges erklären....

Windows 10/11 ist sich bewusst welche Threads zum gleichen CPU Kern gehören und benutzt grundsätzlich alle Threads.
Thread 0 und 1 gehören zu Kern 0
Thread 2 und 3 gehören zu Kern 1
Thread 4 und 5 gehören zu Kern 2
usw.

Bei Zen2, 3 und 4 gibt es zusätzlich noch die Info welche Kerne die beste Qualität haben und daher minimal höher Boosten. Auch das kennt Windows und legt die Aufgaben mit einer höheren Wahrscheinlichkeit auf die entsprechenden Threads.

Es gab früher mal Programme, die fest einprogrammiert hatten, welche Aufgaben auf welchen Hardware-Threads laufen.
Das sind aber vor allem Spiele aus der Zeit der ersten dual und quadcore CPUs...also eher wenig relevant.

Die aktuellen Spiele benutzen zwar mehr oder weniger Programm-Threads und können diese auch unterschiedlich gut auslasten aber die Verteilung auf die Hardware-Threads übernimmt Windows.

Ab Windows 10 hat sich die Art der Lastverteilung ziemlich geändert.
Windows lässt einen Programmthread tendenziell nicht mehr sekundenlang auf einem Hardware-Thread sondern verschiebt diesen viele Male die Sekunde von Kern zu Kern(Je nach Situation)
So kann es so aussehen, als würde ein single Thread Programm, alle 16 Threads gleichmäßig auslasten.
Das sieht wie tolles Multithreading aus, aber es ist eigentlich grauenhaft für die Performance.
Denn die Arbeit findet weiterhin nacheinander statt, aber weil pausenlos von Kern zu Kern gewechselt wird, geht immer der L1&L2 Cache Bezug verloren und das Wechseln kostet ebenfalls Rechenzeit.

Warum ist Win10/11 bloß so doof?
Kann ich nicht wirklich beantworten aber meine Theorie ist, dass einerseits Windows 10 für die schlecht gekühlten Ultrabooks entwickelt wurde und es damals von Vorteil war, wenn die Last gut verteilt wird und kein Kern drosselt.
Und andererseits hat es handfeste multithread Vorteile bei 100% CPU Auslastung. Da schiebt Windows praktisch in jede kleine Lücke neue Arbeit und kann die CPU Kerne besser auslasten als es Windows 7 konnte.

Edit: Ich habe mir gerade ein Video von Level1Techs angeguckt und da wird darauf eingegangen, dass Windows 11 schlauer wird mit dem Verteilen der Threads und dass der Höchstleistungsplan durch das deaktivieren des core parkings sogar Nachteile haben kann, weil das core parking die Threads besser zusammenhält anstatt sie zu verteilen....da muss ich mal selbst herumtesten.

Deine Idee, den ersten Kern freizulassen halte ich für wenig hilfreich. Windows wird die Hintergrundprozesse irgenwo hinlegen wo gerade wenig zu tun ist und nicht auf spezielle Kerne.

Es ist auch falsch, dass man an der Einzelauslastung der Threads ablesen kann ob das Spiel gut im Multithreading ist oder nicht.
Wie schon gesagt verschiebt Windows 10/11 die Threads zu schnell und es hat keine Aussagekraft mehr.
Schau auf die GPU Auslastung um zu gucken ob die CPU schnell genug ist oder nicht.
Und schau auf die CPU Gesamtauslastung um zu sehen wie viele Threads ausgenutzt werden.
Bei einer CPU mit SMT/HT profitierst du erst ab ca 50% Auslastung von SMT oder kannst potentiell von mehr CPU Kernen profitieren....einen kleinen Bonus hat man meistens duch mehr Kerne aber 6 Kerne reichen meist aus.

Wenn du nicht möchtest, dass ein Programm SMT ausnutzt, dann erlaubst du dem Programm nur die Threads
0 2 4 6 8 10 12 14 oder
1 3 5 7 9 11 13 15

Bei einer CPU mit mehreren CCX oder CCDs liegen die Threads in Blöcken hintereinander.
Bei meinem 3950X sind es also
0-7 für CCX 0 auf CCD 0
8-15 für CCX 1 auf CCD 0
16-23 für CCX 0 auf CCD 1
24-31 für CCX 1 auf CCD 1
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: NJay, Stormfirebird, Frettchen! und eine weitere Person
Eben noch mal getestet.
StarCitizen läuft jetzt ohne SMT, aber begrenzt durch Process Lasso und das recht sauber.
Ich hoffe das kommt in dem kurzen Video gut rüber.
Denke das Programm werde ich zumindest hier schon mal nutzen können, da mein Standby von Windows jetzt wieder funktioniert.

 
  • Gefällt mir
Reaktionen: Baal Netbeck
Kickstart schrieb:
Kein Frametime Graph? :(

Aber ja, schaut flüssig aus.

APlagueTaleRequiem_x64_2023_02_27_21_42_20_061.jpg
 
Baal Netbeck schrieb:
So kann es so aussehen, als würde ein single Thread Programm, alle 16 Threads gleichmäßig auslasten.
Das sieht wie tolles Multithreading aus, aber es ist eigentlich grauenhaft für die Performance.
Denn die Arbeit findet weiterhin nacheinander statt, aber weil pausenlos von Kern zu Kern gewechselt wird, geht immer der L1&L2 Cache Bezug verloren und das Wechseln kostet ebenfalls Rechenzeit.
Ich weiß was du meinst, wobei man das sehen würde. Dann sind meist (abgesehen von Wartezeiten durch Kontext-/Registerwechsel) die Kerne nicht voll ausgelastet. Meine Beobachtung war nicht 20% Last auf allen Kernen, sondern 20/24 voll ausgelastet und 4 quasi im Idle.

Alleine durch die Gesamtauslastung von >80% bin ich mir sehr sicher, dass an den Stellen die Auslastung tatsächlich gut über die Threads verteilt war.

Da nehme ich aktuell die Aufteilung auf 2 CCD (2x 6 Kerne bim 3900X) in Kauf. Bei mir sind z.B. 2 Kerne auf dem 2. CCD schneller als 4/6 auf meinem ersten, daher kann die Aufteilung bei mir je nachdem schneller sein als alles auf einen Die zu begrenzen. Wenn dann noch durch bessere Temperaturverteilung ein Leistungsplus kommt könnte der Scheduler von Windows mit der Verteilung sogar richtig liegen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Baal Netbeck
Zurück
Oben