Výhody procesorů Xeon pro pracovní stanice a servery. Použití Intel AVX2 pro vektorové zpracování

Datum: 13.08.2014 22:26

Již v roce 2007 vydala AMD novou generaci procesorů Phenom. Tyto procesory, jak se později ukázalo, obsahovaly chybu v TLB bloku (translation look-aside buffer, buffer pro rychlou konverzi virtuálních adres na fyzické). Společnosti nezbylo nic jiného, ​​než tento problém vyřešit pomocí záplaty v podobě záplaty BIOSu, což ale snížilo výkon procesoru asi o 15 %.

Něco podobného se nyní stalo Intelu. V procesorech generace Haswell společnost implementovala podporu instrukcí TSX (Transactional Synchronization Extension). Jsou určeny k urychlení vícevláknové aplikace a měl být používán především v segmentu serverů. Navzdory tomu, že CPU Haswell jsou na trhu již poměrně dlouho, tato instrukční sada nebyla téměř používána. Podle všeho se to v blízké budoucnosti nestane.

Faktem je, že Intel udělal v pokynech TSX „překlep“, jak to sama společnost nazývá. Chybu mimochodem neodhalili specialisté z procesorového gigantu. Může to vést k nestabilitě systému. Společnost může tento problém vyřešit pouze jedním způsobem, a to aktualizací systému BIOS, která tuto sadu pokynů zakáže.

Mimochodem, TSX je implementováno nejen v procesorech Haswell, ale také v prvních modelech CPU Broadwell, které by se měly objevit pod názvem Core M. Zástupce společnosti potvrdil, že Intel hodlá implementovat „bezchybnou“ verzi instrukcí TSX ve svých dalších produktech v budoucnu.

Tagy: Komentář

Předchozí novinky

2014-08-13 22:23
Sony Xperia Z2 „přežila“ po šestitýdenním pobytu na dně slaného rybníka

Chytré telefony se často stávají hrdiny neuvěřitelných příběhů, ve kterých si vyzkoušejí roli kapesního neprůstřelného vesty, zastaví kulku a ušetří

2014-08-13 21:46
IPhone 6 vstoupil do fáze závěrečného testování

Podle nejnovějších údajů tiskové agentury Gforgames vstoupil iPhone 6 do poslední fáze testování před hromadným uvedením nového smartphonu do výroby. Připomeňme, že iPhone 6 se bude montovat v továrnách v Číně...

2014-08-12 16:38
Osmijádrový tablet iRU M720G podporuje dvě SIM karty

Tablet má 2 GB RAM a 16 GB vestavěné flash paměti. Na palubě jsou dva fotoaparáty: hlavní 8megapixelový a přední 2megapixelový. iRU M720G je vybavena moduly 3G, GPS, Wi-Fi, Bluetooth, FM rádiem a také slotem pro dvě SIM karty, který mu umožňuje provádět...

2014-08-10 18:57
Společnost LG vydala v Rusku levný smartphone L60

Bez velké pompy a fanfár představila společnost LG Electronics v Rusku nový model řady L III - LG L60. Tento levný smartphone prezentováno v cenové rozpětí od 4 do 5 tisíc rublů od největšího ruského...

#Xeon

Dost často při výběru jednoprocesorového serveru resp pracovní stanice Nabízí se otázka, jaký procesor použít - server Xeon nebo běžný Core ix. Vzhledem k tomu, že tyto procesory jsou postaveny na stejných jádrech, volba poměrně často padá na desktopové procesory, které mají obvykle nižší cenu s podobným výkonem. Proč tedy Intel vydává procesory Xeon E3? Pojďme na to přijít.

Specifikace

Pro začátek si vezměme juniorský model procesoru Xeon z aktuální modelové řady – Xeon E3-1220 V3. Soupeř bude Jádrový procesor i5-4440. Oba procesory jsou založeny na jádře Haswell, mají stejný základní takt a podobné ceny. Rozdíly mezi těmito dvěma procesory jsou uvedeny v tabulce:

Dostupnost integrované grafiky. Core i5 má na první pohled výhodu, ale všechny serverové základní desky mají integrovanou grafickou kartu, která nevyžaduje grafický čip v procesoru, a pracovní stanice obvykle nepoužívají integrovanou grafiku kvůli jejich relativně nízkému výkonu.

Podpora ECC. Vysoká rychlost a velký objem BERAN zvýšit pravděpodobnost výskytu softwarové chyby. Obvykle jsou takové chyby neviditelné, ale i přes to mohou vést ke změnám dat nebo selhání systému. Pokud pro stolní počítače podobné chyby nejsou děsivé kvůli jejich vzácnému výskytu, pak jsou nepřijatelné na serverech, které fungují nepřetržitě několik let. K jejich opravě se používá technologie ECC (error-correcting code), jejíž účinnost je 99,988 %.

Tepelný návrhový výkon (TDP). V podstatě spotřeba procesoru při maximální zátěži. Xeony mají obvykle menší tepelnou obálku a chytřejší algoritmy pro úsporu energie, což v konečném důsledku vede k nižším účtům za elektřinu a účinnějšímu chlazení.

L3 cache. Mezipaměť je jakási vrstva mezi procesorem a RAM, která má velmi vysoká rychlost. Čím větší je velikost mezipaměti, tím rychleji běží procesor, protože i velmi rychlá RAM je výrazně pomalejší než mezipaměť. Procesory Xeon mají obvykle větší velikosti mezipaměti, takže jsou vhodnější pro aplikace náročné na zdroje.

Frekvence / Frekvence v režimu TurboBoost. Všechno je zde jednoduché - čím vyšší frekvence, tím rychleji procesor pracuje, všechny ostatní věci jsou stejné. Základní frekvence, tedy frekvence, se kterou procesory pracují při plné zátěži, je stejná, ale v režimu Turbo Boost, tedy při práci s aplikacemi, které nejsou určeny pro vícejádrové procesory,Xeon je rychlejší.

Podpora Intel TSX-NI. Intel Transactional Synchronization Extensions New Instructions (Intel TSX-NI) je doplněk k systému mezipaměti procesoru, který optimalizuje spouštěcí prostředí vícevláknových aplikací, ale samozřejmě pouze v případě, že tyto aplikace používají programovací rozhraní TSX-NI. Instrukční sady TSX-NI vám umožní efektivněji implementovat práci s Velká data a databáze - v případech, kdy více vláken přistupuje ke stejným datům a dochází k situacím blokování vláken. Spekulativní přístup k datům, který je implementován v TSX, umožňuje vytvářet takové aplikace efektivněji a dynamičtěji škálovat výkon při zvýšení počtu souběžně spouštěných vláken řešením konfliktů při přístupu ke sdíleným datům.


Trusted Execution support. Technologie Intel Trusted Execution zlepšuje bezpečné provádění příkazů prostřednictvím hardwarových vylepšení procesorů a čipových sad Intel. Tato technologie poskytuje platformám digitální kanceláře bezpečnostní funkce, jako je měřené spouštění aplikací a bezpečné provádění příkazů. Toho je dosaženo vytvořením prostředí, kde aplikace běží izolovaně od ostatních aplikací v systému.

K výhodám starších procesorů Xeon můžete přidat ještě větší kapacitu L3, až 45 MB, více jádra, až 18 a více podporované paměti RAM, až 768 GB na procesor. Spotřeba přitom nepřesahuje 160 W. Na první pohled je to velmi skvělá hodnota Vezmeme-li však v úvahu, že výkon takových procesorů je několikanásobně vyšší než výkon stejného Xeonu E3-1220 V3 s TDP 80 W, jsou úspory zřejmé. Je třeba také poznamenat, že žádný z procesorů rodiny Core nepodporuje multiprocessing, to znamená, že do jednoho počítače nelze nainstalovat více než jeden procesor. Většina aplikace pro servery a pracovní stanice se dokonale škálují napříč jádry, vlákny a fyzickými procesory, takže instalace dvou procesorů poskytne téměř dvojnásobný nárůst výkonu.

S každou novou generací procesory Intel zahrnují vše více technologií a funkcí. Některé z nich jsou známé (kdo by například neznal hyperthreading?), zatímco většina laiků o existenci jiných ani neví. Otevřeme si známou znalostní bázi pro produkty Intel Automated Relational Knowledge Base (ARK) a vybereme tam procesor. Uvidíme obsáhlý seznam funkcí a technologií – co se skrývá za jejich tajemnými marketingovými názvy? Navrhujeme ponořit se do problematiky, věnovat zvláštní pozornost málo známým technologiím - určitě tam bude spousta zajímavých věcí.

Intel Demand Based Switching

Ve spolupráci s technologií Enhanced Intel SpeedStep Technology, technologie Intel Demand Based Switching je zodpovědný za zajištění toho, že v každém okamžiku během aktuální zátěže procesor pracuje na optimální frekvenci a přijímá adekvátní elektrické energie: ne více a ne méně, než je požadováno. Tím se snižuje spotřeba energie a tvorba tepla, což je důležité nejen pro přenosná zařízení, ale také pro servery – tam se používá přepínání na základě poptávky.

Rychlý přístup k paměti Intel

Funkce řadiče paměti pro optimalizaci výkonu paměti RAM. Jedná se o kombinaci technologií, které umožňují prostřednictvím hloubkové analýzy fronty příkazů identifikovat „překrývající se“ příkazy (například čtení ze stejné paměťové stránky) a poté změnit pořadí skutečného provádění tak, aby „překrývající“ příkazy jsou prováděny jeden po druhém. Navíc jsou zápisy do paměti s nižší prioritou naplánovány na časy, kdy se předpokládá, že se fronta čtení vyprázdní, takže proces zápisu do paměti je ještě méně omezující na rychlost čtení.

Přístup k paměti Intel Flex

Další funkce paměťového řadiče, pocházející ještě z dob, kdy byla samostatný čip, ještě v roce 2004. Poskytuje možnost pracovat v synchronním režimu se dvěma paměťovými moduly současně a na rozdíl od jednoduchého dvoukanálového režimu, který existoval dříve, mohou mít paměťové moduly různé velikosti. Tímto způsobem bylo dosaženo flexibility ve vybavení počítače pamětí, což se odráží i v názvu.

Přehrání instrukcí Intel

Velmi hluboká technologie, která se poprvé objevila v procesory Intel Itanium. Při provozu procesorových pipelines může nastat situace, kdy instrukce již přišly k provedení, ale potřebná data ještě nejsou k dispozici. Pokyn je pak potřeba „přehrát“: odstranit z dopravníku a spustit na jeho začátku. Což se přesně děje. Další důležitou funkcí IRT je korekce náhodné chyby na kanálech procesoru. Přečtěte si více o tomto velmi zajímavá funkcečíst .

Technologie Intel My WiFi

Virtualizační technologie, která umožňuje přidat virtuální WiFi adaptér k existujícímu fyzickému; z vašeho ultrabooku nebo notebooku se tak může stát plnohodnotný přístupový bod nebo opakovač. Softwarové komponenty Moje WiFi zahrnuje Ovladače Intel Software PROSet Wireless verze 13.2 a vyšší; Je třeba si uvědomit, že s technologií jsou kompatibilní pouze některé WiFi adaptéry. Pokyny k instalaci, stejně jako seznam kompatibility softwaru a hardwaru, naleznete na webu společnosti Intel.

Technologie Intel Smart Idle

Další technologie pro úsporu energie. Umožňuje zakázat aktuálně nepoužívané bloky procesoru nebo snížit jejich frekvenci. Nepostradatelná věc pro CPU smartphonu, přesně tam, kde se objevila - v procesorech Intel Atom.

Platforma stabilního obrazu Intel

Termín, který odkazuje spíše na obchodní procesy než na technologii. Intel SIPP poskytuje stabilitu software, zajišťující, že základní komponenty platformy a ovladače zůstanou nezměněny po dobu nejméně 15 měsíců. Podnikoví zákazníci tak mají během tohoto období možnost používat stejné nasazené bitové kopie systému.

Intel QuickAssist

Sada hardwarově implementovaných funkcí, které vyžadují velké množství výpočtů, například šifrování, komprese, rozpoznávání vzorů. Smyslem QuickAssist je usnadnit vývojářům věci tím, že jim poskytne funkční stavební bloky a zrychlí jejich aplikace. Na druhou stranu vám technologie umožňují svěřit „těžké“ úkoly ne nejvíce výkonné procesory, což je zvláště cenné u vestavěných systémů, které jsou výrazně omezeny jak výkonem, tak spotřebou energie.

Rychlé obnovení Intel

Technologie vyvinutá pro počítače založené na platformě Intel Viiv, která jim umožňuje téměř okamžitě zapínat a vypínat, jako jsou TV přijímače nebo DVD přehrávače; zároveň ve stavu „vypnuto“ mohl počítač pokračovat v provádění některých úkolů, které nevyžadovaly zásah uživatele. A ačkoli samotná platforma plynule přecházela do jiných forem spolu s vývojem, který ji doprovázel, linie je v ARK stále přítomná, protože to nebylo tak dávno.

Intel Secure Key

Obecný název pro 32bitové a 64bitové instrukce RDRAND, které používají hardwarovou implementaci generátoru digitálních náhodných čísel (DRNG). Instrukce se používá pro kryptografické účely ke generování krásných a vysoce kvalitních náhodných klíčů.

Intel TSX-NI

Technologie s komplexem jménem Intel Transactional Synchronization Extensions – New Instructions je doplněk k systému mezipaměti procesoru, který optimalizuje spouštěcí prostředí vícevláknových aplikací, ale samozřejmě pouze v případě, že tyto aplikace používají programovací rozhraní TSX-NI. Ze strany uživatele tuto technologii není přímo vidět, ale každý si může přečíst jeho popis přístupný jazyk na blogu Štěpána Kolcova.

Na závěr bychom rádi ještě jednou připomněli, že Intel ARK existuje nejen jako web, ale také jako offline aplikace pro iOS a Android. Držte se tématu!

Zaslouží si Haswellova architektura označení nová a přepracovaná?

Již více než pět let se Intel drží strategie tick-tock, kdy střídá přechod konkrétní architektury na sofistikovanější technologické normy s vydáním nové architektury.

Výsledkem je, že každý rok dostáváme buď novou architekturu, nebo přechod na nový technický proces. „Tak“ bylo plánováno na rok 2013, tedy vydání nové architektury – Haswell. Procesory s novou architekturou jsou vyráběny stejnou procesní technologií jako předchozí generace Ivy Bridge: 22 nm, Tri-gate. Technický proces se nezměnil, ale zvýšil se počet tranzistorů, což znamená, že se zvětšila i konečná plocha krystalu nového procesoru - a poté i spotřeba energie.

V souladu s tradicemi Intel v den oznámení Haswell představil pouze vysoce výkonné a drahé procesory z řad Core i5 a i7. Oznámení dvoujádrové procesory juniorské linky mají jako vždy zpoždění. Za zmínku stojí, že ceny za nové procesory zůstaly na stejné úrovni jako Ivy Bridge.

Porovnejme plochy krystalů různé generacečtyřjádrové procesory:

Jak můžete vidět, čtyřjádrový Haswell má plochu pouhých 177 mm², přičemž je integrován severní most, řadič RAM a grafické jádro. Počet tranzistorů se tak zvýšil o 200 milionů a plocha se zvětšila o 17 mm². Pokud srovnáme Haswell s 32nm Sandy Bridge, pak se počet tranzistorů zvýšil o 440 milionů (38 %) a plocha v důsledku přechodu na procesní technologii 22 nm se snížila o 39 mm² (18 %). Odvod tepla zůstal po všechny ty roky téměř na stejné úrovni (95 W pro SB a 84 W pro Haswell) a plocha se zmenšila.

To vše vedlo k tomu, že z každého čtverečního milimetru krystalu musí být odvedeno více tepla. Pokud dříve z 216 mm² bylo potřeba odebírat 95 W, tedy 0,44 W/mm², nyní z plochy 177 mm² je třeba odebírat 84 W - 0,47 W/mm², což je o 6,8 % více než dříve . Pokud bude tento trend pokračovat, bude brzy jednoduše fyzicky obtížné odvádět teplo z tak malých ploch.

Čistě teoreticky můžeme předpokládat, že pokud v Broadwellu, který se bude vyrábět 14 nm procesní technologií, se počet tranzistorů zvýší o 21 % jako při přechodu z 32 na 22 nm a plocha se zmenší o 26 % (o stejné množství jako při přechodu z 32 na 22 nm) získáme 1,9 miliardy tranzistorů na ploše 131 mm². Pokud o 19 % klesne i odvod tepla, dostaneme 68 W neboli 0,52 W/mm².

Jde o teoretické výpočty, v praxi to bude jinak – přechod technologického procesu z 32 na 22 nm byl také poznamenán zavedením 3D tranzistorů, které snížily svodové proudy a s nimi i tvorbu tepla. O přechodu z 22 nm na 14 nm však zatím nic takového nezaznělo, takže v praxi budou hodnoty odvodu tepla nejspíš ještě horší a v 0,52 W/mm² byste neměli doufat. Avšak i když je úroveň rozptylu tepla 0,52 W/mm², problém místního přehřátí a obtížnost odstranění tepla z malého krystalu se ještě zhorší.

Mimochodem, právě potíže s odvodem tepla s úrovní odvodu tepla 0,52 W/mm² mohou být základem touhy Intelu přejít na BGA nebo pokusů o zrušení socketu. Pokud je procesor připájen k základní desce, pak se teplo bude přenášet přímo z čipu do chladiče bez mezikrytu. To vypadá ještě relevantněji ve světle nahrazení pájky teplovodivou pastou pod kryty moderních procesorů. Opět můžeme očekávat vzhled „holých“ procesorů s otevřenými krystaly po vzoru Athlonu XP, tedy bez krytu jako mezičlánku v chladiči.

To se na grafických kartách dělalo již dlouhou dobu a nebezpečí odštípnutí krystalu je zmírněno železným rámem kolem něj, a proto grafické karty nemají takové „ aktuální problémy“, jako teplovodivá pasta pod kryt procesoru. Přetaktování však bude ještě obtížnější a správné chlazení„tenčí“ procesory jsou téměř věda. A to vše nás čeká velmi brzy, pokud se ovšem nestane zázrak...

Ale pojďme na zem a vraťme se k povídání o Haswellovi. Jak víme, Haswell obdržel řadu „vylepšení/změn“ ve vztahu k Sandy Bridge (a v souladu s tím Ivy Bridge, který byl celkově převedením SB na jemnější technický proces):

  • vestavěný regulátor napětí;
  • nové režimy úspory energie;
  • zvýšení objemu vyrovnávacích pamětí a front;
  • zvýšení kapacity mezipaměti;
  • zvýšení počtu odpalovacích portů;
  • přidávání nových bloků, funkcí, API do integrovaného grafického jádra;
  • zvýšení počtu kanálů v grafickém jádru.

Recenzi nové platformy lze tedy rozdělit do tří částí: procesor, integrovaný grafický akcelerátor, čipset.

Část procesoru

Změny procesoru zahrnují přidání nových instrukcí a nových režimů úspory energie, zahrnutí regulátoru napětí a také změny samotného jádra procesoru.

Instrukční sady

Architektura Haswell zavádí nové instrukční sady. Lze je rozdělit na dva velké skupiny: zaměřené na zvýšení výkonu vektorů a zaměřené na segment serverů. První zahrnují AVX a FMA3, druhý - virtualizaci a transakční paměť.

Advanced Vector Extensions 2 (AVX2)

Sada AVX byla rozšířena na verzi AVX 2.0. Sada AVX2 poskytuje:

  • podpora 256bitových celočíselných vektorů (dříve byla podpora pouze 128bitových);
  • podpora shromažďovacích instrukcí, které odstraňují požadavek na souvislé umístění dat v paměti; nyní jsou data „sbírána“ z různých adres paměti – bude zajímavé sledovat, jak to ovlivní výkon;
  • přidání instrukcí pro manipulaci/operace s bity.

Obecně je nová sada více zaměřena na celočíselnou aritmetiku a hlavní přínos AVX 2.0 bude viditelný pouze v celočíselných operacích.

Fused Multiply-Add (FMA3)

FMA je kombinovaná operace násobení a sčítání, při které se dvě čísla násobí a sčítají do akumulátoru. Tento typ operace jsou zcela běžné a umožňují efektivněji implementovat násobení vektorů a matic. Podpora tohoto rozšíření by měla výrazně zvýšit výkon vektorových operací. FMA3 je již podporován v procesory AMD s jádrem Piledriver a FMA4 v Bulldozeru.

FMA je kombinací operace násobení a sčítání: a=b×c+d.

Pokud jde o FMA3, jedná se o instrukce se třemi operandy, to znamená, že výsledek je zapsán do jednoho ze tří operandů účastnících se instrukce. Výsledkem je operace jako a=b×c+a, a=a×b+c, a=b×a+c.

FMA4 jsou instrukce se čtyřmi operandy s výsledkem zapsaným do čtvrtého operandu. Instrukce má tvar: a=b×c+d.

Když už mluvíme o FMA3: tato inovace zvýší produktivitu o více než 30 %, pokud se kód přizpůsobí FMA3. Stojí za zmínku, že když byl Haswell ještě daleko na obzoru, Intel plánoval implementovat FMA4 spíše než FMA3, ale později své rozhodnutí změnil ve prospěch FMA3. S největší pravděpodobností to bylo kvůli tomu, že Bulldozer přišel s podporou FMA4: říkají, že neměli čas jej převést na Intel (ale Piledriver přišel s FMA3). Navíc, původně Bulldozer v roce 2007 byl plánován s FMA3, ale poté, co Intel oznámil plány na implementaci FMA4 v roce 2008, AMD změnilo své rozhodnutí vydáním Bulldozer s FMA4. A Intel pak ve svých plánech změnil FMA4 na FMA3, protože zisk z FMA4 ve srovnání s FMA3 je malý a komplikace elektrických logické obvody- významný, což také zvyšuje rozpočet tranzistoru.

Zisky z AVX2 a FMA3 se objeví poté, co se software přizpůsobí těmto instrukčním sadám, takže byste neměli očekávat žádné zvýšení výkonu „tady a teď“. A protože výrobci softwaru jsou docela inertní, „dodatečný“ výkon bude muset počkat.

Transakční paměť

Evoluce mikroprocesorů vedla ke zvýšení počtu vláken – moderní desktopový procesor jich má osm a více. Velký počet vláken vytváří stále větší potíže při implementaci vícevláknového přístupu k paměti. Je nutné kontrolovat relevanci proměnných v paměti RAM: u některých vláken je nutné včas zablokovat data pro zápis a u jiných povolit čtení nebo změnu dat. To je obtížný úkol a transakční paměť byla vyvinuta, aby udržela data čerstvá ve vícevláknových programech. Ale až do dnešního dne byl implementován v softwaru, což snižovalo produktivitu.

Haswell má nové Transactional Synchronization Extensions (TSX) – transakční paměť, která je navržena pro efektivní implementaci vícevláknových programů a zvýšení jejich spolehlivosti. Toto rozšíření umožňuje implementovat transakční paměť „v hardwaru“, čímž zvyšuje celkový výkon.

Co je transakční paměť? Jedná se o paměť, která má v sobě mechanismus pro správu paralelních procesů pro poskytování přístupu ke sdíleným datům. Rozšíření TSX se skládá ze dvou komponent: Hardware Lock Elision (HLE) a Restricted Transaction Memory (RTM).

Komponenta RTM je sada instrukcí, která umožňuje programátorovi zahájit, ukončit a přerušit transakci. Komponenta HLE zavádí předpony, které procesory bez podpory TSX ignorují. Prefixy poskytují zamykání proměnných, což umožňuje ostatním procesům používat (číst) zamčené proměnné a provádět jejich kód, dokud nedojde ke konfliktu zápisu na zamčená data.

V tuto chvíli se již objevily aplikace využívající toto rozšíření.

Virtualizace

Význam virtualizace neustále roste: stále více je mnoho virtuálních serverů umístěno na jednom fyzickém serveru a cloudové služby jsou stále rozšířenější. Zvyšování rychlosti virtualizačních technologií a virtualizovaných prostředí je proto v segmentu serverů velmi naléhavým úkolem. Haswell obsahuje několik vylepšení zaměřených konkrétně na zvýšení výkonu virtualizovaných prostředí. Pojďme si je vyjmenovat:

  • vylepšení ke zkrácení času potřebného k přechodu z hostovaných systémů na hostitelský systém;
  • přidány přístupové bity do rozšířené tabulky stránek (EPT);
  • Přístupová doba TLB byla zkrácena;
  • nové instrukce pro volání hypervisoru bez provedení příkazu vmexit;

V důsledku toho se doba přechodu mezi virtualizovanými prostředími zkrátila na méně než 500 procesorových cyklů. To by mělo vést ke snížení celkové režie výkonu spojené s virtualizací. A nový Xeon E3-12xx-v3 bude v této třídě úloh pravděpodobně rychlejší než Xeon E3-12xx-v2.

Vestavěný regulátor napětí

V Haswellu se regulátor napětí přesunul ze základní desky pod kryt procesoru. Dříve (Sandy Bridge) bylo potřeba procesor napájet různým napětím pro grafické jádro, pro systémového agenta, pro procesorová jádra atd. Nyní je do procesoru dodáváno pouze jedno napětí Vccin 1,75 V přes patici, která je přiváděna k vestavěnému regulátoru napětí. Regulátor napětí se skládá z 20 článků, každý článek vytváří 16 fází s celkovým proudem 25 A. Celkem tak získáme 320 fází, což je výrazně více než i u těch nejsofistikovanějších základních desek. Tento přístup umožňuje nejen zjednodušit uspořádání základních desek (a tedy snížit jejich náklady), ale také přesněji regulovat napětí uvnitř procesoru, což zase vede k větším úsporám energie.

To je jeden z hlavních důvodů, proč Haswell nemůže být fyzicky kompatibilní se starou paticí LGA1155. Ano, můžeme mluvit o touze Intelu vydělávat peníze vydáváním nové platformy každý rok ( nový čipset) a každé dva roky - nová zásuvka, ale v v tomto případě Pro výměnu zásuvky existují objektivní důvody: fyzická/elektrická nekompatibilita.

Vše však má svou cenu. Regulátor napětí je dalším znatelným zdrojem tepla v novém procesoru. A vzhledem k tomu, že se Haswell vyrábí pomocí stejné procesní technologie jako jeho předchůdce Ivy Bridge, měli bychom očekávat, že procesor bude teplejší.

Obecně bude toto vylepšení přínosnější v mobilním segmentu: rychlejší a přesnější změny napětí sníží spotřebu energie a také efektivněji řídí frekvenci procesorových jader. A zdá se, že to není prázdné marketingové prohlášení, protože Intel se chystá oznámit mobilní procesory s ultra nízkou spotřebou energie.

Nové režimy úspory energie

Haswell představuje nové stavy spánku S0ix, které jsou podobné stavům S3/S4, ale s mnohem kratší dobou pro přechod procesoru do pracovního stavu. Byl také přidán nový klidový stav C7.

Režim C7 je doprovázen vypnutím hlavní části procesoru, přičemž obraz na obrazovce zůstává aktivní.

Minimální klidová frekvence procesorů je 800 MHz, což by mělo také snížit spotřebu.

Architektura procesoru

Front-end

Potrubí Haswell, stejně jako v SB, má 14–19 stupňů: 14 stupňů pro zásah µop cache, 19 pro miss. Velikost µop cache se oproti SB - 1536 µop nezměnila. Organizace uop cache zůstala stejná jako u SB – 32 sad po osmi řádcích, každá po šesti uopech. I když kvůli nárůstu počtu prováděcích zařízení a také následných vyrovnávacích pamětí po uop cache by se dalo očekávat zvýšení uop cache - až na 1776 uops (proč právě tento objem bude diskutován níže).

Dekodér

Dekodér, dalo by se říci, se nezměnil - zůstává čtyřcestný, jako SB. Skládá se ze čtyř paralelních kanálů: jeden komplexní překladač (komplexní dekodér) a tři jednoduché kanály (jednoduchý dekodér). Složitý překladač dokáže zpracovat/dekódovat složité instrukce, které generují více než jeden UOP. Zbývající tři kanály dekódují jednoduché instrukce. Mimochodem, díky slučování makrooperací generuje načítání s instrukcemi provádění a vykládání například jeden uop a lze je dekódovat v „jednoduchých“ kanálech dekodéru. Instrukce SSE také generují jeden uop, takže je lze dekódovat v kterémkoli ze tří jednoduché kanály. Vzhledem k nástupu 256bitových AVX, FMA3 a také zvýšenému počtu spouštěcích portů a funkčních zařízení nemusí tato rychlost dekodéru jednoduše stačit – a může se stát úzkým hrdlem. Částečně je toto úzké hrdlo „rozšířeno“ o mezipaměť L0m uop, ale přesto, s procesorem s 8 spouštěcími porty, by Intel měl přemýšlet o rozšíření dekodéru - zejména by nebylo na škodu zvýšit počet komplexních kanálů.

Plánovač, vyrovnávací paměť pro změnu pořadí, prováděcí jednotky

Za dekodérem přichází fronta dekódovaných instrukcí a zde vidíme první změnu. SB měl dvě fronty po 28 záznamech – jednu frontu na virtuální vlákno Hyper-Threading (HT). V Haswellu byly dvě fronty sloučeny do jedné společné pro dvě vlákna HT s 56 položkami, to znamená, že objem fronty se nezměnil, ale změnil se koncept. Nyní je celý objem 56 záznamů k dispozici jednomu vláknu bez sekundy - lze tedy očekávat nárůst jak u nízkovláknových aplikací, tak u vícevláknových (je to způsobeno tím, že dvě vlákna mohou používat jedna fronta efektivněji).

Změnila se také vyrovnávací paměť pro změnu pořadí - byla zvýšena ze 168 na 192 záznamů. To by mělo zlepšit účinnost HT o pravděpodobnější přítomnost mopů, které jsou na sobě „nezávislé“. Dekódovaná fronta mikrooperací byla zvýšena z 54 na 60. Soubory fyzických registrů, které se objevily v SB, byly také zvýšeny - ze 160 na 168 registrů pro celočíselné operandy a ze 144 na 168 pro operandy s pohyblivou řádovou čárkou, které by měly mít kladnou hodnotu vliv na výkon vektorových výpočtů.

Shrňme si všechna data o změnách bufferů a front do jediné tabulky.

V zásadě vypadají změny parametrů v Haswellu celkem očekávaně, dané obecná logika vývoj architektury procesorů Intel. Na základě stejné logiky můžeme předpokládat, že v další generaci Core se velikosti vyrovnávacích pamětí a front nezvýší o více než 14 %, to znamená, že velikost přeskupovací vyrovnávací paměti bude kolem 218. Ale to jsou čistě teoretické předpoklady.

Po frontě dekódovaných operací následují spouštěcí porty a porty k nim připojené. funkční zařízení. V této fázi se budeme zabývat podrobněji.

Jak víme, Sandy Bridge měl šest startovacích portů, které zdědil od Nehalema, který zase od Conroea. To znamená, že od roku 2006, kdy Intel přidal další dva porty ke čtyřem dostupným pro Pentium 4, se počet startovacích portů nezměnil – přibyla pouze nová funkční zařízení. Za zmínku však stojí, že P4 měl jakousi původní architekturu NetBurst, ve které jeho dva porty mohly provádět dvě operace v jednom taktu (i když ne se všemi operacemi). Nejsprávnější by však bylo sledovat vývoj počtu spouštěcích portů nikoli pomocí příkladu P4, ale pomocí příkladu PIII, protože P4 má dlouhou pipeline a spouštěcí porty s „dvojitým“ výkonem a trasovací mezipaměť. , a celá jeho architektura se znatelně liší od obecně přijímané. A Pentium III je z hlediska funkčního schématu odpalovacích portů velmi blízké Conroe a má také krátký kontejner. Obecně lze tedy říci, že Conroe je přímým nástupcem PIII. Na základě toho lze konstatovat, že v roce 2006 přibyl pouze jeden startovací port oproti PIII, který měl pět startovacích portů.

Počet odpalovacích portů tedy roste celkem pomalu, a pokud přibývají nové, tak po jednom. Haswell přidal dva najednou, takže celkem osm portů – jen o něco více a dostaneme se k Itaniu. V souladu s tím Haswell vykazuje teoretickou výkonnost na cestě provádění 8 UOP/cyklus, z nichž 4 UOP jsou vynaloženy na aritmetické operace a zbývající 4 na operace s pamětí. Připomeňme, že Conroe/Nehalem/SB měl 6 mopů/tah: 3 mopy aritmetické operace a 3 paměťové operační moduly. Toto vylepšení by mělo zvýšit skóre IPC, a proto skutečně došlo k velmi vážným změnám v architektuře Haswell, které plně ospravedlňují její místo jako „tak“ ve vývojovém plánu Intelu.

FU se mění v Haswellu

Zvýšil se také počet akčních členů. Nový šestý (sedmý) port přidal dva další akční členy – celočíselné aritmetické a posuvné zařízení a zařízení pro predikci větvení. Sedmý (osmý) port je zodpovědný za uvolnění adresy.

Dostaneme tedy čtyři celočíselné aritmetické prováděcí jednotky, zatímco Sandy Bridge nám poskytl pouze tři. Proto můžeme očekávat zvýšení rychlosti celočíselné aritmetiky. Navíc by nám to teoreticky mělo umožnit provádět současně výpočty s plovoucí desetinnou čárkou i celočíselné, což by zase mohlo zvýšit efektivitu NT. V SB byly výpočty s plovoucí desetinnou čárkou prováděny na stejných portech, kde byla použita zařízení s celočíselnou funkcí, takže došlo k velkému zablokování, to znamená, že jste nemohli mít „heterogenní“ zatížení. Je třeba také poznamenat, že přidání dalšího prediktoru větvení do Haswellu umožní predikci větvení bez "blokování" během aritmetických výpočtů - dříve, během celočíselných výpočtů, byl prediktor jedné větve blokován, tj. bylo možné provozovat buď aritmetickou prováděcí jednotku nebo prediktor. Porty 0 a 1 také prošly změnami – nově podporují FMA3. Intel představil sedmý (osmý) port, aby zvýšil efektivitu a odstranil „blokování“ - když druhý a třetí port pracují pro stahování, sedmý (osmý) port lze zapojit do nahrávání, což bylo dříve prostě nemožné. Toto řešení je nezbytné pro zajištění vysoké rychlosti provádění kódu AVX/FMA3.

Obecně platí, že takto široká exekutivní cesta může dobře vést ke změně v HT – čímž se stane čtyřvláknovou. V koprocesorech Intel Xeon Phi s mnohem užší cestou provádění je HT čtyřvláknový a jak ukazují studie a testy, koprocesor se docela dobře škáluje. To znamená, že i užší cesta provádění v zásadě umožňuje efektivně pracovat se čtyřmi vlákny. A cesta s osmi spouštěcími porty může docela efektivně provozovat čtyři vlákna a navíc přítomnost čtyř vláken může lépe zatížit osm spouštěcích portů. Pravda, pro větší efektivitu bude nutné zvětšit buffery (především přeskupovací buffer) pro větší pravděpodobnost „nezávislých“ dat.

Haswell také zdvojnásobil propustnost L1-L2 při zachování stejných hodnot latence. Toto opatření bylo prostě nezbytné, protože 32bajtový zápis a 16bajtové čtení by prostě nestačilo vzhledem k přítomnosti osmi spouštěcích portů, stejně jako 256bitových AVX a FMA3.

Sandy BridgeHaswell
L1i32k, 8cestný32k, 8cestný
L1d32k, 8cestný32k, 8cestný
Latence4 opatření4 opatření
Rychlost stahování32 bajtů/hodiny64 bajtů/hodiny
Rychlost zápisu16 bajtů/cyklus32 bajtů/hodiny
L2256k, 8-cestný256k, 8-cestný
Latence11 opatření11 opatření
Šířka pásma mezi L2 a L132 bajtů/hodiny64 bajtů/hodiny
L1i TLB4k: 128, 4-cestný
2M/4M: 8/závit
4k: 128, 4-cestný
2M/4M: 8/závit
L1d TLB4k: 128, 4-cestný
2M/4M: 7/závit
1G: 4, 4-cestný
4k: 128, 4-cestný
2M/4M: 7/závit
1G: 4, 4-cestný
L2 TLB4k: 512, 4-cestný4k+2M sdílené: 1024, 8-way

TLB L2 bylo zvýšeno na 1024 záznamů a objevila se podpora dvoumegabajtových stránek. Zvýšení TLB L2 také znamenalo zvýšení asociativnosti ze čtyř na osm.

Pokud jde o mezipaměť třetí úrovně, situace s ní je nejednoznačná: v novém procesoru by se měla latence přístupu zvýšit kvůli ztrátám synchronizace, protože nyní mezipaměť L3 pracuje na své vlastní frekvenci, a nikoli na frekvenci jader procesoru, jak tomu bylo dříve. I když je přístup stále prováděn rychlostí 32 bajtů za cyklus hodin. Na druhou stranu Intel hovoří o změnách System Agent a vylepšení bloku Load Balancer, který nyní dokáže paralelně zpracovávat více požadavků L3 cache a rozdělit je na datové a nedatové požadavky. Tím by se měla zvýšit propustnost L3 cache (některé testy to potvrzují, šířka pásma L3 cache je o něco vyšší než IB).

Princip fungování L3 cache v Haswellu je poněkud podobný Nehalemu. V Nehalemu byla L3 cache umístěna v Uncore a měla svou pevnou frekvenci, zatímco v SB byla L3 cache vázána na jádra procesoru - její frekvence se rovnala frekvenci procesorových jader. Z tohoto důvodu vznikly problémy - například když procesorová jádra pracovala na snížených frekvencích, když nebyla žádná zátěž (a LLC „usnulo“) a GPU potřeboval vysoký LLC PS. To znamená, že toto řešení omezovalo výkon GPU a také vyžadovalo uvedení procesorových jader z nečinného stavu, aby se LLC probudilo. V novém procesoru, aby se zlepšila spotřeba energie a zvýšila účinnost GPU ve výše popsaných situacích, mezipaměť L3 pracuje na své vlastní frekvenci. Největší přínos Z toho by se měla odvíjet spíše mobilní než desktopová řešení.

Stojí za zmínku, že velikosti mezipaměti mají určitou závislost. Mezipaměť třetí úrovně má dva megabajty na jádro, mezipaměť druhé úrovně má 256 KB, což je osmkrát méně než objem L3 na jádro. Objem mezipaměti první úrovně je zase osmkrát menší než u L2 a je 32 KB. Mezipaměť uop dokonale zapadá do této závislosti: její objem 1536 uops je 7–9krát menší než L1 (nelze to přesně určit, protože bitová velikost uop není známa a Intel pravděpodobně toto téma nerozšíří. ). Na druhé straně je vyrovnávací paměť pro změnu pořadí 168 uops přesně osmkrát menší než mezipaměť uop 1536 uops, ačkoli na základě rozsáhlého nárůstu vyrovnávací paměti a front by se dalo očekávat zvýšení mezipaměti uop o 14 %, tj. až 1776. Objemy vyrovnávacích pamětí a mezipamětí tedy mají proporcionální velikosti. To je pravděpodobně další důvod, proč Intel nezvětšuje mezipaměti L1/L2, protože takové proporce v objemech považuje za nejúčinnější z hlediska zvýšení výkonu na nárůst plochy. Za zmínku stojí, že procesory s vestavěným špičkovým grafickým jádrem mají středně rychlou paměť s širokou přístupovou sběrnicí, která všechny požadavky ukládá do RAM – jak procesoru, tak video akcelerátoru. Objem této paměti je 128 MB. U procesorových jader, pokud budeme tuto paměť považovat za L4 cache, měl být objem 64 megabajtů a s přidáním grafického jádra vypadá použití 128 MB celkem logicky.

Pokud jde o paměťový řadič, neobdržel ani zvýšení počtu kanálů, ani zvýšení frekvence provozu RAM, to znamená, že je to stále stejný paměťový řadič s dvoukanálovým přístupem na frekvenci 1600 MHz. . Toto rozhodnutí vypadá poněkud zvláštně, protože přechodem z SB na IB se zvýšila pracovní frekvence ICP z 1333 MHz na 1600 MHz, ačkoli se jednalo pouze o přechod architektury na nový technický proces. A nyní máme novou architekturu, přičemž frekvence provozu paměti zůstává na stejné úrovni.

To vypadá ještě zvláštněji, pokud si vzpomeneme na vylepšení v grafickém jádru – koneckonců si pamatujeme, že i low-endová grafická karta HD2500 v IB zcela využívala šířku pásma 25 GB/s. Nyní se zvýšil jak výkon CPU, tak grafický výkon, zatímco šířka pásma paměti zůstala na stejné úrovni. V širším měřítku konkurent neustále zvyšuje šířku pásma paměti ve svých APU a je vyšší než u Intelu. Bylo by logické očekávat, že Haswell bude podporovat paměti s frekvencí 1866 MHz nebo 2133 MHz, což by zvýšilo šířku pásma na 30, respektive 34 GB/s.

V důsledku toho toto Řešení Intel ne zcela jasné. Nejprve konkurent bez problémů zavedl podporu rychlejší paměti. Za druhé, náklady na paměťové moduly pracující na frekvenci 1866 MHz nejsou o mnoho vyšší ve srovnání s moduly 1600 MHz a kromě toho vás nikdo nezavazuje k nákupu 1866 MHz paměti - výběr by byl na uživateli. Za třetí, s podporou nejen 1866 MHz, ale i 2133 MHz nemohou být žádné problémy: od samotného oznámení Haswellu byly stanoveny světové rekordy v přetaktování RAM, to znamená, že IKP by zvládl rychlejší paměť bez nějaké problémy. Za čtvrté, řada serverů Xeon E5-2500 V2 (Ivy Bridge-EP) požaduje podporu pro 1866 MHz, ale Intel obvykle implementuje podporu pro více než rychlé standardy paměť na tomto trhu je mnohem pozdější než desktopová řešení.

V zásadě by se dalo předpokládat, že při absenci konkurence Intel nepotřebuje „jen tak“ budovat svaly a dále zvyšovat svou převahu, ale tento předpoklad je naprosto nesprávný, protože zvýšení šířky pásma paměti zpravidla zvyšuje výkon integrovaného grafického jádra a téměř nezvyšuje výkon procesoru. Intel přitom v grafickém výkonu stále za AMD zaostává a sám Intel se grafice v posledních letech věnuje stále více a míra zlepšování je u ní mnohem vyšší než u jádra procesoru. Pokud se navíc opřeme o výsledky testování integrovaného grafického jádra předchozí generace HD4000, které ukázaly, že zvýšení šířky pásma paměti vede ke zvýšení grafického výkonu až o 30 %, a také s přihlédnutím k tomu, že nový grafické jádro HD4600 je znatelně rychlejší než HD4000, pak je závislost výkonu grafického jádra od PSP ještě zřetelnější. Nové grafické jádro bude ještě více omezeno „úzkou“ šířkou pásma paměti. Shrneme-li všechna fakta, rozhodnutí Intelu je zcela nepochopitelné: společnost sama „uškrtila“ svou grafiku, ale zvýšení šířky pásma by mohlo zlepšit její výkon.

Vrátíme-li se k architektuře cache, vyhoďme myšlenku do prázdna: když už byla přidána mezipaměť (mop cache), tak proč nepřidat mezipaměť dat o velikosti cca 4-8 KB a s nižším přístupem latence mezi L1d cache a výkonnými zařízeními, jako z P4 (protože koncept uop cache byl převzat z Netburstu)? Připomeňme, že v P4 měla tato mezipaměť mezipaměti přístupovou dobu dva hodinové cykly a jeden cyklus P4 se rovnal přibližně 0,75 hodinovým cyklům běžného procesoru, to znamená, že přístupová doba byla asi jeden a půl hodinového cyklu. Možná se však něčeho podobného ještě dočkáme – Intel rád vzpomíná na zapomenuté staré věci.

Jak můžete vidět, Intel zamířil většinu architektonických změn na zvýšení výkonu kódu AVX/FMA3: to zahrnovalo zvýšení propustnosti mezipaměti, zvýšení počtu portů a zvýšení rychlosti odesílání/načítání v cesta provedení. V důsledku toho by hlavní nárůst výkonu měl pocházet ze softwaru napsaného pomocí AVX/FMA3. V zásadě se podle výsledků testů zdá, že tomu tak je. Suchý výkon při stejné frekvenci ve „starých“ aplikacích zaznamenal nárůst zhruba o 10 % ve srovnání s předchozím jádrem a aplikace napsané pomocí nových instrukčních sad vykazují nárůst o více než 30 %. Výhody architektury Haswell se tedy projeví, až budou aplikace optimalizovány pro nové instrukční sady. Tehdy bude Haswellova převaha nad SB zřejmá.

Hlavním přínosem z významné části inovací budou mobilní zařízení. Pomůže jim nový přístup k vyrovnávací paměti L3 a vestavěný regulátor napětí a nové režimy spánku a nižší minimální frekvence fungování procesorových jader.

Závěr (procesorová část)

Co můžete od Haswella očekávat?

Vzhledem k nárůstu počtu launch portů lze očekávat nárůst IPC, takže nová architektura Haswell bude mít na stejné frekvenci i nyní mírnou výhodu oproti Sandy Bridge i s neoptimalizovaným softwarem. Instrukce AVX2/FMA3 jsou základem pro budoucnost a tato budoucnost závisí na vývojářích softwaru: čím rychleji přizpůsobí své aplikace, tím rychleji koncový uživatel uvidí nárůst výkonu. Neměli byste však očekávat růst ve všem a všude: SIMD instrukce se používají hlavně při práci s multimediálními daty a ve vědeckých výpočtech, takže v těchto úlohách je třeba očekávat růst výkonu. Hlavní přínos zvýšení energetické účinnosti bude v mobilních systémech, kde je tato problematika opravdu důležitá. Existují tedy dva hlavní směry, kterými nová architektura Intel Haswell Významným přínosem je zvýšení výkonu SIMD a zvýšení energetické účinnosti.

Ohledně použitelnosti nového procesory Haswell, pak stojí za to podívat se na několik různých možností jejich použití: ve stolních počítačích, na serverech, v mobilních řešeních, pro hráče, pro přetaktování.

Desktop

Spotřeba energie není u desktopového procesoru klíčovým aspektem, takže ani v Evropě s drahou elektřinou je nepravděpodobné, že by někdo přešel na Haswell z předchozích generací jen kvůli tomu. Navíc TDP Haswellu je vyšší než u IB, takže úspora bude pouze v případě minimálního zatížení. Když je otázka položena tímto způsobem, nemůže být pochyb - nestojí to za to.

Z hlediska výkonu přechod také nevypadá jako tak ziskový obchod: maximální zvýšení rychlosti procesorových úloh nyní nebude větší než 10 %. Přechod na Haswell ze Sandy Bridge nebo Ivy Bridge bude opodstatněný pouze v případě, že plánujete používat aplikace s kompetentní podporou pro FMA3 a AVX2: Podpora FMA3 může u některých aplikací přinést nárůst z 30 % na 70 %. Vylepšení související s virtualizací a zavedení transakční paměti jsou pro desktop málo zajímavé a použitelné.

Servery a pracovní stanice

Vzhledem k tomu, že servery fungují nepřetržitě 24 hodin denně a mají poměrně vysoké konstantní zátěž na procesor, pokud jde o čistou spotřebu energie, Haswell pravděpodobně nebude lepší než IB, i když z hlediska výkonu na watt může poskytnout určitý zisk. Je nepravděpodobné, že by podpora AVX2/FMA3 byla užitečná na serverech, ale na pracovních stanicích zapojených do vědeckých výpočtů bude tato podpora velmi, velmi užitečná - ale pouze v případě, že používané nové instrukce jsou podporovány. Transakční paměť je docela užitečná věc, ale také ne vždy: může přinést nárůst ve vícevláknových programech a v programech, které pracují s databázemi, ale pro její efektivní využití je také nezbytná optimalizace softwaru.

Ale všechna vylepšení spojená s virtualizací budou mít s největší pravděpodobností dobrý účinek, protože virtuální prostředí se nyní používají velmi aktivně a na většině fyzické servery funguje na několika virtuálních. Rozšíření virtualizace se navíc vysvětluje nejen znatelným snížením nákladů virtuální prostředí z hlediska výkonu, ale také ekonomická účinnost: Obsah mnoha virtuálních serverů na jednom fyzickém serveru je levnější a umožňuje efektivnější využití prostředků, včetně prostředků procesorů.

Takže vzhled Haswell by měl být na trhu serverů vítán pozitivně. Po změně serverů na Na bázi Xeonu E3-1200v1 a Xeon E3-1200v2 na servery s Xeon E3-1200v3 (Haswell) okamžitě získáte zvýšení efektivity a po optimalizaci softwaru pro AVX2/FMA3 a transakční paměti se výkon ještě zvýší.

Mobilní řešení

Hlavní přínos uvedení Haswell do mobilního segmentu samozřejmě spočívá v oblasti zlepšené spotřeby energie. Soudě podle Prezentace Intel, stejně jako výsledky testů, které se již objevují na internetu, skutečně existuje efekt, a to znatelný.

Pokud jde o čistý výkon, nezdá se, že by přechod z Ivy Bridge na Haswell byl tak oprávněným počinem: čistý zisk by měl být relativně malý a vylepšení jednotlivých komponent (stejná virtualizace nebo multimediální instrukce) pravděpodobně příliš nepřinesou uživatel mobilního systému, protože notebooky a tablety se zřídka používají k vytváření prostředí nebo provádění složitých vědeckých výpočtů.

Obecně platí, že pokud jde o výkon procesoru, neměli byste očekávat mnoho, ale v mobilní systémy Určitě bude poptávka po zvýšení výkonu grafického jádra. Pokud tedy pro vás problémy se spotřebou energie nejsou kritické, neměli byste vážně uvažovat o upgradu ze Sandy Bridge nebo Ivy Bridge – je lepší pokračovat v provozu stávajících systémů, dokud nebudou zcela zastaralé. Pokud často pracujete na bateriích, pak může Haswell poskytnout výrazné zvýšení životnosti baterie.

hráči

Otázka spotřeby energie mezi hráči v Rusku zpravidla není problémem - a proč by to mělo být, když herní grafické karty spotřebovávají 200 wattů nebo více? Hráči také nepotřebují virtualizaci a transakční paměť. Není pravda, že AVX2/FMA3 budou žádané speciálně pro hry, i když mohou být užitečné ve fyzikálních výpočtech. Zůstává čistý výkon procesoru a zde je rozdíl se stejným Ivy Bridge malý. V důsledku toho se pro tuto kategorii uživatelů přímý přechod z SB nebo IB na Haswell také nezdá relevantní. Ale má smysl přejít na nové procesory od Nehalem a Lynifield a ještě více Conroe.

Overclockery

Pro overclockery může být zajímavý nový procesor (ale samozřejmě jen jeho „odemčená“ K-verze), zvláště pokud je možné jej „scalpovat“, tedy sundat kovový kryt a chladit přímo krystal. Pokud se tak nestane, budou výsledky přetaktování vypadat ještě skromněji než výsledky Ivy Bridge. Navíc může být omezujícím faktorem integrovaný regulátor napětí. Přečtěte si o tom více

Překládáme... Přeložit Čínština (zjednodušená) Čínština (tradiční) Angličtina Francouzština Němčina Italština Portugalština Ruština Španělština Turečtina

Bohužel tyto informace momentálně nejsme schopni přeložit – zkuste to prosím znovu později.

Zavedení

Software určený pro komunikaci a přenos dat vyžaduje velmi vysoký výkon kvůli přenosu obrovského množství dat. malé balíčky data. Jednou z výzev vývoje aplikací virtualizace síťových funkcí (NFV) je, že potřebujete využít virtualizaci v co největší míře, ale také optimalizovat aplikaci pro hardware, který používáte, kde je to vhodné.

V tomto článku zdůrazním tři funkce procesorů Intel®, které jsou užitečné pro optimalizaci výkonu aplikací NFV: Cache Allocation Technologies (CAT), Intel® Advanced Vector Extensions 2 (Intel® AVX2) pro vektorové zpracování a Intel® Rozšíření transakční synchronizace (Intel® TSX).

Řešení problému inverze priority pomocí CAT

Když funkce s nízkou prioritou krade zdroje z funkce s vysokou prioritou, nazýváme to „inverze priority“.

Ne všechny virtuální funkce stejně důležité. Například funkce směrování je citlivá na dobu zpracování a výkon, zatímco funkce kódování médií není tak důležitá. Této funkci by bylo velmi dobře umožněno periodicky zahazovat pakety, aniž by to mělo vliv na uživatelskou zkušenost, protože si stejně nikdo nevšimne poklesu snímkové frekvence videa z 20 na 19 snímků za sekundu.

Ve výchozím nastavení je mezipaměť navržena tak, aby její největší část obdržel nejaktivnější spotřebitel. Nejaktivnější spotřebitel však není vždy tou nejdůležitější aplikací. Ve skutečnosti je opak často pravdou. Aplikace s vysokou prioritou jsou optimalizovány, jejich objem dat je redukován na nejmenší možnou sadu. Aplikace s nízkou prioritou nevynakládají tolik úsilí na jejich optimalizaci, takže mají tendenci spotřebovávat více paměti. Některé z těchto funkcí zabírají hodně paměti. Například funkce zobrazení balíčku pro statistická analýza má nízkou prioritu, ale spotřebovává mnoho paměti a silně využívá mezipaměť.

Vývojáři často předpokládají, že pokud vloží jednu aplikaci s vysokou prioritou do konkrétního jádra, bude tam aplikace v bezpečí a aplikace s nízkou prioritou ji neovlivní. Bohužel tomu tak není. Každé jádro má vlastní mezipaměť úrovně 1 (L1, nejrychlejší, ale nejmenší mezipaměť) a mezipaměť úrovně 2 (L2, o něco větší, ale pomalejší). Existují samostatné oblasti mezipaměti L1 pro data (L1D) a programový kód (L1I, "I" znamená instrukce). Mezipaměť třetí úrovně (nejpomalejší) je společná pro všechna jádra procesoru. Na architekturách procesorů Intel® až do rodiny Broadwell včetně je mezipaměť L3 plně inkluzivní, což znamená, že obsahuje vše, co obsahuje mezipaměti L1 a L2. Vzhledem k tomu, jak funguje mezipaměť zahrnutí, pokud je něco odebráno z mezipaměti třetí úrovně, bude to odstraněno také z odpovídajících mezipamětí první a druhé úrovně. To znamená, že aplikace s nízkou prioritou, která potřebuje místo v mezipaměti L3, může přemístit data z mezipaměti L1 a L2 aplikace s vysokou prioritou, i když běží na jiném jádru.

V minulosti existoval přístup, jak tento problém obejít, nazývaný „zahřívání“. Když soutěží o přístup k mezipaměti L3, „vítězem“ je aplikace, která přistupuje k paměti nejčastěji. Řešením je proto mít funkce s vysokou prioritou neustále přístup k mezipaměti, i když je nečinný. Není to příliš elegantní řešení, ale často bylo docela přijatelné a donedávna neexistovaly žádné alternativy. Nyní však existuje alternativa: řada procesorů Intel® Xeon® E5 v3 zavádí technologii Cache Allocation Technology (CAT), která vám dává možnost přidělovat mezipaměť na základě aplikací a tříd služeb.

Vliv inverze priority

Abych demonstroval dopad inverze priority, napsal jsem jednoduchý microbench, který periodicky spouští procházení propojeného seznamu ve vláknu s vysokou prioritou, zatímco vlákno s nízkou prioritou neustále spouští funkci kopírování v paměti. Tato vlákna jsou přiřazena k různým jádrům stejného procesoru. Toto simuluje nejhorší možný scénář Spor o přístup ke zdrojům: Operace kopírování vyžaduje hodně paměti, takže pravděpodobně naruší důležitější vlákno přistupující k seznamu.

Zde je kód v C.

// Vytvořte propojený seznam velikosti N s pseudonáhodným vzorem void init_pool(položka_seznamu *head, int N, int A, int B) ( int C = B; položka seznamu *current = head; for (int i = 0; i< N - 1; i++) { current->tick = 0;< N - 1; i++) { current = current->C = (A*C + B) % N;< 50; j++) { list_item* current = head; #if WARMUP_ON while(in_copy) warmup_list(head, N); #else while(in_copy) spin_sleep(1); #endif i1 = __rdtsc(); for(int i = 0; i < N; i++) { current->aktuální->další = (položka_seznamu*)&(hlava[C]);

proud = proud->další;

prům += (i2-i1)/50;

Základním ukazatelem je červenohnědá čára, odpovídá programu bez kopírovacího vlákna v paměti, tedy bez sváru. Modrá čára ukazuje důsledky inverze priority: díky funkci kopírování z paměti trvá přístup k seznamu výrazně déle. Dopad je obzvláště velký, pokud se seznam vejde do vysokorychlostní mezipaměti L1 nebo L2. Pokud je seznam tak velký, že se nevejde do mezipaměti třetí úrovně, je dopad zanedbatelný.

Zelená čára ukazuje efekt zahřívání, když je spuštěna funkce kopírování do paměti: doba přístupu se prudce snižuje a blíží se k základní hodnotě.

Pokud povolíme CAT a přidělíme části mezipaměti L3 každému jádru pro výhradní použití, výsledky se budou velmi blížit základní linii (příliš blízko na to, aby bylo vidět v diagramu), což je náš cíl.

PovoleníKOČKA

Nejprve se ujistěte, že platforma podporuje CAT. Instrukci CPUID můžete použít zaškrtnutím adresního listu 7, podlistu 0 přidaným k označení dostupnosti CAT.

Pokud je povolen a podporován CAT, existují registry MSR, které lze naprogramovat tak, aby přidělovaly různé části mezipaměti L3 různým jádrům.

Každý má patice procesoru existují registry MSR IA32_L3_MASKn (například 0xc90, 0xc91, 0xc92, 0xc93). Tyto registry ukládají bitovou masku udávající, kolik mezipaměti L3 by mělo být přiděleno pro každou třídu služeb (COS). 0xc90 ukládá alokaci mezipaměti pro COS0, 0xc91 pro COS1 atd.

Tento diagram například ukazuje některé možné bitové masky pro různé třídy služeb, které demonstrují, jak lze mezipaměť rozdělit: COS0 dostane polovinu, COS1 čtvrtinu a COS2 a COS3 dostane každý osminu. Například 0xc90 bude obsahovat 11110000 a 0xc93 bude obsahovat 00000001.

Algoritmus Direct Data I/O (DDIO) má svou vlastní skrytou bitovou masku, která umožňuje tok dat z vysokorychlostních zařízení PCIe, jako jsou síťové adaptéry. určité oblasti mezipaměť třetí úrovně. Existuje potenciál konfliktu s definovanými třídami služeb, takže to je třeba vzít v úvahu při vytváření aplikací NFV s vysokou propustností. Chcete-li otestovat konflikty, použijte k detekci chyb mezipaměti. Některé BIOSy mají nastavení, které umožňuje zobrazit a změnit masku DDIO.

Každé jádro má registr MSR IA32_PQR_ASSOC (0xc8f), který označuje, která třída služby se na toto jádro vztahuje. Výchozí třída služby je 0, což znamená, že je použita bitová maska ​​v MSR 0xc90. (Ve výchozím nastavení je bitová maska ​​0xc90 nastavena na 1, aby byla zajištěna maximální dostupnost mezipaměti.)

Nejvíce jednoduchý model Použití CAT v NFV – přidělování částí mezipaměti L3 různým jádrům pomocí izolovaných bitových masek a poté přiřazení vláken nebo virtuálních strojů k jádrům. Pokud virtuální počítače potřebují ke spuštění sdílet jádra, je také možné provést triviální opravu plánovače operačního systému, přidat masku mezipaměti k vláknům, na kterých virtuální počítače běží, a dynamicky ji povolit při každé události plánování.

Existuje další neobvyklý způsob, jak pomocí CAT uzamknout data v mezipaměti. Nejprve vytvořte masku aktivní mezipaměti a přistupte k datům v paměti, abyste je načetli do mezipaměti L3. Potom zakažte bity představující tuto část mezipaměti L3 v jakékoli bitové masce CAT, která se použije v budoucnu. Data budou uzamčena v mezipaměti L3, protože je nyní není možné odtud (kromě DDIO) vypudit. V aplikaci NFV tento mechanismus umožňuje uzamknout středně velké vyhledávací tabulky pro směrování a analýzu paketů v mezipaměti L3, aby byl zajištěn trvalý přístup.

Použití Intel AVX2 pro vektorové zpracování

Instrukce SIMD (jedna instrukce, mnoho dat) umožňují provádět stejnou operaci na různých kusech dat současně. Tyto instrukce se často používají k urychlení výpočtů s pohyblivou řádovou čárkou, ale jsou k dispozici i celočíselné, booleovské a datové verze instrukcí.

V závislosti na procesoru, který používáte, budete mít k dispozici různé rodiny instrukcí SIMD. Velikost vektoru zpracovávaného příkazy se bude také lišit:

  • SSE podporuje 128bitové vektory.
  • Intel AVX2 podporuje celočíselné instrukce pro 256bitové vektory a implementuje instrukce pro shromažďovací operace.
  • Rozšíření AVX3 na budoucích architekturách Intel® budou podporovat 512bitové vektory.

Jeden 128bitový vektor lze použít pro dvě 64bitové proměnné, čtyři 32bitové proměnné nebo osm 16bitových proměnných (v závislosti na použitých instrukcích SIMD). Větší vektory pojme více datových prvků. Vzhledem k vysokým nárokům na propustnost aplikací NFV byste měli vždy používat nejvýkonnější instrukce SIMD (a související hardware), aktuálně Intel AVX2.

SIMD instrukce se nejčastěji používají k provedení stejné operace s vektorem hodnot, jak je znázorněno na obrázku. Zde je operace vytvoření X1opY1 až X4opY4 jedinou instrukcí, která současně zpracovává datové položky X1 až X4 a Y1 až Y4. V tomto příkladu bude zrychlení čtyřikrát rychlejší než normální (skalární) provádění, protože čtyři operace jsou zpracovávány současně. Zrychlení může být tak velké, jako je velký vektor SIMD. Aplikace NFV často zpracovávají více paketových toků stejným způsobem, takže instrukce SIMD poskytují přirozený způsob optimalizace výkonu.

Pro jednoduché smyčky Kompilátor často automaticky vektorizuje operace pomocí nejnovějších instrukcí SIMD dostupných pro daný CPU (pokud použijete správné příznaky kompilátoru). Svůj kód můžete optimalizovat tak, aby používal nejmodernější sadu instrukcí podporovanou hardwarem za běhu, nebo můžete kód zkompilovat pro konkrétní cílovou architekturu.

Operace SIMD také podporují zatížení paměti, zkopírují až 32 bajtů (256 bitů) z paměti do registru. To umožňuje přenos dat mezi pamětí a registry, obcházení mezipaměti a sběr dat z různých míst v paměti. Můžete také provádět různé operace s vektory (změna dat v rámci jednoho registru) a ukládání vektorů (zápis až 32 bajtů z registru do paměti).

Memcpy a memmov jsou dobře známé příklady základních rutin, které byly od začátku implementovány pomocí instrukcí SIMD, protože instrukce REP MOV byla příliš pomalá. Kód memcpy byl pravidelně aktualizován v systémových knihovnách, aby používal nejnovější instrukce SIMD. Tabulka správce CPUID byla použita k získání informací o tom, která z nejnovějších verzí byla k dispozici pro použití. Implementace nových generací instrukcí SIMD v knihovnách se přitom obvykle zpožďuje.

Například následující rutina memcpy, která používá jednoduchou smyčku, je založena na vestavěných funkcích (místo kódu knihovny), takže ji kompilátor může optimalizovat pro nejnovější verzi instrukcí SIMD.

Mm256_store_si256((__m256i*) (dest++), (__m256i*) (src++))

Kompiluje se do následujícího kódu sestavení a má dvojnásobný výkon než nedávné knihovny.

C5 fd 6f 04 04 vmovdqa (%rsp,%rax,1),%ymm0 c5 fd 7f 84 04 00 00 vmovdqa %ymm0.0x10000(%rsp,%rax,1)

Kód sestavení z vložené funkce zkopíruje 32 bajtů (256 bitů) s použitím nejnovější dostupné pokyny SIMD, zatímco kód knihovny používající SSE zkopíruje pouze 16 bajtů (128 bitů).

Aplikace NFV často potřebují provést shromažďovací operaci načtením dat z více míst v různých paměťových místech, která spolu nesouvisejí. Síťový adaptér může například ukládat do mezipaměti příchozí pakety pomocí DDIO. Aplikace NFV může potřebovat pouze přístup k cílové IP části síťové hlavičky. Pomocí operace shromažďování může aplikace sbírat data pro 8 paketů současně.

Pro operaci shromažďování není nutné používat inline funkce nebo kód sestavení, protože kompilátor může vektorizovat kód, jako u programu znázorněného níže, na základě testu sčítání čísel z pseudonáhodných míst v paměti.

Int a; int b; pro (i = 0; i< 1024; i++) a[i] = i; for (i = 0; i < 64; i++) b[i] = (i*1051) % 1024; for (i = 0; i < 64; i++) sum += a]; // This line is vectorized using gather.

Poslední řádek je zkompilován do následujícího kódu sestavení.

C5 fe 6f 40 80 vmovdqu -0x80(%rax),%ymm0 c5 ed fe f3 vpaddd %ymm3,%ymm2,%ymm6 c5 e5 ef db vpxor %ymm3,%ymm3,%ymm3 c5%d5 76 ed %ymm5 76 ed %ymm5 ymm5,%ymm5 c4 e2 55 90 3c a0 vpgatherdd %ymm5,(%rax,%ymm4,4),%ymm7

Jedna operace shromažďování je výrazně rychlejší než sekvence stahování, ale to má smysl pouze v případě, že jsou data již v mezipaměti. V opačném případě budou muset být data načtena z paměti, což vyžaduje stovky nebo tisíce cyklů CPU. Pokud jsou data v mezipaměti, je možné 10x zrychlení
(tj. 1000 %). Pokud data nejsou v mezipaměti, je zrychlení pouze 5%.

Při používání technik, jako jsou tyto, je důležité analyzovat aplikaci, abyste identifikovali úzká místa a pochopili, zda aplikace netráví příliš mnoho času kopírováním nebo shromažďováním dat. Můžete použít .

Další užitečnou funkcí pro NFV v Intel AVX2 a dalších SIMD operacích je bitová a logické operace. Používají se k urychlení nestandardního šifrovacího kódu a kontrola bitů je vhodná pro vývojáře ASN.1 a často se používá pro data v telekomunikacích. Intel AVX2 lze použít pro rychlejší porovnávání řetězců pomocí pokročilých algoritmů, jako je MPSSEF.

Rozšíření Intel AVX2 fungují dobře virtuální stroje. Výkon je stejný a nedochází k chybným výstupům virtuálního stroje.

Použití Intel TSX pro vyšší škálovatelnost

Jeden z problémů paralelní programy je zabránit kolizím dat, ke kterým může dojít, když se několik vláken pokouší použít stejnou datovou položku a alespoň jedno vlákno se pokouší data změnit. Aby se předešlo nepředvídatelným výsledkům frekvence, používá se zamykání: první vlákno používající datovou položku ji zablokuje před ostatními vlákny, dokud není jeho práce dokončena. Tento přístup však nemusí být účinný, pokud existují časté konkurenční zámky nebo pokud zámky ovládají větší oblast paměti, než je skutečně potřeba.

Poskytuje rozšíření Intel Transactional Synchronization Extensions (TSX). instrukce procesoru obejít zámky během transakcí v hardwarové paměti. To pomáhá dosáhnout vyšší škálovatelnosti. Funguje to tak, že když program vstoupí do sekce, která používá Intel TSX k ochraně paměťových míst, zaznamenají se všechny pokusy o přístup do paměti a na konci chráněné relace jsou buď automaticky potvrzeny, nebo automaticky vráceny zpět. Vrácení zpět se provede, pokud při provádění z jiného vlákna došlo ke konfliktu přístupu k paměti, který by mohl způsobit spor (například zápis do umístění, ze kterého jiná transakce čte data). K vrácení může dojít také v případě, že záznam o přístupu do paměti bude příliš velký pro implementaci Intel TSX, pokud dojde k I/O instrukci nebo systémovému volání, nebo pokud dojde k výjimkám nebo dojde k vypnutí virtuálních strojů. I/O volání jsou vrácena zpět, když je nelze spekulativně provést kvůli vnějšímu rušení. Systémové volání je velmi složitá operace, která upravuje zazvonění a popisovače paměti a je velmi obtížné ji vrátit zpět.

Běžným případem použití Intel TSX je řízení přístupu v hashovací tabulce. Zámek tabulky mezipaměti se obvykle používá k zaručení přístupu k tabulce mezipaměti, ale to zvyšuje latenci pro vlákna soutěžící o přístup. Uzamčení je často příliš hrubé: celá tabulka je uzamčena, i když je extrémně vzácné, aby se vlákna pokusila o přístup ke stejným prvkům. Jak se počet jader (a vláken) zvyšuje, hrubé zamykání brání škálovatelnosti.

Jak je znázorněno na obrázku níže, hrubé zamykání může způsobit, že jedno vlákno bude čekat, až jiné vlákno uvolní hašovací tabulku, i když tato vlákna používají různé prvky. Použití Intel TSX umožňuje fungování obou vláken, jejich výsledky jsou zaznamenány po úspěšném dosažení konce transakce. Hardware za běhu detekuje konflikty a ruší problematické transakce. Při použití Intel TSX nemusí vlákno 2 čekat, obě vlákna se spustí mnohem dříve. Zamykání na hashovacích tabulkách je převedeno na jemně vyladěné zamykání, což vede ke zlepšení výkonu. Intel TSX podporuje přesnost sledování sporů na úrovni jednoho řádku mezipaměti (64 bajtů).

Intel TSX používá dvě programovací rozhraní k určení částí kódu pro provádění transakcí.

  • Hardware Lock Bypass (HLE) je zpětně kompatibilní a lze jej snadno použít ke zlepšení škálovatelnosti bez zásadních změn v knihovně zámků. HLE má nyní předpony pro blokované instrukce. Předpona instrukce HLE signalizuje hardwaru, aby monitoroval stav zámku, aniž by jej získal. Ve výše uvedeném příkladu provedení popsaných kroků zajistí, že přístup k jiným záznamům hashovací tabulky již nebude mít za následek uzamčení, pokud nedojde ke konfliktnímu přístupu pro zápis k hodnotě uložené v hashovací tabulce. V důsledku toho bude přístup paralelizován, takže se zvýší škálovatelnost napříč všemi čtyřmi vlákny.
  • Rozhraní RTM obsahuje explicitní instrukce ke spuštění (XBEGIN), potvrzení (XEND), zrušení (XABORT) a testování stavu (XTEST) transakcí. Tyto pokyny poskytují zamykacím knihovnám flexibilnější způsob implementace obcházení zámku. Rozhraní RTM umožňuje knihovnám používat flexibilní algoritmy pro zrušení transakcí. Tuto funkci lze použít ke zlepšení výkonu Intel TSX pomocí optimistického restartu transakcí, vrácení transakcí a dalších pokročilých technik. Pomocí instrukce CPUID se knihovna může vrátit ke starší implementaci zámků bez RTM se zachováním zpětně kompatibilní s kódem uživatelské úrovně.
  • Pro více informací o HLE a RTM doporučuji prostudovat si následující články Intel Developer Zone.

Stejně jako při optimalizaci synchronizačních primitiv pomocí HLE nebo RTM mohou funkce datového plánu NFV těžit z Intel TSX při použití sady Data Plane Development Kit (DPDK).

Při použití Intel TSX není hlavní výzvou implementace těchto rozšíření, ale vyhodnocení a stanovení jejich výkonu. Existují čítače výkonu, které lze použít v perf programech Linux* a k měření úspěšnosti provádění Intel TSX (počet provedených smyček a počet přerušených smyček).

Intel TSX by měl být používán s opatrností a pečlivě testován v aplikacích NFV, protože I/O operace v oblasti chráněné Intel TSX vždy zahrnují vrácení zpět a mnoho funkcí NFV využívá mnoho I/O operací. V aplikacích NFV by se mělo zabránit souběžnému zamykání. Pokud jsou zámky nezbytné, pak algoritmy pro obcházení zámku pomohou zlepšit škálovatelnost.

O autorovi

Alexander Komarov pracuje jako inženýr vývoje aplikací ve skupině Software and Services Group společnosti Intel Corporation. Během posledních 10 let byla hlavní Alexanderovou prací optimalizace kódu pro dosažení nejvyššího výkonu na stávajících i budoucích serverových platformách Intel. Tato práce zahrnuje použití nástrojů pro vývoj softwaru Intel, jako jsou profilery, kompilátory, knihovny, nejnovější instrukční sady, nanoarchitektura a architektonická vylepšení nejnovějších x86 procesorů a čipových sad.

Více informací

Další informace o NFV naleznete v následujících videích.




Přejděte na začátek