Diit.cz - Novinky a informace o hardware, software a internetu

Zen 3 a SMT4: Podpora více než dvou vláken na jádro je logická

V poslední době se objevila již třetí vlna zpráv o tom, že Zen 3 by mohl nabídnout, nebo prostě nabídne, podporu SMT4 alias čtyř vláken na procesorové jádro. Podíváme se, zda a jaký smysl by to mělo…

Vyšší SMT, nebo vyšší IPC?

V první řadě nebude od věci vymýtit jeden mýtus, který se od počátku zpráv o možné podpoře SMT4 v diskuzích objevuje. Někteří uživatelé totiž na tuto informaci reagují ve stylu: „K čemu je mi víc vláken, já chci radši vyšší IPC.“ Tato reakce je ovšem ze své podstaty chybná, protože vyšší počet vláken a vyšší IPC nejsou dva protipóly, ale dva prvky, které jdou ruku v ruce v rámci zvyšování dostupného výkonu procesorové architektury.

Smysl implementace SMT4 si můžeme ilustrovat s pomocí jednoho grafu od Intelu, který se týká zvýšení IPC u generace Ice Lake (x86 jádro Sunny Cove). Pokud se autor návrhu procesoru rozhodne nějak nezanedbatelně zvýšit IPC, zpravidla to znamená zvýšení počtu ALU (aritmeticko-logické jednotky) a/nebo AGU (address generation unit, address computation unit) v rámci jednoho jádra. Přestože by zvýšení počtu ALU/AGU např. o 50 % (+související změny) ve zjednodušené teoretické rovině mělo odpovídat navýšení IPC o 50 % (občas v tomto kontextu můžeme narazit na označení „teoretické IPC“), v praxi bude nárůst IPC výrazně nižší a především výrazně odlišný aplikaci od aplikace. Pro ilustraci rozptylu reálného nárůstu IPC při zvýšení teoretického IPC si půjčíme právě zmíněný graf Intelu:

Ten nám ukazuje, že konkrétní změny, které byly v návrhu provedeny, mohou v extrémně pozitivním případě způsobit nárůst reálného IPC o 40 %, ale na druhé straně může být nárůst zcela zanedbatelný nebo až mírně negativní.

Proč: Čím je návrh jádra „širší“, tím obtížnější je zajistit optimální využití všech ALU, tím častěji může výkon narážet na nějaký další limit či limitující prvek a tím více vzniká tzv. bublin, prostojů. Ty bývají důsledkem cache miss (požadovaná data nejsou v cache), context switch (přepínání kontextu) nebo faktu, že v dané situaci nenajde OoO (out-of-order) pipeline žádné nezávislé instrukce.

Protože zvyšování teoretického IPC (navyšování počtu ALU, AGU, kapacity cache atp.) stojí tranzistory navíc a tím i plochu čipu - to znamená výrobní náklady - narážíme na problém rentability. Dříve či později se totiž architektura dostane do stavu, kdy zvyšování teoretického IPC bude mít vyšší dopad na výrobní náklady než na skutečné navýšení IPC, reálný výkonnostní přínos. Čím výš se posouvá teoretické IPC, tím více se vyplatí implementovat prvky, které pomáhají ony bubliny eliminovat.

Jedním takovým je SMT (HT), který u stávajících generací x86 procesorů umožňuje využívat dvě vlákna na procesorové jádro. Jeho přínos plus mínus stoupá s teoretickým IPC a samozřejmě záleží na konkrétní úloze. Bylo by chybné předpokládat, že pokud SMT u některých aplikací nepřinese citelnější nárůst výkonu, je zbytečný. Cílem SMT je omezení bublin, to znamená zvýšení výkonu v těch situacích, kde přes zvýšení teoretického IPC nedošlo ke zvýšení reálného IPC. Pokud se znovu podíváme na graf Intelu, lze očekávat, že by podpora vyššího počtu vláken mohla pomoci v situacích řazených v levé části grafu a naopak v situacích v pravé části grafu není zlepšení výkonu pravděpodobné - protože ty ilustrují kód, který už danou architekturu dokáže využít více méně optimálně.

SMT4, ale proč právě u Zen 3?

Pokud tedy akceptujeme, že SMT a IPC nejsou protiklady, ale vyšší SMT může být žádoucím důsledkem vyššího IPC, který pomáhá vytěžit vyšší výkon tam, kde nárůst reálného IPC extrémně zaostává za nárůstem teoretického IPC, pak už logicky vyplývá, proč se o SMT4, tedy čtyřech vláknech na jádro, hovoří právě v souvislosti se Zen 3. AMD v době uvedení Zen 2 přiznala, že původně neměl mít Zen 2 příliš vysoké ambice a mělo jít z hlediska x86 architektury spíše o převedení původního Zenu na novější výrobní proces. Nakonec však padlo rozhodnutí implementovat některé změny již v této generaci, což přineslo z hlediska uživatele nečekaný a příjemný nárůst IPC.

V rámci architektury Zen 2 ale došlo i k několika změnám, které by samy o sobě nebyly nutné, ale které by na druhé straně nutné (nebo alespoň žádoucí) byly, pokud by mělo dojít k implementaci SMT4. Jde například o unifikovaný AGU scheduler, širší load/store pipeline, zdvojnásobení micro-op cache a nebo některé změny ve správě cache.

Pokud tedy vyjdeme z tvrzení AMD, že v rámci Zen 2 došlo k implementaci některých změn, které původně měly nastat až se Zen 3, pak celkem jasně vyplývá, že cílem Zen 3 je spolu s navýšením IPC také implementace SMT4, případně (což je také možnost) připravit se na implementaci SMT4 u Zen 4. Vzhledem k tomu, že na jisté přípravy došlo již u Zen 2 a AMD šla prokazatelně směrem technologicky agresivnější roadmapy (než původně plánovala), jeví se jako pravděpodobnější implementace již se Zen 3.

Komu tím AMD prospěje?

Stejně jako teoretické zvýšení IPC nelze ve všech situacích perfektně vytěžit (a právě proto může mít SMT4 smysl), tak ani samotné SMT4 nemusí jít ve všech situacích perfektně vytěžit. Už bylo řečeno, že pokud kód konkrétní aplikace dokáže efektivně využít nárůstu IPC, pak je spíš méně pravděpodobné, že bude profitovat ještě ze SMT4. Druhou situací, kdy SMT4 nemusí přinést výraznější posun ve výkonu, jsou aplikace, které nedokážou těžit z vyššího počtu vláken.

Servery, výkonný desktop

Z toho celkem jasně vyplývá, že SMT4 bude mít primární význam v serverech, kde jsou aplikace navržené pro paralelní zpracování dat a desítky, stovky i tisíce vláken. V desktopu může být přínos nižší. To však koresponduje s informacemi, které zvěsti o implementaci SMT4 provázejí. Konkrétně, že zatímco serverové modely Zen 3 budou mít SMT4 aktivní, pro desktopové bude z většiny aktivní SMT3 (tedy tři vlákna na jádro), případně SMT2 (dvě vlákna na jádro, jak známe u současných procesorů).

AMD by tak jako vedlejší bonus implementace SMT4 získala další nástroj, jak segmentovat výkon procesorů pro různé cenové relace a různé platformy. Krom taktovacích frekvencí, počtu jader, kapacity cache, přítomnosti a výkonu GPU, výbavy co do IO rozhraní, by měla k dispozici volbu mezi čtyřmi úrovněmi podpory SMT - čtyři / tři / dvě / jedno - vlákno na jádro.

Přestože informace kolující po internetu hovořily o podpoře SMT3 spíše pro dražší a výkonnější modely (možná nějaké Ryzeny 7 a 9) a SMT2 spíše pro nižší modely (snad Ryzen 3, možná Ryzen 5), nabízí podpora SMT4 ještě mnohem širší spektrum možností. Zvlášť v mobilním nasazení.

Ultramobilní segment

V segmentu ARM procesorů se potřeba přizpůsobení různým typům zátěže řešila konceptem big.LITTLE. Pro apliakce vyžadující jedno velké výkonné jádro byl implementován obvykle nižší počet velkých a energeticky náročnějších jader a pro aplikace profitující z paralelizace zase vyšší počet malých jader běžících na nižších taktech. SoC tedy obsahoval dva typy různě koncipovaných jader, kdy většinou docházelo k využití jednoho typu nebo druhého typu, podle toho, jaká aplikace procesor zatěžovala. Novější implementace big.LITTLE umožnily využití obou typů jader paralelně, ale k takové situaci v obvyklé zátěži nedochází příliš často.

Koncept big.LITTLE je v mobilním segmentu rentabilní proto, že ARM jádra mají menší plochu, celá SoC jsou poměrně malá, nejsou vyžadovány vysoké takty, a tak pár milimetrů čtverečních navíc neznamená problém. V segmentu velkých x86 procesorů a implementace dvou typů jader to ale rentabilní není - že by při stávajících rozměrech křemíkových jader a čím dál problematičtější dostupnosti výrobních kapacit přineslo významné navýšení plochy víc problémů než užitku, je zjevné. Implementace SMT4 ale může v mobilním segmentu konceptu big.LITTLE více méně konkurovat.

Úloha, která potřebuje vysoký výkon jednoho silného jádra má se SMT4 k dispozici celé silné x86 jádro. Úloha, která je paralelizovatelná a preferuje více vláken, má k dispozici čtyři vlákna. AMD při avizování architektury Zen uváděla, že chce jít cestou jednoho jádra pro všechny segmenty. Implementace SMT4 by právě v ultramobilním segmentu při velmi nízkém počtu jader (1-2) mohla být zajímavou alternativou k big.LITTLE. Právě při 1-2 jádrech totiž i počet vláken zůstává v mezích, kterou umí většina běžných aplikací dobře využít. Samozřejmě není známo, zda AMD plánuje se Zen 3 vstoupit do ultramobilního segmentu (~5 wattů nebo méně), ale SMT4 by v případě takového rozhodnutí zlepšilo pozici oproti první a druhé generaci Zenu.

Shrnutí

SMT4 tedy není protikladem ke zvyšování IPC, ale naopak je jeho logickým doplňkem. Jeho smysluplnost roste právě s IPC. Praktická využitelnost SMT4 je nejvyšší v serverech, ale velký přínos by mohlo mít i na opačném konci - v ultramobilních systémech s minimem jader. V desktopu s 8-16 jádry bude přínos nižší a tomu odpovídají spekulace o SMT3 v tomto segmentu. AMD tím nepřímo dostane nástroj k preciznější segmentaci výkonu, může nabízet modely s jedním, dvěma, třemi i čtyřmi vlákny na jádro. SMT4 je vázané na navýšení IPC a jak úniky o vyšším IPC architektury Zen 3, tak i hardwarové změny u Zen 2, které jdou zvýšení SMT naproti, indikují, že by právě Zen 3 mohl být tou generací, u které má nasazení SMT4 smysl. Nelze ovšem vyloučit ani možnost, že k reálnému nasazení dojde o jednu generaci později.

Tagy: 

Diskuse ke článku Zen 3 a SMT4: Podpora více než dvou vláken na jádro je logická

Pondělí, 7 Říjen 2019 - 10:50 | Richie Rich | Já nehypuji, jenom očekávám od AMD že dožene...
Pondělí, 7 Říjen 2019 - 10:44 | Richie Rich | Tak mi pověz jaké CPU se v ČR vyvíjí? Je mi jasné...
Neděle, 6 Říjen 2019 - 13:38 | Tom | - rec se vyviji a lide maji tendenci si mnoho...
Neděle, 6 Říjen 2019 - 12:04 | Richie Rich | Nebuď hnidopich. Inženýři v silicon valley to...
Neděle, 6 Říjen 2019 - 11:22 | Hrdina | Chování predikovatelné, v průměrech fps spíš...
Neděle, 6 Říjen 2019 - 00:31 | Lazar | Asi jsou to zatím zbytečné obavy. Na nějaké AMD...
Sobota, 5 Říjen 2019 - 20:40 | Pjetro de | každopádne vždy platí: 2x meraj a raz rež ja by...
Sobota, 5 Říjen 2019 - 16:26 | Jon Snih | Díky. Navzdory tomu, co tady hypuje Richie Rich,...
Sobota, 5 Říjen 2019 - 11:15 | del42sa | https://pctforum.tyden.cz/viewtopic.php?f=1&t...
Sobota, 5 Říjen 2019 - 09:51 | pc2005 | MIPS s implementovaným MT ASE může mít myslím až...

Zobrazit diskusi