Für alle die am PC zocken, die meisten von euch haben vermutlich HT/SMT (Hyper Threading/Simultanious Multi Threading) aktiviert. Aus Marketing Gründen ist das der Standard weil ne 8 Kerne CPU sich so mit 16 Kernen am OS meldet.
HT/SMT wurde erfunden, um die uneffektive nutzung von CPU Kernen zu verringern. Wenn ihr 8 Kerne habt und jeder ist nur zu 70% ausgelastet, sind da 30% Luft. Meldet das System 16 Kernel, lastet das Programm jeden „virtuellen“ Kern zu 70% aus, was zu einer echten Auslastung von 140% sorgt und die löcher sind zugestopft.
Man hat also im endeffekt mehr Performance. Super? Naja fast.
Wenn man eine 8 Kern CPU die sich als 16 Kern CPU meldet zu 100% auslastet, also ohne diese Lücken (was die meisten Anwendungen heutzutage problemlos schaffen), hat man genau das gegenteilige Problem die CPU wird langsamer. Die Ursache (u.a.), der Cache.
Die CPU hat mehrere Cache. L1 (der schnellste und kleinste), L2 (langsamer, aber größer), L3 (am langsamsten, am größten) und am Ende kommt der RAM (Verglichen mit den L-Cache, Schneckentempo).
Hier mal ne Simulation dazu
Jetzt ist das Problem, wenn ihr der CPU 16 Threads zum verarbeiten gebt, müssen sich 16 Threads den Cache teilen.
Wo die Threads also vorher 1/8 vom Cache hatten, haben sie jetzt nurnoch 1/16 vom Cache. In Kombination mit dem Overhead der durch HT/SMT so oder so entsteht, kann das zu einer reduzierten Performance führen. Insbesondere da viele Programme, um die CPU voll zu nutzen, eh schon doppelte Threads verwenden.
Viele Programme/Spiele machen auf einer 8 Kern CPU die sich als 16 Kerner meldet also 32 Threads auf. Dann hat jeder Thread noch 1/32 vom Cache. Ergebnis, das meiste passiert im (relativ) langsamen RAM.
Auf meinem Desktop hab ich SMT sofort deaktiviert und nen Test gemacht, ich bin fast vom Stuhl geflogen. Kernel Bau (Kompilieren von paar Hundert C Dateien) war 28% schneller(!) WTF?
Hab dann mal paar Benchmarks angeschaut und die Ergebnisse decken sich. Insbesondere bei Ray Tracing kommen die meisten Benchmarks so auf 15~30% höhere Performance bei deaktiviertem HT/SMT.
Es gibt aber auch viele Benchmarks die genau das Gegenteil zeigen. Lenovo sagt z.b. bei Video Encoding/Decoding, soll man es auf jeden Fall aktivieren weil man deutlich höhere Performance bekommt
Einen Haken gibt es an der Sache. Manche BIOS erlauben das abschalten nicht. Ich hab hier nen MiniPC mit Ryzen7, der kann das z.b. nicht, ist im BIOS hart aktiviert. Man kann das in Linux/BSD zwar deaktivieren, aber Windows bietet keine möglichkeit HT im OS zu deaktivieren. Wer es also im BIOS nicht abschalten kann und Windows nutzt… der hat einfach Pech^^
Wenn ihr das also abschalten könnt, schaltet es ab. Heutzutage nutzt praktisch jede Anwendung die CPU so gut es geht, HT/SMT ist ein Relikt aus der Vergangenheit das in der jetzt Zeit nichts mehr verloren hat.
