hapi píše:- nenapadá mě jedinný důvod proč by zapnutí HT mělo vliv na turbo boost
Pokud se vypne HT, vypnou se některé nepotřebné komponenty na čipu, sníží se příkon a tím i vyzařovaná teplota. Jeden z principů, na kterým funguje TurboBoost je sledování teploty na čipu a pokud se domnívá, že je to možné uchladit, tak zvýší frekvenci. Samozřejmě TurboBoost má ještě další techniky, jak zvyšovat frekvenci procesoru, ale ty se HT netýkají.
hapi píše:- to s tím 2x širším přístupem do paměti bych fakt neřešil. To bych taky mohl říct že cpu co má 2x tolik fyzických jader nebude fungovat tak rychle protože musí do paměti přistupovat 2x častěji což je nesmysl že? To že se přistupuje několika vlákny na jednou kamkoliv obecně vždy zvyšuje efektivitu daný věci. A to vůbec nezmiňuji, že všechny možný paměti co v pcčkách jsou umožňují několikanásobný přístup jak čtení tak zápisu na jednou.
DRAMky mají několik kanálů, na které je možné přistupovat paralelně, ale v procesoru s HT je v jednom fyzickém jádru jediná jednotka, která "řadí" požadavky na data z paměti (označme to jako interface pro přístup k RAM). RAMky v PC mají rádi sekvenční přístup (sekvenční přístup je predikovatelný a procesor může zažádat o přenos dat z RAM, dřív než se objeví reálný požadavek z nějaké instrukce). Jenže při zapnutí HT vzniknou 2 na sobě nezávislé procesy s totálně rozdílným přístupem k paměti, což vede k nárůstu náhodného přístupu, ztrácí se linearita čtení a zvýšuje se latence přístupů.
hapi píše:- zpracování jednoho paketu je celkem triviální záležitost která bude jistě extrémně závislá na externích věcech jako jsou latence sběrnic, ramek atd.
Zpracování paketu není v kernelu až zas tak triviální, jak se to může zdát (a to raděj ani nemluvím o IPv6), ale je pravda, že to čekání na data je nezanedbatelná. Největší problém paketů je, že to jsou poměrně malé datové chunky, a zpracování více paketů zahrnuje spoustu transakcí mezi pamětí a procesorem a opět narážíme na problém s 1 sdíleným interfacem.
hapi píše:- zapnutí HT musí zákonitě zvednout výkon protože se umožní zapojit 2x víc vláken bez toho aniž by OS vědělo o tom že to reálně tolik jader ve skutečnosti nemá. To je například vidět na IRQ frontách u ethernetů kdy i hardware to bere jako že 2x větší počet jader a tim i ethernet úměrně tomu navýší počet IRQ a z vlastní zkušenosti vím že to sakra hodně pomáhá. Tím pádem dojde i ke "zdvojení" všech front celým systémem a když zrovna nic nedělá jedna trasa, druhá vesele maká. Hodně účinná zbraň která v dnešních věcech pomáhá.
No ke zdvojení všech front nedojde, počet exekučních jedotek je stále stejný, počet interfaců k paměti je pořád stejný. Stejně tak se zapnutím HT se nenafoukne L1 - L3 cache (i když nejnáchylnější na HT je L1).
Jako na normální výpočty je běžně HT dobrý a zvyšuje výkon (a příkon), ale zpracování paketů je v tomto ohledu zvláštní problém. Mluvil jsem s klukama, kteří pracují na aplikacích pro 100 Gbps sítě a i oni mají zkušenost, že HT jim snižuje výkon jejich aplikací.