@flxmmr: fraps war nur n beispiel. das kannst du durch jede beliebige software ersetzen. es geht darum, dass i3 unter laborbedingungen gegen den i5 noch ganz nett aussieht, sobald aber antivirensoftware, email-software, autoupdates, etc. nebenher laufen hat der i3 eben einbußen, die größere cpus nicht haben.
sprich: i5 4460 > i3 6100
Warum aber nicht die Laborbedingungen mit real anwendbaren Mitteln bestehen lassen?
Ich kann ehrlich gesagt die Argumentation nicht wirklich nachvollziehen... Es steht ja außer Frage, dass der breitere Prozessor da mehr Vorzüge hat, aber um das zu belegen, muss man doch nicht irgendwelche Situationen konstruieren?
Warum denn nicht bspw. die Prioritätenfunktion des OS verwenden um einzustellen, welche Anwendung da vorrang hat und welche "nur" den Rest der CPU Power bekommen darf?
Stell bspw. den Renderprozess, der aktiv im Hintergrund während des Spielens läuft auf "niedriger als normal" und schon drängelt sich dieser Task nicht vor das Spiel. Das Spiel bekommt damit genau die CPU Rechenzeit, die es anfordert und welche potentiell allen Anwendungen mit "normaler" Priorität zugestanden wird. Die nächste Stufe drunter bekommt das, was über bleibt... Bei 100% Load auf der CPU durch eine einzige Anwendung wird das natürlich nix, das ist klar, aber wer das so fabriziert, hat bei der Kaufentscheidung womöglich so oder so falsch entschieden. Da es eben CPUs gibt, die derartige Workloads besser abarbeiten und das nicht nur von Intel
Eigentlich (Achtung: Annahme
) müsste SMT damit von Generation zu Generation ineffektiver werden, da Intel immer bestrebt ist die nicht-SMT Threads möglichst gut auszulasten. Falls da jemand Belege für/dagegen hat, bin ich sehr interessiert.
Ich glaube auch nicht das ein Haswell i3 in allen Fällen schneller als ein Sandy i5 ist
Zum ersten, also eigentlich ist eher das Gegenteil der Fall
Intel bohrt die CPU intern auf. Da kommen mehr Einheiten rein und die CPU muss sich dann kümmern, wie sie diese Teile effektiv ausgelastet bekommt. SMT ist da ein Teil davon. Grundsätzlich zerhackstückeln die CPUs so oder so ihre Aufgaben intern und arbeiten zu großen Teilen simultan. So haben heutige CPUs pro Core idR mehrere ALUs und können davon auch profitieren, auch ohne SMT zu nutzen... Mit Haswell hat sich hier bspw. wieder was geändert. Denn es sind nun vier ALUs anstatt wie vorher, drei
SMT hat dabei halt einfach den grundsätzlichen Vorteil, dass damit mehr Workload auf die Einheiten losgelassen wird und man somit über zwei physische Threads auch profitiert, während SingleThreaded da möglicherweise keine Skalierung stattfinden würde, weil sie Zerhackstücklung der Befehle intern in der CPU nicht gut genug funktioniert um die physisch vorhandenen Rechenwerke entsprechend auszufahren!
Unterm Strich, SMT müsste somit in Generation zu Generation eigentlich effizienter werden.
Mal als simples Beispiel, wenn man eine Software programmiert, welche in der Berechnung so abhängig voneinander ist, dass Berechnungen auf den ALUs maximal über zwei ALUs skalieren würden, dann wäre das Zuschalten von SMT auf einem Haswell Prozessor mit dem Leistungsfaktor annähernd 2 zu verbuchen! Mit älteren Modellen wäre die Skalierung von SMT schlechter, da weniger ALUs vorhanden. Nehalem bis Ivy kommen mir drei ALUs, Netburst P4/PD mit zwei ALUs, wenn ich das recht in Erinnerung habe.
Zum anderen, je nach Software kann dir das potentiell aber passieren. SMT skaliert im Mittel mit ca. 15-25%. Zzgl. ~15% IPC Vorteil und ggf. noch oben drauf der mögliche Mehrtakt vom Haswell i3. Schon bei 10-20% mehr Takt kommst du effektiv auf ca. 55-65% Unterschied. Da fehlt nicht mehr viel um auszugleichen. -> Fälle wo das geht wären dann bspw. besser/effektiver arbeitender Code durch mehr Hardwareeinheiten in Haswell ggü. Sandy. (3 vs. 4 ALUs als Beispiel) oder generell höhere Performance durch irgendwelche Befehlserweiterungen, welche Haswell ggf. schneller kann.