Ta ISA je velký problém.
Apple Silicon nepotřebuje ani uop cache, kdežto x86 architektura by si bez toho ani neškrtla. Někde jsem četl, že ISA overhead může sežrat až 15-20% energie (jen decode) a x86 nedokáže dekódovat víc než 4 instrukce za cyklus (a i tak tam budou asi nějaké penále za nějaké instrukce).
X86 je prostě architektura s historickým balastem, který začíná stát v cestě.
Heh, x86 / IA-32 / AMD64 přežila hned několik vlastních funusů, minimálně dva ze strany mateřského Intelu. Ať už ji měla zakopat i860, RISC procesory (MIPS, Alpha, SPARC...), Itanium, ARM..., pořád i po letech naprosto dominuje jak v PC, tak v server segmentu, tak v HPC. Naopak - AMD64 pak na přelomu milénia vyřadila téměř celou RISC konkurenci z prostředí výkonných výpočtů.
U AMD64 se pokaždé podařilo nalézt cestu, jak s tím balastem pracovat tak, aby konečné produkty držely krok s konkurencí, ale zároveň přidávaly navíc zpětnou kompatibilitu + desítky let budovaný ekosystém. A to teď píšu z ARMového MacBooku Pro. Jenže stejně jakmile dojde na velký železo, máme všechno na AMD64.
A viděls někdy ten ARM64 Mac? Co se týče výdrže, tak se to s čímkoliv x86 prostě nedá srovnat.
Tak jak x86 ISA požrala některé segmenty, tak je čas pro ARM. Není absolutně problém postavit výkonný ARM64 server a všichni cloud provideři to už dělají, a vyplatí se jim to, i když si navrhnou vlastní microarchitekturu.
X86 vždycky zachránila binární kompatibilita, jenže v některých segmentech je tato kompatibilita úplně nepodstatná - třeba mobilní segment a servery, ale Apple nám ukázal, že i v desktop/laptop segmentu se dá přejít někam jinam a není to bolestné - sposta věci se přesunula na web a to co na webu není (různé speciální aplikace) tak ty už jsou nativně pro ARM64.
Co se týče X86 ISA, tak tam jde dnes už jen o AVX-512 - to je bezesporu konkurenceschopné, takže SIMD workload na x86 je ještě pořád dobrý, ale když jde o takový ten obecný workload, kde toho SIMD kódu moc není, tam taky už začíná kralovat ARM64 - ta základní ISA je prostě dost dobře navržená (kód je paradoxně většinou i trochu menší).
Levna nabidka ARMu pro koncove uzivatele byl dusledek, ne pricina.
Cloud provideri zjistili, ze nabizet ARM za stejnou cenu jako puvodni x86 nejde.. nema to ten vykon, nema to tu kompatibilitu.. museli jit s cenou dolu.
Kdy jste totiz slysel, ze by se nejaky obchodnik snizil cenu pro koncove uzivatele, jako reakci na sve snizene naklady? Ja nikdy nikde.
Opravy:
- Kompabilitu s čím přesně? Drtivá většina SW na serverech je dnes plně open source nebo postavená nad open source. Nebo vlastní kód, který jde překompilovat. 90% bude pravděpodobně JVM nebo podobné.
- Výkon: Migrovali jsme projekt běžící na cca 300 serverech, v té době z Intel na ARM Graviton 2. Výsledkem byl nižší počet serverů na stejný úkol. Apple měl při emulaci x86 na ARM vyšší výkon než nativní x86.
- Cena: Ve skutečnosti jsou výrobní a provozní náklady ještě dramaticky nižší než s Intel nebo AMD. Nižší cena motivuje více zákazníků k přesunu, snižuje náklady u cloud providera a ve výsledku mu zvýší zisk ve srovnání s původním x86 řešením. O konkurenci mezi cloud providery ani nemluvě.
U ARMového Macu mám osobně nejradši ne ISA, ale unifikovanou paměť. Na lokální QM výpočty / inferenci LLM je to strašně příjemný a je to primární důvod, proč se ho držím. Jinak AVX-512 je argumentem až zase v poslední době => do Zenu 4 chyběla rozumná implementace (u Intelu to vede k podtaktování, takže si člověk musí rozmyslet, jestli při kompilaci povolí AVX-512), fakt efektivní implementaci má až Zen 5.
Dál pak na velkým železe fakt nechci hnát SW přes překladovou vrstvu, neb nechám na zemi víc efektivity, než získám jinou ISA. A vzhledem k tomu, že tady se tahají legacy věci i z dob vyloženě dřevních, fakt hraje zpětná kompatibilita sakra roli. Vyšší efektivita, nižší spotřeba v idle a menší kód (+ subjektivně příjemnější assembler) jsou sice hezký věci, ale bohužel to nekompenzuje ty desítky let budovanej ekosystém okolo AMD64. A ne, není to snadný ani u appek, ke kterým mám zdrojáky. Tuhle se mi stalo, že jeden výpočetní nástroj jsem musel na Macu překládat a běžet pod Rosettou 2, neb měl některé subrutiny psané v assembleru (kvůli efektivitě, paradoxně) a nevyplatilo se mi to přepisovat pro ARM64, případně do jazyka vyšší úrovně.
Každopádně uvidím, jak se to teď pohne s novým clusterem Jupiter v Německu. Ten by měl bejt postavenej na ARM64, takže i SW podpora a ekosystém by se mohl zlepšit. Jako to bylo okolo ROCm se spuštěním clusteru LUMI.
I Zen4 měl dobrou implementaci, i když to byl double pumping - 2x256-bit, ale třeba i Zen4 měl jednu 512-bit shuffle jednotku, kterou dělal třeba VPERMB a další instrukce, které nedělí registr na menší části.
Zen4 totiž dokázal, že lze snížit spotřebu už jen tím, že se uleví dekodéru, a že nemá cenu hned dělat plnou implementaci tak, jak to udělal Intel (a co mu přineslo hrozné problémy a pak i opuštění AVX-512 v consumer segmentu kvůli těm nepoužitelným E jádrům).
Ale jinak souhlas. ARM64 je prostě zatraceně dobrá konkurence a podle mě už ten 15% overhead u decode, nutnost mít uop cache, atd... je to včechno zbytečná režie navíc, která pomalu ale jistě likviduje x86 architekturu.
19. 9. 2025, 20:37 editováno autorem komentáře
E jádra byla slabá dřív. V okamžiku, kdy má dnes jedno to E jádro vyšší výkon než jádro deset let starého notebookového i7 čili by na každém páru z nich mohl běžet jeden dnešní běžný kancelářský počítač ta nepoužitelnost dost mizí. Intel zrovna s tímhle dost pohnul. A to máte CPU, kde je těch jader takhle dvanáct. Coz jsou třeba pro mě tři počítače, na kterých jsem doteď normálně vyvíjel plus dvakrát výkonnější P jádra.
Problémem AVX-512 je hlavně jak ji uchladit. Ono je to dost poznat i s AVX2, že ji něco zrovna používá. Nemluvě tedy o tom, že zabírají velkou část křemíku přičemž většinu času se vůbec nepoužívají protože v běžném provozu moc není kde. AMD to svou vyšší energetickou efektivností v zátěži dává lépe ale hitparáda to taky není.
19. 9. 2025, 23:50 editováno autorem komentáře