Hallo 6R1N
Ich habe erst auch gedacht es geht um SAM, weil dauernd danach gefragt wird.
Ich habe mit vor ein paar Jahren mit dem Thema SMT im Zusammenhang mit dem Flightsimulator FSX auseinander gesetzt. Da kann man verschiedene Einstellungen vornehmen um das zu beeinflussen.
Erst muss man einmal wissen, was SMT genau ist. Die Porzessoren von Intel und AMD lösen das technisch etwas unterschiedlich, aber das Grundprinzip ist das selbe. Hyperthreading ist eine Technik, mit der zwei Prozess-Stränge gleichzeitig auf einem Core laufen können. Bei der Ausführung eines Befehls werden zuerst die nötigen Daten gesammelt, dann wird der Befehl ausgeführt und danach werden die Resultate abgelegt. Bei Prozessoren mit Hyperthreading ist ein Teil der Prozessorstruktur doppelt ausgeführt. Jeder Core hat zwei Eingänge, die ihm die Befehle vorbereiten. Der Core bearbeitet diese dann abwechselnd. Zum Ablegen der Daten sind ebenfalls zwei Ausgänge vorhanden. So muss der Core weniger auf die eingehenden und ausgehenden Daten warten. Wenn ein herkömmlicher Core auf Daten warten muss, bearbeitet er einfach Befehle des anderen Eingangs. Dadurch hat ein Core mit Hyperthreading etwa 1½ mal so viel Leistung wie ein Core ohne. Diese Leistung verteilt sich aber auf zwei Stränge (Threads) die dem entsprechend etwa 3/4 der Leistung haben.
Die beiden Eingänge eines Cores unterscheiden sich nicht von einander. Für beide ist genau die gleiche Hardware verbaut. Auch Windows behandelt beide gleich und verteilt die auszuführenden Prozesse flexibel auf die verfügbaren Threads. Ein Programm merkt nicht, auf welchem Thread es ausgeführt wird. Es gibt nicht - wie manche behaupten - einen normalen physischen Thread und einen virtuellen Hyperthread der schlechter läuft als der richtige.
Somit ist SMT nur eine Angelegenheit der CPU selbst. Andere Hardware hat damit nichts zu tun. Am meisten Einfluss darauf hat die Programmierung eines Games. Um ein Programm multicorefähig zu machen, muss man eine Programmierumgebung verwenden, die das umsetzen kann. Dazu muss der Programmierer das Programm so organisieren, dass Teile der Arbeit unabhängig auf einem anderen Core ausgeführt werden können. Viele Games haben einen Kernprozess, der sich nicht auf verschiedene Core aufteilen lässt. Wenn bei der Programmierung zu wenig darauf geachtet wurde, dass viele Kerne verwendet werden können, dann bliebt viel Arbeit an ein oder 2 Core hängen. Das kann dann das ganze Game limitieren. Die anderen Kerne hätten wohl noch Zeit, aber sie bekommen vom Hauptprozess keine Arbeit zugeteilt. Bei älteren Games trifft man das häufiger, aber auch neue sind nicht immer gut programmiert.
Wenn der Hauptprozess allein auf einem Kern läuft, bekommt er die vollen 100 % der Leistung. Wenn daneben aber auf dem selben Kern noch ein Prozess läuft, teilt er sich die Leistung mit diesem und bekommt nur etwa 75 % Leistung. Darum kann es in solchen Fällen besser sein, SMT abzuschalten damit der Hauptprozess die volle Leistung eines Kerns bekommt. Da sich dadurch die Anzahl Threads halbiert, kann es aber zu anderen Engpässen kommen.
Windows hat auch einen Einfluss darauf, weil es die Threads auf die Kerne verteilt. Man kann teilweise auch über den Taskmanager, Tools oder Einstellungen der Games Einfluss auf die Zuteilung der Kerne nehmen. Meist sind die Möglichkeiten aber recht beschränkt und man kann nicht viel heraus holen. SMT im BIOS ausschalten ist nicht ideal, aber wenigstens zuverlässig.