Vlákno názorů k článku Intel možná vstoupí do ARMu. Firma s ním jedná o koupi části akcií před IPO od Jim_Keller - 1) Letošní ARM Cortex X4 má mít o...

  • 14. 6. 2023 20:09

    Jim_Keller

    1) Letošní ARM Cortex X4 má mít o 33% větší IPC než Zen 4, takže ARM brutálně předběhl cokoliv z x86.

    2) ARM umí L4 cache sdílenou i pro GPU a NPU. To taky člověk u x86 nevidí.

    3) ARM umí 144 jader na čiplet, 512 serverových jader celkem na socket.

    4) SVE2/SME2 SIMD flexibilní šířka registrů od 128-bit až po 2048-bit.... to je vyloženě revoluce na kterou x86 ani po 7 letech nemá odpověď.

    5) ARM GPU s podporou ray-tracingu. Navíc mají i NPU jednotku pro akceleraci AI už roky a roky v telefonech.

    6) Geniální instrukční sada ARM/SVE a na ní založený CPU-only superpočítač Fugaku byla schopná vydrtit superpočítač s obříma GPU od Nvidie. Masakr.

    Není divu že Intel stojí v řadě na akcie ARMu. V jeho případě je to pud sebezáchovy :-)

  • 14. 6. 2023 20:27

    Jan Olšan

    "SVE2/SME2 SIMD flexibilní šířka registrů od 128-bit až po 2048-bit.... to je vyloženě revoluce na kterou x86 ani po 7 letech nemá odpověď."

    Ježkovy zraky, vždyť je to po těch 7 letech pořád skoro vaporware - těch 2048bitů rozhodně. Je *jedna jediná* 512bitová implementace (původní autor Fujitsu, kde to má skoro roli akcelerátoru), jedna 256bitová, zbytek má 128bitů a sotva je lepší než NEON (nebo SSE* staré 15-23 let).
    Spíš si myslím, že pořád čekáme na důkaz toho, že ta flexibilní šířka opravdu byla dobrý nápad. Mimochodem - flexibilita v šířce měla být, ale pak se z nějakého důvodu stalo, že Cortex-X3+ byl omezený na jen 128bitů protože by jinak byly problémy s kompatibilitou u dalších menších jader, které mají taky jenom 128 bitů. Takže evidentně to tak jednoduché nebude.

    Mezitím AVX-512 brzo oslaví šest let na trhu v reálném křemíku. Jsou sice i 256bitové implementace, ale žádná 128bitová.

    "Geniální instrukční sada ARM/SVE a na ní založený CPU-only superpočítač Fugaku byla schopná vydrtit superpočítač s obříma GPU od Nvidie."

    To je přece hlavně o počtu nodů, o tom, kolik energie to žere... Chtělo by to srovnat blade proti bladu, rack proti racku. Fugaku porazilo jako celek superpočítač s starší generací Nvidie. Jeho kvalita je ale v interconnectu, ne v hrubém výpočetním výkonu.
    To Fujitsu se zase nějak extrémně nevymyká.

    14. 6. 2023, 20:30 editováno autorem komentáře

  • 15. 6. 2023 10:21

    Jim_Keller

    1) ARMové revoluční vektory SVE2 jsou už dva roky v mobilech (od Cortexu X2 z 2021). Tak jaký vaporware proboha? :-)
    .
    .
    2) SVE je revoluční právě v tom, že má flexibilní šířku vektoru od 128-bit až po 2048-bit. SW pro superpočítač s 2048-bit každému poběží i na low-end mobilu na little jádře které má jen 128-bit SIMD (navíc u A510 ještě může být sdílená pro dvě jádra). Poběží pomalu, ale poběží.

    Pointa je přece kompatibilita instrukční sady nezávisle na šířce SIMD. Zabránit katastrofální situaci jako na x86, kdy AVX512 je pro HPC servery OK, ale v desktopu to ani po 6 letech není standard. A hromada Intel CPU to vnitřně rozkládá na 256-bit a AMD to dělá pouze 256-bit. Takže overkill i pro žravé desktopy. Co teprve e-jádra Gracemont, ty jedou v nitřně 128-bit SIMD a AVX512 neumí vůbec. Nebo teoreticky malé jádra kdyby x86 dělalo CPU pro telefony. AVX512 je katastrofa, které se chtěl ARM vyhnout.
    .
    .

    3) Šířka 2048-bit je o budoucích CPU

    x86: SW pro 128-bit SSE ti na AVX512 rozhodně neběží 4x rychleji.
    ARM: SW pro dnešní SVE2 ti běží na 128-bit, ale v budoucnu ti stejný SW poběží 16x rychleji na CPU který bude umět 2048-bit SIMD SVE4.

    2048-bit je o kompatibilitě do budoucna na dalších třeba 50 let. Už teď ji ARM má. To je ta pravá revoluce - nezávislost na šířce SIMD a tedy to může mít úplně každý CPU od little v mobilu až po mega superpočítače. Naprosto geniální.
    .
    .
    4) CPU-only Superpočítač ARM
    Samozřejmě že udělat CPU-only nejrychlejší superpočítač na světě je úplně jednoduché, dám víc nodů a je to. Proto to x86 vůbec nedělá a dobrovolně přenechává miliardy Nvidii. To si může myslet jen blázen.

    Ve skutečnosti Nvidia těží ze stagnace x86 CPU, která díky zastaralé a neefektivní x86 instrukční sadě neumožňuje efektivně vykonávat výpočty (kdyby ano, tak by Intel a AMD prodávali CPU do telefonů, protože v mobilech jsou větší prachy než v serverech.... ale možná to dělají z dobročinosti a chtějí ARMu přenechat ty miliardy protože už sami neví co s prachama).

    Takže
    ultra-efektivní ISA .............­.............­....... ARM má
    čistě 64-bit bez starého bordelu ............ ARMv8 / v9 umí
    revoluční SVE vektory s až 2048-bit........ ARM má
    maticové instrukce .............­.............­...... ARM má (SVE)

    Vše výše vyjmenované x86 AVX512 ........... NEMÁ
    (ikdyž alespoň ty matice umí Intel AMX, ale stejně je to k ničemu, protože bez těch ostatních věcí GPU neporazí)

    Ono je za tím docela dost práce a přemýšlení ze strany ARMu.

  • 15. 6. 2023 17:41

    Jan Olšan

    No a to je ta teorie/vaporware. "Revoluční vektory". Ale jak se to osvědčilo v praxi? Tvrdit že tohle všechno bude magicky fungovat neznamená, že to pak v kompilátorech a reálném kódu zabere. Viz, EHM, Itanium.

  • 16. 6. 2023 14:34

    Jim_Keller

    1) V praxi se to osvědčilo tak že SVE2 mají už dva roky všechny nové telefony a nyní i brutálně našláplý serverový V2.

    Má dnes každej mobil SVE2? ANO .............­.......... AVX512 nemá každý CPU
    Mají malé jádra SVE2 instrukce? ANO .................. střední e-jádra AVX512 neumí
    Mají velké jádra SVE2 instrukce? ANO ................. AMD jo ale Intel jen někde
    Má ARM nulovou frangmentaci? ANO .................. x86 má brutální fragmentaci

    ARM v podstatě má nový standard 128-bit SVE2 a mají to všechna zařízení. Od little inOrder jader A520 až po serverovou V2. Co by za to ve světě x86 Intel dal, kdyby nemusel vypínat AVX512 na velkých jádrech.
    .
    .

    2) Proč myslíš že V2 degradovala z 2x 256 SVE (V1) na 4x 128-bit (V2)?
    Za tím stojí autovektorizace přes OoO. To tě nenapadlo?

    OoO engine musí umět rozpoznávat datové závislosti, aby ty nezávislé mohl poslat na ALU paralelně, tomu snad rozumíš, protože to je základ funkce OoO na ALU. A proč by to samé nemohl udělat se 128-bit SIMD vektory? Stejně jak Apple tak ARM od X1 má 4x 128-bit, takže to stejně už dávno dělá se skalárníma FPU. Tohle OoO se SIMD umí určitě i mnohem starší jádra, nejspíš od A73 která měla 2x 128-bit.

    Z toho plyne že V1 investovala tranzistory do širších 256-bit registrů, což přineslo jen komplikace, ale výkon to nezvýšilo. Jediný benefit je menší binárka a menší zátěž OoO enginu. A byla by fragmentace a nekompatibilita SW ala x86. Tedy pokud se nepoužije autovektorizační knihovny, ty to umí vykonat na všech šířkách SIMD.

    Budoucí V3 tedy může mít 8x 128-bit SVE2 a výkon bude mít dvojnásobný aniž by musela mít 1024-bit SVE2. Nemusí nutit little jádra mít taky 1024-bit. Nebo si komplikovat vývoj V3/X5.

    x86 zvyšuje délku vektorů aby Intel mohl podělat AMD a to se dalších 5 let nechytalo. Že to brzdilo vývoj celé platformy to už nikoho nezajímalo, protože tady kromě x86 nic nebylo. Ale dnes kvůli tomu vypadají jako šašci když jim ARM nastavil zrcadlo, že to lze dělat líp.

    Fujitsu s 2x 512-bit SVE vydrtil Nvidia GPU Voltu, takže s výkonem problém nebude protože tam můžou vrznou třeba 6x 512-bit a budou mít hafo výkonu. Těch 2048-bit je vyloženě něco co se použije někdy v budoucnu za 20 let. ARM ISA to prostě umí už teď protože přemýšlí dopředu a pokryje tím úplně všechny myslitelné HW konfigurace. A vše bude kompatibilní. Tohle Intel nikdy nezavede protože by tím usnadnil AMD vývoj, ale kvůli tomu chcípnou společně. On to Keller viděl když se snažil protlačit K12 jako hlavní CPU. No a když se člověk podívá na Intelovskou AMX, tak to je mimochodem 16x větší obdoba AVX512, naprostá prasárna. To nikdy na E-jádrech neuvidíš, to ti garantuju. Takže specialitka pro HPC a už předem mrtvá SIMD. Zatímco ARM klidně bude násobit matice i na little jádru protože 128-bit SVE2 to umí.
    .
    .
    .
    3) VLIW

    Jinak pročpak asi AVX512 dostal první Larrabee s InOrder Atom jádry? Že by protože nemá OoO a tedy autovektorizaci přes OoO nemůže provádět? Tedy argument s VLIW Itaniem je totálně mimo. Je to přesně naopak. Dlouhé vektory jako AVX512 jsou závislé na kompilátoru (a tedy hodí se pro hloupá InOrder nebo GPU VLIW jádra, protože tím kompilátorem nahrazuje logiku OoO) zatímco naopak moderní OoO jádra si v pohodě vystačí se 128-bit i za 10 let a přitom budou pořád brutálně zvyšovat výkon třeba s 16x 128-bit jednotkami. Ono přerovnat 16 simd instrukcí není problém když má dnešní CPU OoO okno 300 instrukcí, že jo. Jeden by řekl, že možná ani 32 nebo 64 nebude problém což už je docele sci-fi záležitost mít 64x 128-bit, to je ekvivalent 4x 2048-bit SVE2. Sežere to ovšem o 60 bajtů víc v cache, což myslím taky žádný CPU nepoloží.

    Takže ani delší vektory než 128-bit pro výkonná OoO jádra nepotřebujeme. A zároven malé vektory jsou ideálka pro ty little jádra. Prostě Win-Win.

  • 16. 6. 2023 19:33

    Jan Olšan

    No moc materiálu abych na všechno reagoval, ale širší vektor naopak udělá out-of-order zpracování instrukcí efektivnější.

    Když místo 512bitové operace (AVX-512) budete jádrem prohánět čtyři 128bitové, tak plýtváte místem v ReorderBufferu (čtyři položky zaplácnuté místo jedné), to samé u propustnosti issue, renameru... širší vektor vede k lepší energetické efektivitě, protože se zjednoduší většina fází zpracování. Také méně instrukcí zabere míň místa v instrukční cache.

    "Sežere to ovšem o 60 bajtů víc v cache, což myslím taky žádný CPU nepoloží." -- jo, to je přesně ten problém, když se to děje u mnoha instrukcí v dané funkci.

    Argument s Itaniem ale byl o něčem jiném. Byla to taková změna paradigmatu, o které se tvrdilo, že všechno zlepší a zjednoduší (jako flexibilní šířka SIMD u SVE), a pak se zjistilo, že to nefunguje, protože tu teorii v praxi nezvládnou udělat kompilátory kódu (a pak hapruje i to dynamické zpracování v procesoru).

  • 16. 6. 2023 19:40

    Jan Olšan

    Mimochodem myslím že Apple SVE/SVE2 neimplementoval, ad ta fragmentace. A vytýkat AVX-512, že má někde 256bitovou implementaci, zatímco vyzdvihovat u SVE(2) totéž jako "revoluční vektory"...

  • 17. 6. 2023 18:32

    Jim_Keller

    1) 4x 128-bit vs. 512-bit

    ROB je na >300 instrukcí:
    Vlezou se tam ty 4 instrukce místo 1?
    Navíc ROB umí více instrukcí na jednu položku, proč asi?
    .

    2) Srovnávat Itanium a SVE2 vektory je fakt nesmysl.

    VLIW = velká závislost na kompilátoru = fail
    AVX512 = velká závislost na kompilátoru = kolik CPU umí po 7 letech AVX512??? = fail
    .... já tam vidím těch podobností docela dost, hlavně v tom failu.

    .

    3) revoluční SVE2
    - může mít AVX512 délku vektoru 2048-bit ... leda ve snu ........ ARM SVE2 ano
    - můžě mít AVX512 delku vektoru 128-bit ..... nemůže ............. ARM SVE2 ano

    SVE je tak super, že jeho obdobu hodlá zkopírovat i RISC-V.
    AVX512 je tak naprd, že jej nechce zkopírovat nikdo (ani sám Intel jej do Raptoru nedal)

  • 15. 6. 2023 20:24

    Jan Olšan

    Hmmm a teď koukám, že Neoverse-V2 už zase opustila 256bitové jednotky SIMD (které měla architektura V1) a vrátila se ke 128bitovým. To je skoro jako Zen1...