Změny v pamětech cache a propojení jader. Jak se u Skylake-X zlepšil výkon na 1 MHz?

25. 6. 2017

Sdílet

 Autor: Intel

Procesorům Skylake-X, které by se v běžném prodeji měly objevit příští týden (od toho aktuálního ale již jsou otevřené předobjednávky), jsme se již věnovali, když vyšly první recenze. Tento pohled byl poněkud negativně laděn kvůli zhoršení provozních vlastností – dílem zvýšenou spotřebou, problémem je ale hlavně použití pasty pod tepelným rozvaděčem. Ovšem tyto vícejádrové procesory také používají změněnou serverovou architekturu, která může přinášet výkonnostní zlepšení proti běžnému Skylake při stejném taktu. K tomuto zlepšení tzv. „IPC“ (výkonu při konstantní frekvenci) se teď ještě vrátíme.  

Změny jádra

Pokud se odhlédne od škálování na více jader, frekvencí a chování turba, jsou tři hlavní důvody, pro které se výkon jádra z čipu Skylake-SP může lišit proti běžnému Skylake (čímž budeme mínit i Kaby Lake, který je architektonicky identický). Prvním je použití instrukcí AVX-512, které se ale zatím pokud vím moc otestovat nedá, jelikož chybí aplikace, které by pro něj měly napsánu podporu, minimálně mimo syntetické benchmarky. Nějaké optimalizace by se ale postupně měly dostat do enkodéru x265 a zřejmě také x264.

Druhým faktorem, který se naopak může promítnout prakticky všude, aniž by aplikace byly přepsány, jsou změny v cache. Intel změnil privátní L2 v jádře z kapacity 256 KB na 1 MB a naopak zmenšil L3 cache, která se z inkluzivní změnila ne exkluzivní neboli „victim“ cache (obsahuje tedy data, která vypadla z L2 cache a nezrcadlí jejich aktuální obsah). Aplikace, které se dříve nevešly do L2 a nyní ano, proto mohou zrychlit, naopak ty, které se opíraly o velkou sdílenou mezipaměť u úroveň níž, mohou utrpět. Kromě kapacity se změnily i další parametry – asociativita L2 šla díky více bankům nahoru ze čtyřcestné na 16cestnou, ale latence se mírně zhoršila (z 11 na 11–13 cyklů). Podstatně vyšší je zdá se latence L3 cache – zhoršila se z 44 cyklů na 77 cyklů.

Parametry pamětí cache u běžného Skylake/Kaby Lake a procesorů Skylake-X/Skylake-SP (Zdroj: AnandTech) Parametry pamětí cache u běžného Skylake/Kaby Lake a procesorů Skylake-X/Skylake-SP (Zdroj: AnandTech)

Mesh Interconnect

Třetí faktor je komplikovanější. Skylake-X po povrchem kompletně mění systém komunikace jader. Intel už dlouhá léta používá prstencovou sběrnici, kdy data putují po okruhu, a každé jádro či další komponenta má svou zastávku, kde se data bud přijmou, nebo pošlou o zastávku dál. Tzv. „Ringbus“ však zhoršoval latenci u Xeonů s tím, jak se zvyšoval počet jader, neboť přibývalo zastávek na prstenci; větší Xeony E5 už musely mít dva nebo tři propojené prstence.

Schéma prstencové sběrnice u procesoru Intel (zde Broadwell-EP s 10 jádry) Schéma prstencové sběrnice u procesoru Intel (zde Broadwell-EP s 10 jádry)

Skylake-SP a X proto přechází na topologii typu „Mesh“. Ta tvoří síť připomínající mřížku mezi všemi jádry/agenty. Tato koncepce by u mnohajádrových CPU měla zlepšovat latence, propustnost a energetickou efektivitu (právě proto ji už Intel používá u Xeonů Phi), i když pro malé počty jader nemusí být ideální. Při vyšším počtu ale mřížka s přepínači v každém zastavení dovoluje dosáhnout kratší cesty mezi vzdálenějšími jádry.

Schéma propojení jader v Skylake-X a Skylake-SP Schéma propojení jader a dalších elementů procesoru v Skylake-X a Skylake-SP

U Skylake-X pravděpodobně topologie Mesh pozitivně ovlivní až největší 14, 16 a 18jádrové modely, které mají vyjít v říjnu. Současné Skylake-X s maximálně deseti jádry patrně tolik profitovat nebudou. Podle testu PC Perspective se u Core i9-7900X latence mezi jádry zřejmě zvýšila proti Haswellu-E a Broadwellu-E (kde již byla vyšší než u desktopového Skylake).

Měření odezvy komunikace mezi jádry ukazuje na vyšší latenci proti Braodwellu-E (Zdroj: PC Perspective) Měření odezvy komunikace mezi jádry ukazuje na vyšší latenci proti Broadwellu-E (Zdroj: PC Perspective)

Nárůst odezvy v komunikaci mezi vlákny v jeho konkrétním testu je údajně ze zhruba 80 ns na 100 ns, což je výš, než má AMD u Ryzenů mezi jádry v jednom CCX, ale méně, než kolik je zpoždění komunikace s jádry v jiném CCX. Běžné desktopové Skylake je na tom podstatně lépe.

Snímek serverového čipu Intel Skylake-SP s 28 jádry Snímek serverového čipu Intel Skylake-SP s 28 jádry. Pravidelné uspořádání souvisí s propojením typu Mesh. Dva odlišné bloky jsou zdá se paměťové řadiče, také umístěné na uzlech v síti

Efekt na IPC

Má tedy Skylake-X při stejném taktu lepší výkon a o kolik? Ze zatím zveřejněných recenzí (kterých nebylo mnoho a příležitost nedostaly některé evropské weby dávající si práci s podrobnými testy, jako Hardware.fr) zdá se prozkoumal podrobněji přímo IPC, tedy „výkon na 1 MHz“, jen AnandTech. Vyzkoušel řadu aplikací na Core i9-7900X s jen čtyřmi jádry aktivními a vypnutým HT (což je škoda, protože nevíme, zda se nezlepšilo fungování s dvěma vlákny) proti Core i5-6600. Obojí bylo nastaveno na pevné 3 GHz bez turba, lišily se jen frekvence pamětí, nastavené na oficiálně podporované frekvence (jen 2133 MHz u i5-6600). Není úplně jasné, v jaké konfiguraci bylo i9-7900X), snad na 2400 nebo 2666 MHz DDR4.

Podle testů AnandTechu jsou přínosy IPC, dané patrně hlavně větší L2 cache, obvykle spíše omezené – v řadě případů relativně výrazné, ale spíše do 5 %. Někde ovšem Anandtech naměřil i regres, takže je vidět, že překopání cache má vedle pozitiv i negativa, asi hlavně z vyšších latencí.

Zlepšení výkonu Skylake-X proti běžným jádrům Skylake (SKL-S) v jednovláknových programech (Zdroj: AnandTech) Procentuální zlepšení výkonu Skylake-X proti běžným jádrům Skylake (SKL-S) v jednovláknových programech (Zdroj: AnandTech)

Nejlepší výsledek má AnandTech v rendereru Corona 1.3: 17,3% zlepšení výkonu při stejné frekvenci, které je ale výjimkou. Test browseru Octane a Cinebench 10 ale získaly 5,2% výkonu, další benchmark browseru Kraken 6,8 % a zajímavý je také emulátor Dolphin v5 s 5,7% zlepšením. O 4 % se zlepšil také Cinebench 15 a o 3,5 % Blender 2.78. Poměrně zajímavé jsou výsledky enkódování videa. Starší verze x264 ještě bez kódu v AVX2 (x264 HD Benchmark v3) má zlepšení o 0,9–1,4 %, ale patrně novější verze používané skrze Handbrake zaznamenávají zhoršení výkonu. Preset „LQ“ o 2,1 %, preset „HQ“ o 8,0 %, což je velký negativní ústřel. Handbrake s x265 má výkon na 1 MHz horší o 1,2 %. Tyto testy má AnandTech bohužel udělané „doma“, nejsou zdokumentované, a těžko tak říct, jaké je u nich škálování a zda je na vině snížení taktů v AVX2 nebo třeba jiný faktor (brzda může být i na vstupu, nikoliv přímo v enkódování).

Zlepšení výkonu Skylake-X proti běžným jádrům Skylake (SKL-S) v programech využívajících všechna jádra (Zdroj: AnandTech) Zlepšení výkonu Skylake-X proti běžným jádrům Skylake (SKL-S) v programech využívajících všechna jádra (Zdroj: AnandTech)

Zajímavé je, že zatímco vícevláknové verze Cinebench všechny profitují, v jednovláknovém režimu AnandTech naměřil propady a zlepšení jen u Cinebench 15. Ale i tam j enárůst horší, než ve vícevláknovém testu (2,4 % proti 4,0 %). Skylake-X a ještě více Skylake-SP jsou naštěstí předurčené pro využívání na multivláknové aplikace, takže je správně, že v těch je efekt lepší. Možné zde vidíme projev toho, že Intel vážil změny na míru pro předpokládaná určení highendových a serverových CPU.

bitcoin_skoleni

AnandTech zkoušel také nějaké testy, v kterých by měl být počet vláken proměnlivý nebo někde mezi plným vytížením a jednovláknovou úlohou. V těchto z nějakých důvodů Skylake-X nedopadlo moc dobře, průměr z nich je dokonce negativní. Nešlo nicméně o moc velkou skupinu programů, hlavně o různé PCMarky, SYSmark 2014 (-3,6 %), Aegis PhotoScan (-2,7 %) a zejména test kompilace prohlížeče Chromium. Ten hodně vyčnívá, jelikož se v něm výkon proti tejně taktovanému normálnímu Skylake propadl o 17,2 %. Mělo by údajně jít o vliv toho, že L3 cache je neinkluzivní typu „victim“, ve stejném testu má například značný propad Ryzen a naopak hodně dobré výsledky Broadwell-E a Haswell-E s velkými inkluzivními L3 cache. Tento ústřel je ale asi podobným extrémem, jako velké zrychlení Corony.

V některých programech se smíšeným charakterem zátěže šel výkon spíše dolů (Zdroj: AnandTech) V některých programech se smíšeným charakterem zátěže šel výkon spíše dolů (Zdroj: AnandTech)

Drobné zlepšení s výkyvy

Po sečtení těchto testů, pokud by se všem přikládala stejná váha, vychází pro Skylake-X IPC lepší asi o 0,5 %. Ovšem bez špatného výsledku Chromia by to vypadalo lépe – dílčí tabulky pro čistě jednovláknové a vícevláknové testy uvádějí jak můžete vidět zlepšení o 1,3 a 1,7 %. Pokud vám tedy nejde hlavně o nějakou konkrétní aplikaci, kde by rozdíl zrovna byl větší, pak asi zvýšení IPC nemá mezi oběma odrůdami Skylake velký význam. Stálo by ale asi za to, mít v této věci více testů, neboť nízký rozdíl nechává dost prostoru pro chybu měření nebo zkreslení dané výběrem testů. Také bude zajímavé vidět, zda Skylake-X nezíská větší výhodu při aktivaci HT.