Zatím nejlepší jádro RISC-V. SiFive Performance P650 má dohnat Cortex-A77, ale bez SIMD

7
RISC V procesor SiFive FU540 1600
RISC-V procesor SiFive FU540 (Zdroj: SiFive)
-
Zdroj: SiFive

RISC-V se rychle vyvíjí, SiFive teď uvádí architekturu, slibující výkon schopný konkurovat velkým jádrům ARM Cortex. Pořád ale má slabiny, ARM ještě asi dost dlouho bude mít náskok.

Procesory s otevřenou architekturou RISC-V se zase pozvednou ve výkonu a přiblíží se architektuře ARM, které pomalu vytvářejí čím dál větší konkurenci. Lídr ve vývoji jader RISC-V SiFive teď oznámil novou architekturu SiFive Performance P650, která se prý má dostat na dostřel od dnešních velkých jader ARM, čímž by se RISC-V mohl stát náhradou ARMu prakticky ve všech oblastech CPU. Tedy aspoň podle SiFive, v praxi to bude složitější.

Je to necelý půlrok, co SiFive oznámila jádro Performance P550, s kterým spojovala trošku podobné přísliby. To však ještě mělo být protivníkem jen pro již prastarý Cortex-A75. Teď firma oznámila jeho další evoluci nazvanou SiFive Performance P650, která už vypadá jako o dost větší hrozba. Pokud firma nepábí, má už konkurovat Cortexu-A77, jenž je sám poměrně blízko dnes používanému Cortexu-A78 (pravda, ne jeho výkonnějšímu bratru Cortex-X1). ARM sice mezitím odskočil s výkonnějšími novými jádry generace ARMv9, která se brzy objeví v reálných čipech. Ale i tak to znamená, že se RISC-V dostává mnohem blíž, než z jaké dálky k nejvýkonnějším ARMům vzhlížel doteď.

Zatím nejvýkonnější RISC-V (od SiFive)

SiFive Performance S650 je out-of-order s třemi paralelními ALU, což jej řadí do štíhlejší kategorie, než je třeba AMD Zen nebo ty Cortexy-A77/A78 se čtyřmi ALU. Dekódování, issue a dispatch jsou ale stavěné na zpracování čtyř instrukcí za jeden cyklus. Pipeline procesoru má 13 stupňů, což má umožnit frekvenci až 2,7 GHz na 5nm procesu. Procesor má údajně „velký“ reorder buffer (ROB), tedy out-of-order okno pro přehazování instrukcí.

Ale reálné číslo není sděleno a asi nemusí být úplně vysoké na dnešní poměry. Nepřekvapilo by nás, kdyby počet instrukcí, který se do ROB vejde, byl stále jen dvouciferný. I ty tři ALU ostatně SiFive označuje jako „vysoký paralelismus“, i když bychom jako široká jádra asi označili spíš až návrhy se čtyřmi a více ALU).

Architektura SiFive Performance P650 schéma
Architektura SiFive Performance P650, schéma (Zdroj: SiFive, via The Register)

Velikosti cache budou konfigurovatelné, takže výrobci čipů si budou moci vybrat mezi vyšším výkonem a menším jádrem. L1 instrukční a datové cache mohou mít 32 KB až 128 KB, jejich asociativita je údajně čtyřcestná (4-way). L2 cache má osmicestnou asociativitu – některé materiály uvádějí kapacitu 256 KB, ale je možné, že je možné zvolit i větší konfiguraci.

Celé CPU pak ještě bude mít také L3 cache o kapacitě 1 MB až 16 MB dle rozhodnutí návrháře čipu, přičemž všechny úrovně používají ECC. Tato L3 cache je sdílena všemi jádry, kterých budou procesory s jádry P650 obsahovat až 16. Paměťový řadič je možné mít až se čtyřmi kanály (šířka 256 bitů).

Architektura SiFive Performance P650 SoC
Architektura SiFive Performance P650 – SoC (Zdroj: SiFive, via Heise.de)

~ 30 bodů v SPECint2006?

Jádro bude podle SiFive prý až o 40 % rychlejší při stejné frekvenci než jádro Performance P550 (což může být v nejlepších případech, ne nutně průměrné zlepšení IPC). Protože také dosahované frekvence mají být o něco vyšší, má celkový nárůst výkonu proti P550 být až o 50 %. Jádro by prý mohlo na 1 GHz frekvence dosahovat přes 11 bodů v SPECint2006. Při plánované frekvenci 2,7 GHz by to dělalo nějakých 30 bodů.

Což by bylo IPC někde nad úrovní Zenu nebo Haswellu, které ale běží na vyšších frekvencích (a stačil jim k tomu horší/starší proces). Nejlepší dnešní procesory (AMD Zen 3, Intel Alder Lake, Rocket Lake, Apple M1) mají dnes jednojádrové skóre v tomto benchmarku skóre jdoucí až k 70 bodům, takže k této špičce má ještě SiFive hodně daleko. Tyto údaje je ale třeba brát hodně orientačně.

Pořád bez SIMD

IP jader Performance P650 obsahuje už také různá kryptografická rozšíření a zajímavé je zejména, že podporují virtualizaci. Nicméně, a to je také hodně závažné, ale teď v negativním smyslu, toto jádro také přebírá hlavní slabinu jádra P550: nemá ještě vektorovou/SIMD jednotku. Instrukční sada je pořád jen RV64GBC, tj. bez SIMD rozšíření (to je značené písmenem „V“).

V tomto bodě ambice být smysluplnou konkurencí a plnohodnotnou náhradou za velká jádra ARM Cortex A77/78/710 selhávají, protože procesor bez podpory SIMD není vyhovující pro standardní PC nebo mobilní zařízení a podobná nasazení. I nasazení v serveru asi není moc reálné. Bez SIMD tak asi SiFive P650 zůstane pořád záležitostí pro embedded zařízení a použití v roli služebného jádra v různých řadičích a podobných aplikacích, kde třeba bude muset být doplněné nějakým koprocesorem nebo DSP.

Architektura SiFive Performance P650
Architektura SiFive Performance P650, vlastnosti (Zdroj: SiFive, via Phoronix)

Pokud byste si představovali, že vznikne nějaká deska typu Raspberry Pi nebo podobného typu, s níž bude moci RISC-V vyzkoušet jakýkoli uživatel, pak na SoC s jádry Performance P650 nepůjde založit ekvivalent užitečnějších pozdějších desek jako RPi 2, 3 a 4, ale jen něco jako původní RaspberryPi. To obsahovalo zastaralá jádra ARM11 (šlo ještě o předchůdce Cortexů, založeného na instrukční sadě ARMv6). Toto CPU bylo obecně hodně slabé, ale jeho největší slabinou byla právě absence SIMD instrukcí Neon, které přišly s Cortexy. Jakákoliv práce s multimédii na takovém CPU bude výrazně ztížená, přehrávání videa bude pravděpodobně odkázané na použití hardwarové akcelerace v GPU (dekódování videa bez SIMD potřebuje třeba i více jak 10× větší množství procesorového času).

Tato absence SIMD je politováníhodná, ale z pohledu firmy SiFive pochopitelná, Vektorové rozšíření „V“ totiž dlouho nebylo připravené a jeho dokončení bylo oznámeno až teď. V SiFive asi nechtěli do jádra uvádět nedokončenou instrukční sadu, protože by se mohlo po uvedení ukázat, že podpora není kompatibilní s výsledným standardem a tím s dalšími procesory. Byť jsou to ale legitimní důvody, nezmění se tím fakt, že je kvůli nim architektura Performance P650 výrazně limitovaná. Podpora SIMD je v x86 procesorech standardem přes 20 let, jakákoliv architektura aspirující na výkon a obecné použití mimo mikrořadiče a specifické úlohy by tyto operace měla nabízet. Nezbývá než doufat, že další jádra stavějící na základu P650 už budu vektorové rozšíření mít.

SiFive RISC V deska HiFive ilustrace 1600
RISC-V vývojářská deska HiFive od firmy SiFive. Obsahuje starší SoC s méně výkonným jádrem (Zdroj: SiFIve)

K reálným čipům je asi ještě daleko

Je také třeba upozornit, že SiFive patrně takto oznamuje jádra v dřívějším stádiu příprav, jeho uváděčky jsou proto více „vaporware“ než u ARMu. Ten nyní oznamuje nová jádra na jaře roku a z kraje následujícího už jsou v telefonech. SiFive říká, že jeho zákazníci budou teď slavně odhalená jádra mít k dispozici až v Q1 2022 v případě přednostních klientů, obecná dostupnost pak bude někde kolem poloviny roku 2022.

Takže nečekáme, že by tato jádra byla v reálných čipech do roka od svého nynějšího oznámení. Spíš až ke konci roku 2023, nebo možná spíš ještě později. Tudíž ona konkurenceschopnost, kterou firma prezentuje, může být trošku marketingově nadhodnocená. Protože jádro sice teď má (na papíře a když ignorujeme SIMD) na Cortex-A77, ale v době, kdy přijde na trh, už bude muset čelit nejen tomu Cortexu-A710Cortexu-X2, ale možná i jádrům o jednu či dvě generace dál.

V tomto je ekosystém RISC-V pořád méně zralý a více ve stádiu rozvíjení se. Nicméně vedle těchto slibů do budoucna je architektura čím dál více nasazována i v praxi, takže té „vaporware“ příchuti by mělo být postupně čím dál méně.

Zdroje: SiFive, HPCWire, The Register, Heise.de, Phoronix

Zatím nejlepší jádro RISC-V. SiFive Performance P650 má dohnat Cortex-A77, ale bez SIMD
Ohodnoťte tento článek!
5 (100%) 5 hlasů

7 KOMENTÁŘE

  1. Ach jo, to je zase zavadejici clanek. Rekneme, ze SiFive jde na vec podobne jako Intel s ADL, ale v opacnem smeru. SiFIve ma v performance rade jader jadro P270, ktere poskytuje vektorove rozsireni. Toto jadro je hodne malicke. (dual-issue, in-order, cili asi jako Cortex A53 nebo stare in-order Atomy). Vtip je v tom, ze je male a ze jich na danou kremikovou plochu muze SiFive naplacat hodne a navic je mozne ho kombinovat s vykonejsimy jadry. Takze zatimco P550/P650 bude plnit funkci velkeho jadra, tak P270 plni funkci maleho jadra. Narozdil od Intelu, kde avx512 jedou na velkych (resp. mohou jet!), ale ne na malych jadrech, tady vektory pojedou na tech malych a ne na tech velkych. Stejne jako u Intelu se zde jedna o zamerne zjednoduseni, tak aby OoO jadra byla mensi, levnejsi a uspornejsi. Coz prave SiFive vyzvedava ve svych marketingovych vystupech v porovnani s ARM.

    • No jestli tvrdí, že je to schválně a strategie, tak bych tomu moc nevěřil.
      To pak má stejný problém jako Alder Lake, kdy big a little mají odlišnou ISA a ve výsledku se nic, co má jen jedno z jader nedá normálně použít. V případě ALder Lake ale nepřijde člověk o všechno SIMD, ale jenom o část, i s tím „jenom“ AVX2 to zůstává hodně schopné. Kdyby se nedalo na všech jádrech použít ani AVX* nebo dokonce ani SSE*, tak to ale úplně vyhoří.

      Podle mě to není reálně schůdná cesta, protože SIMD instrukce nejsou jako akcelerace na GPGPU nebo na koprocesoru. Můžou sice mít podobnou roli, ale jsou i k tomu, aby se s nimi dala lokálně zrychlit jakákoliv funkce kdekoliv v programu nebo ovladači i OS. Třeba i memcpy/memset, parsování řetězců/XML, programátoři pro ně najdou všemožná uplatnění. A tyhle funkce nesmí mít postih v latenci z toho, že se nejdřív musí přesunout na koprocesor, GPU nebo jiné jádro a pak zpět, jinak snaha o takové zrychlení nemá smysl.

      Například chcete, aby k nim měl přístup javascript engine, webový prohlížeč, nebo jiná úloha u které chcete maximální single-thread výkon (a tedy aby běžela na velkém jádru).

      • No, jedna vec je, ze si Jan Olsan mysli, ze to neni schudna cesta. A druha vec je, ze lidi ze SiFive si mysli, ze je. Pripomenuti: na SiFive RV64 *NEJEDOU* Windows, takze namete stejne problemy jako u ADL. Ten Linux co je dneska de-facto standardem na tech masinach se da ohnout ledacjak. Treba tak, ze v ELF binaru mam zapsany extenze CPU, ktere binara potrebuje a pak uz cela aplikacka bezi na jadru, ktere ho podporuje. A nebo tak, ze bezim na OoO a kdyz vyvolam vector isn, tak to hodi vyjimku. Vezmu cely kontext procesu, narvu ho na P270, vratim se o instrukci zpet a execnu znovu. Chapejte, mam zdrojaky k cele platforme a necekam na velky byrokraticky moloch M$ kdy mi hackne scheduler aby to ADL jelo jak ma.
        Ano, souhlasim si tim, ze je to neco cemu se rika „trade off“. Mensi/mene zrava jadra OoO za prudu pri vektorech. Taky nikdo nerika, ze to tak bude naveky veku. Ted mluvime o 7nm/Intel 4, az to pujde na nizsi nody a SiFive to posune dal, pak budou vectory i na OoO.

        • To ale není problém jenom na Windows a to, že je dsitribuce softwaru ve formě zdrojáku a všechno se tedy stejně kompiluje znovu, to IMHO ten problém moc neotupuje. Uživatelé a/nebo programátoři to budou nést nelibě všude.

          IMHO by to bylo akceptovatelné v embedded (jak jsem psal v článku) a podobných aplikacích, ale tam spíš místo těch malých SIMD jader budou přidané speciální akcelerátory uzpůsobené pro ty konkrétní úlohy. Jako příklad mě napadl třeba řadič SSD….

          Je to ale názor, plést se v tom samozřejmě můžu.

          Že je to přechodné, to si myslím rozhodně také. Jak tam píšu, vektorovou jednotku to P550/P650 nemá nejspíš proto, že ji ještě nemají připravenou (a to je nejspíš kvůli stavu standardizace, ne že by jim dělalo problémy ji vyvinout). Proto to to taky nejsem ochotný vnímat jako záměrnou strategii, protože až tam ta jednotka SIMD bude, tak si všichni oddechnou a zpět se nikdo vracet chtít nebude* (zase IMHO).

          * i když možná bude nějaká verze podobného jádra bez FPU/SIMD pro potřeby té integrace do řadičů a pod.

          • To jádro zatím existuje jen v prezentacích markeťáků. Je pěkné vidět, že si troufnou ho udělat za půl roku.
            Vektory nemají čistě proto, že je zákazníci nepotřebují, jinak by tam přilepili vektorovou jednotku co už maj.

            • Tezko rict. P550 je prejmenovane U84 a P650 je prejmenovane U87. Uz na tom makaji dost dlouho, takze si nemyslim, ze je to jen v predstavach marketaku.