Skrivet av Rebben:
Det kommer du inte få med ARM, vi behöver ett helt teknikskifte för det. Jim Keller säger att ISA inte spelar någon större roll längre prestandamässigt, för det som skiljer arkitekturerna åt är en sån otroligt liten del av själva CPU'n nu för tiden. Så länge du kan hålla kärnorna matade så är det jämnt skägg.
Skillnaden mellan ARM och x86 är helt enkelt att ARM siktar på effektivitet och X86 siktar på prestanda.
https://chipsandcheese.com/p/arm-or-x86-isa-doesnt-matter
Har sett just den intervju som refereras i den artikeln ett par gånger. Dels tycker jag inte alls Keller säger "ISA är irrelevant" och i detta kontext tror jag det är rätt viktigt att ha med sig att (så vitt jag vet) har inte Keller jobbat på någon high-end ARM64-only design.
Det sista är väldigt relevant givet att det är just när man började se hur mycket bättre saker kunde prestera på samma CPU bara genom att köra ARM64 varianten jämfört med 32-bit Arm versionen.
Historiskt har vi aldrig haft en ISA som helt konsekvent är bättre än andra, Arm lyckades göra något ingen att gjort innan (och tyvärr verkar inte heller RISC-V ha lyckas med det): en nära nog "perfekt ISA" som är så mycket bättre på de kritiska punkterna att det faktiskt blir högst relevant.
En sak Keller nämner där är att en av de riktigt stora flaskhalsarna i moderna high-end CPUer är att förutsäga vad som kommer hända framåt.
En snilleblixt i just ARM64 är att göra det långt enklare för en CPU att "spekulera", man löser många fall som i andra ISA kräver hopp-instruktioner med att vissa instruktioner alltid körs men huruvida de faktiskt ger någon observerbar effekt eller ej bestäms dynamiskt. Så är alltid samma code-path, vilket gör det väsentligt enklare och effektivare att ha extremt bred mikroarkitektur.
Intel är ju inne på samma spår. Hela poängen med deras Advanced Performance Extensions (APX) är att göra förändringar av x86_64 ISA på ett sätt som
"adds various new features that improve general-purpose performance"
Om inte ISA spelade roll, hur förklarar man då detta?
7800X3D vs M4
7800X3D vs Oryon gen 2
Prestanda för kompilering brukar lyftas fram då, så här långt, har ingen lyckats bygga en CPU som enbart är bra på detta (många andra testfall i historiska SPECint/SPECfp har game:ats med speciella optimeringar). Kompilering är också helt uppgiftsparallellt, det saknar nästan helt dataparallellism så ingen har heller idag någon idé om hur en accelerator kan optimera detta (rendering, AI etc kan ju göras långt mer effektivt på CPU/NPU)
Oryon gen 2 (en icke Apple CPU för en mobil) formligen krossar 7800X3D i just kompilering
Endera kan ISA spela en högst signifikant roll, ingen hade innan ARM64 lyckats designat något som är så konsekvent mycket bättre än konkurrenterna.
Eller så är Intel/AMD numera bozos när det kommer till CPU-design, för de hänger inte alls med Apple, Qualcomm eller Arm (Cortex X925 presterar helt i nivå med Oryon gen 2 med lägre frekvens, den matchar nästan Apples M4 i "perf/MHz").