10nm procesor Intelu otestován. Architektura Cannon Lake má o několik procent lepší IPC

25. 10. 2018

Sdílet

 Autor: Redakce

Před několika dny jsme tu měli informaci o tom, že se AMD (údajně) podařilo zvýšit IPC – tedy výkon při určité frekvenci – připravovaného CPU jádra Zen 2 asi o 13 % proti Zenu jedna. To by mohlo výkon posunout před CPU Intel s jádry Skylake/Coffee Lake, takže fanoušci určitě zajásali. Ale nebude to zas tak jednoduché. Zdá se, že i Intel má v rukávu nějaká esa a jeho budoucí jádro Ice Lake by také mohlo překvapit. Ve stínů recenzí nových osmijader Coffee Lake Refresh se totiž na webu objevil také první test procesoru Cannon Lake. A z toho vyplývá, že ač je Cannon Lake na první pohled pouze „dieshrink“ na 10nm, ve skutečnosti toho ukrývá víc. Intel v tomto jádře provedl značné architektonické změny, které měřitelně zlepšují IPC o pár procent. A pokud se takové zlepšení dostalo už do Cannon Lake, o to víc by mohly výkon při stejném taktu zlepšit procesory Ice Lake.  

Pohled na výkon 10nm architektury Cannon Lake

Ona recenze představuje procesor Core i3-8121U a jeho prostřednictvím celou architekturu Cannon Lake (jiné modely se z této rodiny na trh nedostaly a i tento byl spíš pro formu). Nepřinesl ji však nějaký hardwarový web, byla publikována na Redditu. Publikována byla tak trochu anonymně, takže ji pro jistotu berte s rezervou. Podle našich informací ji zdá se vytvořil konkrétní vývojář softwaru, který si iniciativně koupil pro potřeby testování softwaru minipočítač NUC NUC8i3CYSM „Crimson Canyon“ s tímto CPU. Jeho test je zajímavý právě tím, že se zaměřuje na změny jádra Cannon Lake proti jádru Skylake a na to, jak se zlepšil jeho výkon (IPC). Bohužel byl text mezitím smazán, z ne úplně jasných důvodů. Ale jak se říká, co je jednou internetu...

Core i3-8121U bylo srovnáno s procesorem i7-6500U generace Skylake, který běží na taktech 2,5–3,1 GHz, zatímco i3-8121U na 2,2–3,2 GHz. Výsledky by ale měly být přepočítány na stejnou frekvenci, aby se dalo porovnat IPC. Procesory měly zvýšený limit spotřeby nebo snížené napětí, aby běžely na svých maximálních turbech (pro dvě jádra 3,0 u Skylake a 3,1 GHz u Cannon Lake). Obě platformy ale používají různé paměti. Skylake je spárováno s LPDDR3-1866 a Cannon Lake s LPDDR4-2400. Cannon Lake má tím pádem vyšší propustnost, ale dle měření také asi o 10% horší latence, což se ještě projeví.

Paměťová propustnost a latence podle testu AIDA64 (Zdroj: Reddit) Paměťová propustnost a latence Skylake s LPDDR3-1866 a Cannon Lake s LPDDR4-2400 podle testu AIDA64 (Zdroj: Reddit)

Překvapivě dobré IPC

Při porovnání v reálných programech recenzent za těchto okolností zjistil, že Cannon Lake má asi o 3,7 % lepší IPC v testu Cinebench R15 MT (skóre byla 308 a 330 bodů pro i3-8121U). Což není špatný start, ale o dost zajímavěji to ale vypadá v enkódování videa. V x264 vykazuje Cannon Lake údajně o 6,5 % vyšší IPC než Skylake, což je s nastavením --crf 18 --preset veryslow a videem Park Joy v rozlišení 1080p jako vstupem. Podobně dopadlo x265 (--crf 18 --preset veryslow s 10bitovou hloubkou), kde Cannon Lake ukazuje o 5,8 % vyšší IPC. U x265 ale bylo rozlišení vstupu už 4K a konvertovalo se jen 50 snímků kvůli značné pomalosti nastavení veryslow. Je otázka, zda zde trochu nepomohla vyšší propustnost pamětí, ale enkódování by mělo být více limitované hrubým výkonem CPU než RAM a Cinebench taktéž.

Zlepšení IPC s jádrem Cannon Lake u x265 a x264 (Zdroj: Reddit) Zlepšení IPC s jádrem Cannon Lake u x265 a x264 (Zdroj: Reddit)

Poněkud rozporuplnější obrázek maluje sada benchmarků SPEC CPU2017. Při jejich spuštění totiž NUC s Core i3-8121U vykazoval nižší výkon při stejném taktu. V průměru o 2,7 %. Důvodem by ale zřejmě mělo být, že tyto testy, byť jsou založené na reálném kódu, značně závisí na paměťovém subsystému a zřejmě se u nich projevuje hlavně ona horší latence pamětí LPDDR4, kterými byl i3-8121U osazen. Zlepšení IPC je ve SPEC vidět jen na dvou subtestech, z čehož jeden je x264. Ovšem ten má zase deaktivované optimalizace SIMD, což je nerealistické použití a mění charakter této zátěže.

I SPEC CPU2017 ovšem už také ukazuje zvýšená IPC, pokud se na každém jádru CPU spustí dvě instance. HT (Hyper Threading) totiž tím, že zároveň zpracovává dvě vlákna umožňuje „schovat“ do určité míry dopady oné latence pamětí na běžící kód. Pokud totiž jedno vlákno čeká na data z RAM, může prostoj využít druhé vlákno ke svému zrychlení, neboť má pro sebe více výpočetních prostředků. HT tak „zachrání“ část výkonu, který by se jinak ztratil.

Testování v SPEC CPU2017. Vlevo jedna instance, vpravo dvě instance, kde HT částečně maskuje vliv latence pamětí (Zdroj: Reddit) Testování v SPEC CPU2017. Vlevo jedna instance, vpravo dvě instance, kde HT částečně maskuje vliv latence pamětí (Zdroj: Reddit)

V této konfiguraci již benchmarky ukazují IPC zlepšené v různé míře – 1,9 %, někde i 3,9 %, 4,0 % a v extrémním případě 7,3 %. Některé testy sice stále ukazují propad, nicméně v jejich případě může stále jít o efekt vyšší latence pamětí. Zde bychom potřebovali oba procesory testovat s identickou RAM a ideálně ve stejné desce, což bohužel není možné. Takto s SMT v průměru SPEC CPU2017 vykazuje nárůst IPC o bídných 0,1 %. Pokud by se ale vyloučily subtesty, kde je podezření na pokles kvůli RAM, bylo by zlepšení o nějakých 2,3 %. Zde by asi bylo lepší zaměřit se více na testy závislé hlavně na hrubém výkonu, ale v testu se bohužel kromě enkodérů a Cinebench už další takové neobjevily.

NUC Crimson Canyon s 10nm procesorem Cannon Lake a samostatnou grafikou Radeon (Zdroj: WinFuture) NUC Crimson Canyon s 10nm procesorem Cannon Lake a samostatnou grafikou Radeon (Zdroj: WinFuture)

Zlepšení v architektuře Cannon Lake

Při testování tento uživatel odhalil několik vylepšení, kterými se Intel nikde nechlubí a která také mohou tvořit část onoho naměřeného zlepšení IPC. Cannon Lake má například výkonnější hardwarovou děličku pro celočíselné instrukce (IDIV). Latence dokončení výpočtu IDIV je u něj jen 10–18 cyklů podle vstupu, zatímco u Skylake mohla latence dosáhnout až 90 cyklů.

Značné zlepšení by mělo být v případě kryptografie. Intel zřejmě přidal další jednotky pro operace AES, podle recenze je údajně za jeden cyklus možné zpracovat tři až čtyři operace místo dřívější jedné u Skylake. V průměru o půl cyklu se zvýšila latence (ze čtyř cyklů na čtyři a půl), což ale za vyšší propustnost dat asi stojí. Cannon Lake také implementuje akceleraci algoritmu SHA-1 a SHA-256, která je už v Atomovém jádře Goldmont (a v Zenu od AMD). V benchmarcích používajících hardwarovou akceleraci s těmito instrukcemi tedy výkon Cannon Lake (a potažmo na něj navazujících architektur) vylétne nahoru. Mohlo by se to asi projevit třeba u Geekbench.

Takto by Core i3-8121U mělo vypadat (Zdroj: Tech Insights) Poznámka: jde o notebookový procesor, druhý čip je integrovaný jižní můstek/Platform Controller Hub Takto by Core i3-8121U mělo vypadat (Zdroj: Tech Insights) Poznámka: jde o notebookový procesor v pouzdru BGA, druhý čip je integrovaný jižní můstek/Platform Controller Hub

Kromě toho má Cannon Lake mít rychlejší ještě některé další instrukce. O něco rychleji se zpracovávají některé instrukce Gather a Scatter (a lze jich v přepočtu na jeden cyklus provést víc), 512bitové dělení a odmocnina mají o jeden cyklus nižší latenci. Permutace VPERMW také má sníženou latenci (4 místo 6 cyklů) a lze ji provést každý cyklus místo jednou za dva cykly. Kromě toho také přibyla poměrně komplikovaná instrukce VPMULTISHIFTQB pro výběr nezarovnaných bajtů z 64bitových hodnot QWord.

Různá zlepšení výkonu instrukcí v Cannon Lake. V tabulce je nejprve uvedena latence v cyklech, poté tzv. inverzí propustnost. 1,0 znamená jedna instrukce za cyklus, 2,0 jedna instrukce za dva cykly, 0,25 znamená čtyři instrukce za jeden cyklus (Zdroj: Reddit) Různá zlepšení výkonu instrukcí v Cannon Lake. V tabulce je nejprve uvedena latence v cyklech, poté tzv. inverzí propustnost. 1,0 znamená jedna instrukce za cyklus, 2,0 jedna instrukce za dva cykly, 0,25 znamená čtyři instrukce za jeden cyklus (Zdroj: Reddit)

AVX-512 by mohlo pomoci víc, než se čeká

Nejvýraznější změnou v instrukční výbavě je ale přidání instrukcí AVX-512, které sice nezvyšují IPC obecně, ale pokud je programátoři použijí, lze s nimi zvýšit výkon kódu při stejné frekvenci CPU. Cannon Lake nemá plnou formu AVX-512 jako Skylake-X. 512bitové instrukce zpracovává zejména pomocí existujících 256bitových jednotek a schází mu druhá vyhrazená jednotka FMA pro 512bitové instrukce – je tedy v tomto podobné Xeonům Silver nebo Bronze.

Přesto, že AVX-512 nemá v Cannon Lake plný výkon, dokáže zvýšit výkon proti AVX2, patrně díky tomu, že jádro je na ně připraveno vyšší propustností cache, kterou disponuje již Skylake. Podle výsledků anonymního testovače by mělo být možné v některý úlohách i s polovičním AVX-512 dosáhnout zlepšení o desítky procent (26 %–40 % v zpracování obrazu, 30 % ve výpočtech neuronových sítí). Ovšem to je řeč o asi o poněkud syntentických testech a v reálné aplikaci tolik nedostanete. Při výpočtu pí (yCruncher) by prý s jejich využitím Cannon Lake mělo například být o 12 % rychlejší.

ICTS24

Vliv AVX-512 v syntetických testech (Zdroj: Reddit) Vliv AVX-512 v syntetických testech (Zdroj: Reddit)

Měřitelný přínos má AVX-512 také v enkodérech videa x264 a x265, byť jsou v nich tyto instrukce dnes aplikované jen v omezené míře. Cannon Lake údajně při stejném taktu dosahuje se zapnutým AVX-512 o 3,3 % vyššího výkonu v x264 a o 5,0 % vyššího v x265. A pozor, to je ještě nad rámec obecného zlepšení IPC, o němž byla řeč předtím (v něm AVX-512 zahrnuto nebylo). Core i3-8121U se při výpočtech s AVX-512 nepodtaktovává oproti výpočtům v AVX2, takže tyto instrukce vedou k reálnému zrychlení enkodéru. Pokud by ale u budoucích výkonnějších verzí Ice Lake k podtaktovávání docházelo, mohlo by to bohužel tento nízkoprocentní nárůst výkonu za jeden cyklus smazat.

Vliv AVX-512 v Cannon Lake na enkodéry videa (Zdroj: Reddit) Vliv AVX-512 v Cannon Lake na enkodéry videa (Zdroj: Reddit)

Nadějné vyhlídky pro 10nm architekturu Ice Lake?

Tato zlepšení v architektuře Cannon Lake nemají momentálně příliš velký význam, protože Core i3-8121U bylo uvedeno zdá se jen symbolicky a jeho parametry nejsou jinak zajímavé. Ovšem tato zlepšení tvoří základ pro následující architekturu Intelu Ice Lake. Ta by měla přinést další větší změny, které IPC ještě zlepší (což možná naznačuje nedávný únik vzorku Ice Lake v Geekbench). Ale ty by se alespoň zčásti by měly se zlepšováky nalezenými v Cannon Lake kumulovat. Jde tedy o tak trochu ochutnávku. Proto je Cannon Lake přes svůj neblahý osud pro nás poměrně zajímavý čip. Jeho exempláře by jinak měly mít také některé weby, které také přislíbily testy. Recenze Core i3-8121U by prý měla vyjít i na AnandTechu, takže se snad obrázek brzo doplní o další informace.