Hlavní navigace

Odpověď na názor

Odpovídáte na názor k článku Modlitba pro Intel: trápící se gigant a jeho radikální řez. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 9. 8. 2024 23:33

    Pavel Píša

    Ano s runtime překladem lze udělat divy. Do teď to díky extrémním zkušenostem v uncore, sběrnicích paměťových řadičích a optimalizacím v kompilátorech a obecně návrhu SW generacemi nejlepších programátorů šlo pro výkonné procesory do serverů a notebooků udržet. Naopak již před deseti lety snaha přijít znova s 80186 do těch nejmenších embedded zcela selhala na spotřebě a složitosti. To se stalo již předtím na mobilech a tabletech a dnes se to děje v oblasti notebooků (Apple M1+).

    Ale i v těch výkonných serverech drahý překlad instrukcí spotřebovává energii a zpomaluje. Pokus o velkou cache překladů na Pentium IV selhal. Překlad na ještě větším na Transmeta Crusoe také. Nelze tedy celý kritický blok programu přeložit a jet třeba z tracecache. Je nutné uvažovat i o tom, že kritická část kódu je větší. Dekódování instrukcí s bytovou granularitou od jednoho do 12 byte je katastrofa a tak Intel sice byl z malé trase cache schopný brát až šest instrukcí na cyklus, ale z hlavní L1I cache jen čtyři a i to s podporou kompilátoru, například dva skoky v zarovnaných 32-bitech jsou asi stále smrt. Není kam dát v cache metadata. Od Sunny Cove pak nabírá z L1I až pět instrukcí, ale ta logika tam musí být brutální, proti tomu M1 vezme 32 bytů a má osm instrukcí bez starostí. Takže i na méně stupňů a tím i s menší latencí při skoku mimo tarcecache atd... Přitom ARM instrukce jsou tříoperandové, je dost regsitrů, v 64-bitech 31 a pre a post inkrementy při adresování. Intel přidal APX REX2, aby tu registry získal, ale kódování je tragédie.

    Jak Intel tak RISC-V se upnuli na multimédia, kde jim SIMD pevné délky na algoritmy sedělo dobře. Ale na obecné výpočty je start a konec smyček tragédie. To lidi od RISC-V říkali rovnou a dívali se u svého V rozšíření směrem k vektorovým procesorům Seymoura Craye. ARM jim zavedením SVE dal za pravdu. Jen to zbytečné vyplýtvaní instrukčního codespace již nelze napravit. RISC-V může kombinovat Compressed (16-bit) a standard 32-bit kódování instrukcí a tím často i ty pre a post inkrementy ARMu zvládnout ve shodných 32-bitech a zároveň má již ty instrukce téměř 1:1 s uOPs za dekodérem. Přitom makra pro zkrácení některých sekvencí také zavedli, viz cm.push, cm.pop, cm.popret, cm.popretz, cm.mvsa01, cm.mva01s. Přitom jsou tyto instrukce tvrdě omezené na idempotent memory. U RAMu tím, že ldm neomezil jen na hlavní paměť, tak roky lezla i u safety procesorů errata. U AArch 64 dovolil jen páry.

    Obecně, myslím si, že stále přednáška A New Golden Age for Computer Architecture platí.

    Zároveň na AI a další to bez Domain Specific Archietcture rozšíření nejde. Takže rigidní x86 s vyčerpaným kódovým prostorem v snesitelně dlouze kódovaných instrukcích je na konci sil a již současné kódování je i na spotřebu i pro velké systémy těžko udržitelné.