andi_sco schrieb:
Das musst du mir mal erklären
Wenn eine Applikation weniger Threads nutzt, als man physikalische Kerne hat, kostet SMT einerseits durch den erhöhten Verwaltungsaufwand innerhalb des Prozessors Leistung, andererseits wegen der Ressourcenteilung.
Stell dir vor du hast 6 Kerne und 12 Threads und startest jetzt eine Applikation, die 4 Threads nutzt. Für das Betriebssystem sind alle Kerne gleichwertig, es teilt also die anfallenden Aufgaben dynamisch allen verfügbaren Threads zu. Dabei passiert es immer wieder, dass die 4 Threads beispielsweise so aufgeteilt werden, dass nur 2 Kerne belastet werden (zu je 2 Threads), während 4 echte Kerne mit 8 Threads "brach" liegen. Während also 4 echte Kerne "nix" zu tun haben, müssen sich die zwei ausgelasteten Kerne die Ressourcen teilen und alle 4 Threads bearbeiten. Der beschriebene Sachverhalt lässt sich leider nur schwer reproduzierbar messen, weil das Betriebssystem dynamisch und unreproduzierbar die Threads einteilt, d.h. es wird solche Überschneidungen zwar nur recht selten geben, aber sobald sie auftauchen, gibt es harte Framedrops.
Deshalb ist SMT für den Privatanwender nur gut, wenn man einen CPU mit zu wenig physikalischen Kernen besitzt, wenn ich also eine Anwendung mit 8 Threads nutze (z.B. BF5) und nur einen 4-Core CPU habe, dann bringt SMT sehr viel Leistung. Wenn ich aber nicht immer nur das billigste kaufe, sondern mir gleich genug Kerne zulege, dann ist in echten Anwendungen SMT durch die Bank ein Hemmschuh, außer in irgendwelchen Benchmarks mit einer unbegrenzen Skalierung.
Es gibt in Youtube dutzende Vergleichsvideos SMT on vs SMT off in Games und du siehst fast ausschließlich Vorteile für SMT Off. Bei CoffeeLake ist der 8700K auch nur deshalb überall schneller, als ein 8600K, weil er höher taktet und mehr Cache hat - die potentiellen Nachteile werden also im Fall der Fälle durch Takt und Cache überkompensiert.
Neben dem Verwaltungsoverhead, der Ressourcenteilung und den theoretischen Sicherheitslücken gibt es obendrein recht häufig Kompatibilitätsprobleme mit Spielen oder Software, wenn man zu viele Threads hat, das sieht man am besten mit den Threadrippern, mit denen zu Beginn Games oder Software teilweise nichtmal gestartet ist. Mit 10 Threads hat man das selten, bei 20 kommt es öfters vor.
Bis einschließlich 4 Kerne würde
ich persönlich SMT aktivieren, jedoch ab 6 Kernen darauf verzichten. Sowohl bei meinem ehemaligen Ryzen 1700, als auch bei dem aktuellen 7900X habe ich daher SMT abgeschaltet.