Holt
Legende
- Mitglied seit
- 05.07.2010
- Beiträge
- 29.782
Nicht erst bzgl. der e-Kerne, schon die Intel Turbo Boost Max Technology 3.0 brauchte eine Unterstützung durch Windows 10 ab der entsprechende Version um den besten Kern maximal zu boosten und ab den RYZEN 3000 war es dann bei AMD genauso:Was ja genau auch geschehen ist (seitens Intel bzgl der E-Kerne). Was für Probleme siehst du da genau ?
So neu ist die Zusammenarbeit zwischen der CPU über einen Software wie z.B. den Chipsatztreiber und dem Task Scheduler also nicht. Dies fing an, als die CPU Hersteller die maximalen Boosttakte ab Werk so hoch gesetzt haben, dass nicht mehr alle, sondern nur noch die besten Kerne der CPU diese erreichen.
Dann schau mal auf die Priorität der Threads die auf die e-Kerne geschoben wurden. Wenn diese unterhalb Normal ist, dann ist es normal und das vorgesehene Verhalten (zumindest von Win 10), dass diese nur auf den e-Kernen laufen.Dort gibt es seit einer Zeit eine Multithread Version. Diese wurde unter Windows 10 bei mir immer dummerweise auf den E-Cores ausgeführt.
Aber ja, im HPC Umfeld werden Threads gerne an die (virtuellen) Kerne der CPU gepinnt, um die Verluste durch Kontextwechsel zu vermeiden. Da man dort sowieso in aller Regel die ganzen Kerne voll auslastet, sind diese Kontextwechsel durch den Task Scheduler irgendwo auch recht unsinnig. Dafür ist man dort dann aber eben auch bereit die SW auf die jeweilige Plattform zu optimieren und muss nicht wie im PC Umfeld mit Consumer Software mit allen erdenklichen Plattformen der letzten Jahre rechnen. Was man da teils rausholen kann, zeigt das Beispiel in dieser News:
Intel-Konter: Xeon Platinum 8592+ sehr wohl auf Augenhöhe mit AMDs Turin - Hardwareluxx
Intel-Konter: Xeon 8592+ sehr wohl auf Augenhöhe mit AMDs Turin.
www.hardwareluxx.de
So pauschal stimmt dies nur für die L1 und L2 Caches, aber nicht,wenn es um den L3 Cache geht. Da hängt es von der Architektur der CPU ab bzw. wie viele NUMA Nodes es gibt, ob auch der Inhalt des L3 ungültig wird. Bei den meisten Intel Desktop CPUs gibt es einem gemeinsamen L3 für alle Kerne und damit wird dieser nicht ungültig, bei AMD wird er nur ungültig, wenn die Kerne auf unterschiedlichen CCX liegen.Jedesmal wenn ein Thread von einem Core auf einen anderen verlagert wird, werden die Cacheinhalte ungültig und müssen neu geladen werden, und das kostet nicht unerheblich Zeit
Dafür hat jeder Thread dann aber effektiv nur halb so viel Cache zur Verfügung, da sich ja beide Threads des Kerns die Caches teilen müssen.Durch HT hat man auf jedem Core bereits einen wartenden Thread, so dass man dadurch die negativen Effekte durch einen schlechten Kontextwechsel abmildern kann.