Core Multiplexing Technology
Kapitoly článků
Pojem „Core MultiPlexing Technology“ jsme u nás rozebírali koncem června a tehdy panovala domněnka, že jde o jakýsi „Anti-HyperThreading“ v podání Intelu. Pojmem „Anti-HyperThreading“ je míněna situace, kdy procesor „nějak“ dokáže jednovláknové aplikaci poskytnout sílu dvou jader. Intel sice opravdu něco takového vyvíjí (říká se tomu „speculative multithreading“), nicméně jedna věc je jistá. Core Multiplexing Technology (CMT) s tím velmi pravděpodobně nemá skoro nic společného. Snad jen to, že to má jistou souvislost se sdílenou L2 cache.
Podle našich poznatků není CMT nic jiného než prostě a jednoduše běh obou jader v procesoru s mikro-architekturou Intel Core. CMT je totiž v setupu desky D975XBX ve výchozím stavu zapnuto. A co se stane, když tuto technologii v setupu vypneme, nám napoví nápověda.
Zkrátka a dobře: CMT zapnuto znamená, že procesor má zapnuta všechna jádra. Vypnutí CMT způsobí vypnutí „sekundárních“ jader.
A co jsou to sekundární jádra? Inu, to jsou právě druhá jádra jednoho dvoujádrového kousku křemíku. Pro názornost jsem načrtl procesory Conroe a Kentsfield a představu, co vlastně vypnutí CMT způsobí (relativní velikost jader vzhledem k procesorové destičce berte s velkou rezervou, ta jádra jsou ve skutečnosti o dost menší).
WinRAR 3.51
My jsme tedy vyzkoušeli takový test, jak se bude WinRAR 3.51 chovat ve třech různých situacích:
- WinRAR 3.51 poběží na dvoujádrovém procesoru, ale ve správci úloh mu bude vnuceno jen samotné druhé jádro
- WinRAR 3.51 poběží s vypnutou Core Multiplexing Technology
- WinRAR 3.51 poběží normálně na dvoujádrovém procesoru bez dalších „berliček“
Pro tyto pokusy byl zvolen procesor Core 2 Extreme X6800.
Jak sami vidíte, běh WinRARu se s vypnutím CMT skutečně o píď zrychlil, ale znatelnějšího zrychlení dosáhl WinRAR při běhu na dvoujádrovém procesoru přes sólo jádro. On totiž běh jednovláknové nikterak neoptimalizované aplikace na dvoujádrovém systému vypadá nějak takto:
Systém práci rozhazuje mezi obě jádra, přičemž však nelze práci urychlit, protože jeden výpočet je závislý na druhém. Takže je lepší, když to celé dělá jen jeden procesor, což vypadá takto:
Odpověď na otázku, proč je práce WinRARu na jednom jádře rychlejší než s vypnutým CMT, asi uhodnete sami. Ačkoli v obou případech využívá dané jádro prakticky celou L2 cache, v případě dvoujádrového procesoru má systém na ostatní drobnosti k dispozici celé nezaměstnané druhé jádro. Pakování WinRARu tak vlastně skoro vůbec nic neruší a tudíž proběhne rychleji.
Poznámka: Kdyby vás zajímalo, jak jsme donutili WinRAR běžet jen na druhém jádře, odpověď naleznete přímo ve správci úloh systému Windows XP, pokud ovšem vidí více než jeden procesor (a je jedno, jestli je skutečný nebo jen virtuálně vytvořený třeba technologií HyperThreading).
V našem případě by však nastavení přes správce úloh zdržovalo celý proces a tak byl v testovací dávce použit nástroj Command Line Process Viewer/Killer/Suspender od Beyond Logic.
Další testy už vynechávají situaci běhu aplikace jen na jednom ze dvou jader a sledují pouze změny mezi CMT zapnuto (standardní režim se dvěma jádry) a CMT vypnuto (jen jedno jádro, ale s celými 4 MB L2 cache).
Doom 3
Tady není co řešit, výsledek se vůbec nezměnil.
Far Cry
Far Cry též zjevně nikterak netěží ze dvou jader, odchylka je skutečně zanedbatelná.
Unreal Tournament 2004
Zato u Unreal Tournamentu už se o zanedbatelné odchylce hovořit nedá a vypnutí druhého jádra dělá kupodivu lepší výsledek.