ARM odhalil procesory Neoverse V1 a N2. S IPC vyšším o 50 % chce porazit serverové x86

1. 5. 2021

Sdílet

 Autor: ARM, via AnandTech
ARM podle příznivců vypudí ze serverů Intel a AMD. Teď promluvil o CPU architekturách Neoverse V1 a N2, které to mají dokázat. Podívali jsme se na detaily.

Loni jsme informovali o nových architekturách procesorů ARM, kterými chce tato firma (respektive její partneři, kteří si je budou licencovat) zatlačit na Intel a AMD v serverech. ARM tehdy slíbil, že výkonnější jádro V1 má mít IPC zvýšené až o 50 % proti dnešní architektuře Neoverse N1 (Ampere Altra, Graviton2) a úspornější architektura N2 neměla být o moc horší. Podrobnosti ovšem tehdy firma neřekla a nechala nás čekat.

Až doteď, tento týden totiž byly podrobnosti obou těchto budoucích procesorových architektur prozrazené včetně detailů.

Neoverse V1: serverová verze X1, ale s SVE

ARM rozdělil své serverové architektury do tří linií – ta první, „N“, již odstartovala s architekturou N1 a je jakýmsi zlatým středem – má být výkonná, ale také úsporná. Podle ARMu by procesory s těmito jádry měly být určené hlavně pro cloudové služby a podobná použití a důraz by u nich byl na počet jader, ne tak docela na maximální výkon jednoho jádra.

Vysoký maximální výkon jádra má totiž být specialita linie „V“, která je nová a jejím prvním příslušníkem bude právě teď podrobně odhalené jádro ARM Neoverse V1. Tyto architektury budou mít vyšší IPC a jednovláknový výkon a také výkonnější SIMD jednotky. Počítá se s nimi pro procesory používané například do superpočítačů a podobných HPC nasazení. Jejich energetická efektivita a také efektivita co do velikosti na čipu bude kvůli orientaci na výkon horší (protože se odchylují od ekvilibria efektivity, které má trefovat architektonická linie N). Tyto procesory tak například mohou ve výsledku mít méně jader a tím také horší celkový mnohovláknový výkon.

Nakonec je tu ještě třetí linie, Neoverse E. To jsou méně výkonná jádra určená už spíše pro nasazení na pomezí sektoru Embedded, jako edge zařízení, NASy, síťová infrastruktura. Jejich konkurencí asi bude spíš line serverových Atomů od Intelu.

Architektura Neoverse V1

První jádro, Neoverse V1, není tudíž tak docela nástupce architektury N1, ale jde spíš o paralelní projekt, který by se v jistém smyslu dal zařadit i vedle N1 (proto stejné číslo). Ovšem vychází o poznání později a je technologicky novější. Zdá se, že vývojové kapacity ARMu by mohly aktualizovat linii N a V střídavě.

Zatímco Neoverse N1 je upravená verze mobilního jádra Cortex-A76, Neoverse V1 je generačně odvozený od novější jádra, Cortexu-X1 (což je výkonnější souputník generace Cortex-A78, věnovali jsme mu podrobnější článek). Tato architektura by měla být Cortexu-X1 hodně podobná, obě vznikaly společně ve vývojovém centru v texaském Austinu. Mimochodem, dřívější kódové označení jádra V1 bylo Zeus, pokud jste na toto jméno narazili v nějakých starších roadmapách.

Tomuto odpovídá, že Neoverse V1 ještě nemá novější architekturu/instrukční sadu ARMv9, která byla nedávno oznámená. Jde pořád o procesor s instrukční sadou generace ARMv8.4 (s některými, ale ne všemi rozšířeními z v8.5 a v8.6). Ovšem Neoverse V1 dostalo specifické v serverech užitečné úpravy, které Cortex-X1 postrádá.

Více: ARM uvádí novou generaci CPU architektury. ARMv9 má SVE, SVE2 a bezpečnostní novinky

Obsahuje například podporu pro výpočty s datovým formátem bFloat16, které jsou užitečné pro strojové učení/AI a také má například koherentní instrukční L1 cache, což u Cortexů úplně chybí (na rozdíl od spotřebitelských x86 procesorů).

Pipeline a šířka jádra

Jádro má 11stupňovou pipeline. Tedy velmi krátkou, což hodně pomáhá k vysokému IPC – například menším postihem za chybně odhadnuté větvení. Ale také to redukuje dosažitelnou frekvenci, takže se neočekává, že by V1 dosáhlo vyšších frekvencí než Neoverse N1 – typicky asi bude provozováno na maximálně dejme tomu 3,0–3,3 GHz, ale jak ještě uslyšíte, možná často i nižších.

Jádro má fetch až 8 instrukcí za cyklus, dále pak má pět dekodérů (takže lze zpracovat 5 instrukcí za takt), ve fázi přejmenování registrů lze zpracovat až osm operací za cyklus. Přímo výpočetní část má čtyři ALU a k tomu dvě vyhrazené jednotky jen pro zpracování větvení. Load/Store jednotky (AGU) jsou tři a jádro podporuje až tři čtení za cyklus, zápisy jsou podporované maximálně dva za cyklus – celkově čtení a zápisy pak tři.

Pro srovnání: AMD Zen 3 má také čtyři ALU a tři AGU, ale jen jednu vyhrazenou jednotku pro větvení. Zajímavé je, že Neoverse V1 má také stejně jako u Zenu 3 hluboký Reorder Buffer, tedy frontu sloužící pro přehazování instrukcí při out-of-order vyokonávání, 256 instrukcí, což je téměř dvonásobek proti Neoverse N1 (oproti tomu Sunny Cove/Willow Cove od Intelu má 352 a Apple Firestorm zřejmě okolo 600). Zen 3 ale používá větší MicroOp Cache, má 4000 instrukcí, kdežto Neoverse V1 jen asi 3000 (je to však víc než u Willow Cove, jenž používá jen 2250). Z MicroOp cache může proudit až osm dekódovaných instrukcí za takt.

Neoverse V1 by mělo používat větší L1 cache, 64KB pro data a 64KB pro instrukce (N1 mělo 2×32KB, totéž Zen 3, Sunny Cove má 48+32 KB). To by mělo pomáhat IPC. L2 cache bude 1MB s latencí jen 10 cyklů (Zen 2/3 mají latenci 12 cyklů při jen 512KB kapacitě). Proti Neoverse N1 se také zvětšil L2 Branch Target Buffer (8K položek) a L0 „nano“ Branch Target Buffer, který má jen 96 položek, ale je přístupný bez latence. Neoverse V1 má mít až 10× účinnější predikce větvení a o 50% redukuje situace, kdy se frontend musí kvůli větvení zastavit.

Podle ARMu má jádro také vylepšený dynamický prefetching, který by měl snížit spotřebu datové propustnosti mezi L2 cachemi jader a celkovým propojením v procesoru, což by mělo být velmi důležité pro velké serverové procesory s třeba až 128 jádry a Neoverse N1 v tomto asi ještě nebylo úplně vyzrálé. Také by měla být vylepšena politika rozhodující o tom, které staré položky budou při načítání nových dat do cache odstraněny.

FPU: SVE, ale jen 2×256 bitů

Velká změna je v FPU a vektorové jednotce. Neoverse V1 totiž poprvé podporuje instrukce SVE. Není zmíněno, zda i SVE2, takže zřejmě jen SVE, které je hlavně pro floating-point operace relevantní pro sektor HPC (zatímco SVE2 s celočíselnými operacemi užitečnými pro multimédia přijde později).

Toto jádro je tedy úplně první od ARMu, které tyto vektorové instrukce s flexibilní šířkou vektoru implementuje. Výhoda SVE má být, že programátorům stačí napsat kód jen jednou a ten pak bude fungovat na procesorech s různou šířkou vektorových jednotek, zatímco u AVX-512 například je nutné napsat nový kód a staré programy používající 256bitové AVX2 větší šířku automaticky nevyužijí. Více jsme o SVE psali zde.

Po stránce programování a softwaru je tedy Neoverse V1 velký pokrok, až by se dalo říct revoluce (pokud byste pracovali na kódu využívajícím SIMD). Nicméně pokud se budeme bavit čistě o výkonu a výpočetních schopnostech, pak V1 pořád nemá zas tak vysoký vektorový výkon, anebo aspoň ne ve všech ohledech. FPU část zvládne za jeden cyklus dvě 256bitové operace SVE. Je pravda, že třeba floating-point operace FMA umí třeba ten Zen 3 také jen dvě 256bitové za cyklus, stejně jako Neoverse V1 (Intel s AVX-512 dokáže 2×512 bitové FMA). Jenž Zen 3 nebo Zen 2 a umí některé jednodušší operace udělat za cyklus až čtyři, takže u takových je výpočetní kapacita Neoverse V1 proti nim jen poloviční (a proti 512bitovým Intelům čtvrtinová).

Alternativně procesor umí zpracovat čtyři 128bitovové vektorové instrukce Neon, což je jako u Zenu 1 a také stejné jako u Cortexu-X1. Toto dosavadní vektorové rozlišení ARMu tedy na jádru V1 pořád je schopné produkovat podobnou propustnost výpočtů jako SVE. Load/store subsystém při vykonávání 256bitových operací SVE podporuje čtení 2×32B za cyklus a zápis 32B za cyklus (ale s použitím dvou 16B pipeline).

Podpora SVE u Cortexu-X1 chybí a bylo to i trošku kritizováno. Důvod, proč X1 zůstal před branou. Když příbuzná architektura V1 podporu má, je ale asi praktický. Toto jádro se používá v klastru s jádry Cortex-A78 a také malými jádry A55. Ty instrukce SVE neumí, a tedy by vznikly problémy s kompatibilitou, kdy by operační systém musel nějak hlídat, aby se kód s operacemi SVE spustil jen na správném jádru. Serverové procesory nebudou hybridní a když budou všechna jádra umět SVE, tento problém nenastane. Jde o obdobnou potíž, jakou řeší Intel u svých hybridních big.LITTLE procesorů LakefieldAlder Lake, u nichž muselo být u velkého jádra vypnuto rozšíření AVX/AVX2 a/nebo AVX-512.

Posílení IPC o 50 % (proti starší generaci N1)

Díky tomuto rozšířenému a posílenému jádru má být IPC jádra Neoverse V1 (tedy výkon na 1 MHz) být až o 50 % lepší než u Neoverse N1 (což není až tak překvapivé, když se v něm kumulují přínosy dvou generací – A77 a A78/X1). Frekvence se patrně nezvýší, pokud budou obě jádra na stejném procesu (pokud by se přešlo ze 7nm na 5nm proces, už zlepšení může nastat). Ale pokud procesory budou mít takty aspoň zachované na stejné úrovni, měl by výkon v jednom vlákně poskočit nahoru, přičemž právě toto byla slabina N1.

Na stejném procesu by jádro V1 prý mělo mít o 70 % větší plochu než Neoverse N1. To při 50% zvýšení IPC demonstruje, jak jádro V2 přináší větší oběti za účelem výkonu proti „vybalancovanému“ N1.

ARM potvrzuje, že energetická efektivita je proto horší (výkon narostl méně, než narostla spotřeba). Neoverse V1 má v lepších případech (asi třeba když pomůže masivně vyšší SIMD výkon) mít přinejlepším stejnou energetickou efektivitu, ale jinde může být energetická efektivita až o 30 % horší (firma uvádí, že efektivita je 0,7× a až 1,0×).

Jádro evropských HPC procesorů Rhea

Jak už bylo řečeno, ARM tuto architekturu nesměřuje až tolik do běžných serverových procesorů třeba pro cloud a další mainstreamové úlohy, ale hlavně do HPC sektoru, představa je tedy, že tyto procesory by poháněly superpočítače. Jedním z takových projektů jsou procesory SiPearl Rhea, určené pro evropské superpočítače, což je projekt usilující o posílení technologické nezávislosti EU (European Processor Initiative). Rhea má mít 72 jader Neoverse V1, paměti DDR5 a také HBM2e jako cache.

Schéma procesoru SiPearl Rhea AnandTech Schéma procesoru SiPearl Rhea (Zdroj: AnandTech)

ARM jako příkladovou konfigurace prezentuje referenční design procesoru 96 s jádry V1, který by běžel na taktu 2,7 GHz, pokud by se vyrobil na 5nm procesu. Toto je ale jen hypotetická konfigurace, nevíme, zda někdo podobné CPU navrhne a vyrobí. Vedle evropského projektu SiPearl jsou dalšími licencujícími firmami ETRI a MEITY/C-DAC, což jsou zase korejské a indické podniky se stejným zaměřením na domácí superpočítačové procesory. U jiných uživatelích se zatím neví. Pokud by zůstalo jen u těchto národních HPC iniciativ, tak by se asi procesory s jádry Neoverse V1 prakticky vůbec neobjevily na volném trhu a jednotlivec by asi neměl možnost si nějaký takový hardware pořídit.

Článek pokračuje na další straně.

Galerie: Procesorová architektura ARM Neoverse V1

Neoverse N2 (Perseus): next-gen

Tolik tedy k jádru V1. Vedle něj teď paralelně ARM představil i architekturu Neoverse N2, která, jak už bylo zmíněno, má jiné určení a je tak trošku paralelní linií, určenou hlavně pro cloud. Důležité je, že Neoverse N2 přijde na trh nejspíše později než architektura Neoverse V1 a díky tomu bude o trošku novější, bude tedy už technologicky dále než HPC větev V1. Dřívější kódové označení bylo Perseus.

Zatímco V1 je odvozeno od dnešních Cortexů-X1, jádro Neoverse N2 bude založeno na budoucím jádru Cortex, které ještě nebylo oznámeno (ale asi bude oznámeno ještě toto jaro/léto, snad by to mohl být Cortex-A79, pokud se nezmění značení). Díky tomuto už bude Neoverse N2 podporovat novou generaci instrukční sady, tedy ARMv9 – jako první jádro ARMu. Ale protože příbuzný Cortex teprv čeká na odhalení, ARM zatím nepopsal přímo podrobnosti tohoto odvozeného jádra, nemáme tedy takové detaily, které byly sděleny k Neoverse V1.

Na rozdíl od zástupců linie V bude procesor opět laděný spíš na maximální efektivitu, než na maximální výkon. Také to obnáší ohled na malou plochu jádra, aby se jich na čip dalo naměstnat víc.

Neoverse N2 bude v porovnání s Neoverse N1 obsahovat tak architektonická zlepšení z Neoverse V1, která plynou z jeho novější technologie, jako jsou vylepšení predikce větvení, prefetchingu nebo politiky nahrazování dat v cache. A k tomu další, které přinese následující generace. Ale nebude mít patrně tak široké jádro, protože nebude mít ty změny charakteristické pro jádra X1/V1, které jsou zaměřené na zvýšení výkonu na úkor efektivity.

U N2 by měla být proti V1 menší například kapacita MicroOp cache (jen 1500 položek), méně hluboký Reorder Buffer (údajně „160+“ instrukcí) a měla by se zmenšit „šířka“ některých fází pipeline co do počtu instrukcí zpracovatelných za cyklus. Víme například, že Dispatch má být 5 instrukcí za cyklus. Pipeline ale bude mít stejný počet stupňů. Naopak frontend by asi mohl být zachovaný podobně silný jako u jádra V1.

SVE2

Kromě kompatibility s ARMv9 také tento procesor bude již podporovat i instrukce SVE 2 vedle již zmíněných SVE. Dokončí se tedy přechod na SIMD rozšíření s flexibilní šířkou. Protože je ale jádro Neoverse N1 zaměřené spíše na cloud a ne na HPC výpočty, bude mít snížený výkon SIMD. Podpora SVE a SVE 2 bude realizovaná jen 128bitovými jednotkami, které budou dvě. Celková propustnost výpočtů SVE(2) nebo Neon tedy bude jen poloviční. Patrně také bude poloviční datová šířka Load-store pipeline, což by dávalo smysl vzhledem k poloviční propustnosti SIMD výpočtů.

Ze slajdů vyplývá, že jádro bude mít relativně velké (stejné jako u jádra V1) L1 cache, 64KB pro data a 64 KB pro instrukce. L2 cache bude moci být buď 512KB, nebo 1MB.

+40 % IPC u „balanced“ architektury

Celkově má jádro podle ARMu mít až o 40 % lepší IPC než dnešní Neoverse N1 (zatímco jádro V1 má mít 50% nárůst). Frekvence by prý mohla být asi o 10 % lepší proti Neoverse N1 (to dosahuje od hodnot pod 3 GHz až pod hodnoty lehce nad, tedy dejme tomu těch 3,0 až 3,3 GHz, ARM uvádí pro N1 rozsah frekvencí jen 2,6 až 3,1 GHz). Jenže ono 10% zlepšení předpokládá benefity z přechodu na 5nm proces.

ARM také tvrdí, že 5nm jádro Neoverse N2 bude mít zhruba stejnou plochu a spotřebu, jako mělo Neoverse N1 na 7 nm. Na stejném procesu by ale jádro bylo o 30 % větší a mělo asi o 45 % horší spotřebu, což odráží jeho zvýšenou komplexitu a výkon. Na stejném procesu by mělo jádro N2 na druhou stranu být asi o 25 % menší, než výkonnější architektura V1.

Procesory Neoverse N2 by podle ARMu typicky mohly mít díky menší ploše (než má V1) mít až 128 jader, takže by mohly dosahovat vyššího mnohovláknového výkonu v řadě úloh.

Galerie: Procesorová architektura ARM Neoverse N2

Nové mesh propojení podporuje teoreticky až 256jádrová CPU

S jádry N2 a V1 firma ARM také oznámila novou technologii propojovací logiky CMN-700. Ta je typu mesh (tedy tatáž, jako teď používají Xeony od Intelu) a slouží k propojení jednotlivých jader. Dosavadní logika CMN-600 používaná v procesorech Neoverse N1 podporovala 64 jader a 128 MB L3 cache.

Nová CMN-700 umožňuje mít až 256 jader v jednom procesoru a v 2S sestavě tedy 512 jader. L3 cache v procesoru může mít až 512 MB. Reálně navržené procesory výrobců jako je Amazon nebo Ampere Altra samozřejmě mohou mít méně jader a zejména L3 cache (třeba Graviton2 měl jen 32 MB).

Galerie: Propojovací logika ARM CMN-700

Článek pokračuje na další straně.

ARM se srovnává se dnešními CPU…

Mimochodem, údaje o výkonu (IPC) jsou založené asi mimo jiné na benchmarcích SPEC. V galerii níže můžete vidět odhady výkonu podle ARMu v jednotlivých subsetech SPEC CPU 2017, ale také další projekce výkonu a benchmarků.

ARM ve svých slajdech slibuje, že výkon na jedno vlákno bude vyšší než na procesorech x86. Jenže to porovnává jedno jádro Neoverse proti jednomu ze dvou SMT vláken procesorů Epyc nebo Xeon v situaci, kdy jsou obě zatížena a dělí se o prostředky jádra.

A také jde o srovnání s dnešními procesory. Pod označením „Traditional 2020“ s 24 a 64 jádry se patrně skrývá Intel Xeon Cascade Lake-SP (24 jader) a AMD Epyc Rome. „Traditional 2021“ s 40 jádry je serverové Ice Lake a položka s 64 jádry pak Epyc Milan. ARM ale používá projekce, ne reálné testy, takže to berete s rezervou.

Tato srovnání jinak předpokládají 96jádrový 5nm procesor ARM Neoverse V1 na 2,7 GHz a 128jádrový Neoverse N2 na 3,0 GHz. Ovšem v době, kdy taková CPU budou na trhu, už patrně konkurence také může mít 5nm CPU s vyššími počty jader a vyšším výkonem…

… ale konkurovat už asi bude procesorům z roku 2022

Podobná srovnání pro ARM vždycky vypadají docela dobře, ale je třeba dávat pozor na to, že firma typicky představuje architektury, které v reálném produktu budou třeba až za rok, nebo v tomto případě možná i později. A právě tak to začíná vypadat. I technologicky o něco starší jádro Neoverse V1 se v reálu zřejmě objeví až v roce 2022. Bude tedy již konkurovat serverovým procesorům Xeon Sapphire Rapids a AMD Epyc „Genoa“, což bude 5nm 96jádro.

Architektura Neoverse N1 by mohla být ještě o trošku vzdálenější, vzhledem k tomu, že je založená na Cortexu, který ARM teprve teď odhalí. Reálná serverová CPU s těmito jádry bychom čekali přinejlepším v druhé polovině roku 2022. Ale je celkem dobře možné, že v prraxi se na trh dostanou až v roce 2023, tedy po jim konkurující nové generaci procesorů x86. Často ventilované názory či výkřiky, že ARM tradičním výrobcům x86 procesorů utíká a ukazuje se, že x86 je již jen „legacy“, je tedy třeba brát s rezervou.

Nicméně to neznamená, že Neoverse N2 nebude v cloudu konkurenceschopným řešením, to zřejmě ano. Pravděpodobně ale nebude ničím, proti čemu by x86 procesory Intelu a AMD vypadaly zastarale.

Dlužno dodat, že v současnosti je největším uživatelem Amazon ve svém cloudu AWS. Hyperscale firmy jako Amazon mohou architekturu ARM ovšem zvolit ne kvůli výkonnosti nebo efektivitě, ale hlavně proto, že si tyto procesory mohou nechat vyrobit sami a tím ušetřit, jelikož nebudou muset platit marži AMD nebo Intelu. Toto nakonec může být i převládající faktor v rozšiřování serverových ARMů....

Zdroje: AnandTech, WikiChip Fuse