Tycker detta är ännu ett exempel på hur pass bra Geekbench 6 ändå är på att svara på frågan "hur snabb är denna CPU".
Varför? Jo, kolla deltesterna. Är viss varians även mellan Intel och AMD, men den är typiskt inom ±10 % i deltester på två CPU-modeller med ungefär samma totalpoäng. Skillnader under ~20 % lär i de absolut flesta fall vara irrelevanta.
Variansen mellan t.ex. Intel och Apple där totalpoängen är den samma är i deltesterna ±35 %. Så vad som är "bäst" kräver mer kontext.
Skrivet av Mordekai:
Är ju poppis och det verkar finnas en konsensus (på Swec) kring att ARM64 är överlägset. Är det alltid per watt man menar då?
Vet inte var du hittar någon konsensus, skulle hävda att det är långt ifrån någon konsensus på denna punk.
Vad man i.o.f.s. rätt objektivt kan säga är att just perf/W och även perf/cykel är långt bättre på high-end ARM64. Den senare är så pass mycket bättre (och inte bara på "Apple Silicon" utan även på Arm Cortex X4/X925 och Qualcomm Oryon) att det även leder till högre absolut prestanda i de flesta fall, men inte alla trots ~6 GHz peakfrekvens för x86 mot ~4 GHz peakfrekvens för dagens ARM64.
Sen finns inget som fysiskt hindrar att bygga en ARM64 som når 6 GHz. Den kommer ha väsentligt sämre perf/W mot dagens ARM64, men skulle få högre absolut prestanda. Det är ett visst motsatsförhållande mellan perf/cykel och en design som klockar väldigt högt, men det kan inte alls förklara skillnaden i perf/cykel mellan t.ex. M3/Oryon och Zen4/Raptor Cove (de förra har 40-50 % bättre perf/cykel).
Det jag gissar många inte riktigt har koll på är just att i många fall är idag en ARM64 CPU-modeller den som är snabbast i absolut termer. Det känns liksom orimligt att 15-30 W modeller (beroende på vad man tar med är den snabbaste ARM64 M4 i Ipad eller M3 Max om bara datorer räknas) kan, i absoluta termer, vara snabbare än Intel/AMDs desktop-monster som dra 200-300 W.
Skrivet av Mordekai:
Hittade dessa benchmarks på en sajt som drivs av en Applefanboy ultra. Snabbaste Apple Silicon benchmark var 15% långsammare än motsvarande x86.
Fusion 360 är det mest välrenommerade CAD-programmet som finns native på både windows och MacOS med respektive ISA.
https://portlandcnc.com/blog/2023/7/apple-silicon-f360#result...
Missar jag något eller är det fortfarande Intel som är kungen av mekanisk CAD? Titta inte på renderingsdelen, den är missvisande enligt benchmarkets skapare.
Ser väl rätt väntat ut, eller?
När man ställer ARM64 mot x86_64 skiljer det rätt mycket i relativ prestanda beroende på vad man testar. Tar vi GB6 som testar ett 20-tal olika fall är det just de som primärt jobbar med 3D-grafik med CPUn där x86_64 presterar bäst relativt ARM64, fördelen är i nivå med vad man ser här.
Finns nog flera förklaringar här, den viktigaste är nog att för de ARM64 CPUer som använder sig av ARMv8.x standarden finns bara tillgång till NEON som närmast kan liknas vid AVX2 som begränsas till 128 bitars databredd.
Nyheten i M4 och även i Cortex X4 (men inte Oryon som av allt att döma kör ARMv8.x) är att de använder sig av ARMv9 och får därmed tillgång till SVE2 (Scalable Vector Extensions v2) och SME (Scalable Matrix Extensions) som motsvarar AVX-512 och AMX hos x86.
3D-beräkningar som utförs i 64-bit precision får en hyfsat lyft att gå från 128-bitar till 256-bitar (512-bitar spelar rätt liten roll för just detta), så att x86_64 har tillgång till AVX2 är en fördel i just denna applikation över ARMv8.x.
Men omvänt har ARM64 den största fördelen i kompilering, där är M3 runt 30-35 % snabbare än 7950X/14900K per kärna. Detta är en "ren" heltals-last som inte påverkas av något annat än hög frekvens, hög perf/cykel samt att färre instruktioner behövs. Det sista är något som historiskt varit till fördel för x86_64, ett typiskt x86_64 program har färre instruktioner än ett PowerPC eller MIPS program (RISC). Även här är ARM64 unik, det krävs typiskt färre ARM64 instruktioner än x86_64 instruktioner för att göra samma sak i heltal (flyttal är mycket mer 1:1 så där blir det viktigare att ha "optimal databredd" för problemet).
Skrivet av Mordekai:
Många påstår ju att man kan se x86 dö ut inom en inte alltför avlägsen framtid, det kanske stämmer men jag vet inte hur alla ingenjörer som ritar mekanisk CAD skall gå med på det nedköpet.
Alla som tror att x86 ska dö inom överskådlig framtid har nog lite dålig koll på hur det sett ut historisk. x86_64 var under väldigt lång tid både billigare och snabbare än SPARC och POWER maskiner som var det "enda seriösa för servers" när jag började jobba på 90-talet. Det fanns under många många år en marknad för dessa, POWER finns ju fortfarande kvar men det är otroligt nischat och därmed relativt dyrt.
Skrivet av Mordekai:
För liten förklaring, normalt sett kräver inte mekanisk CAD särskilt mycket men vissa specialfunktioner kräver väldigt mycket geometriska beräkningar, exempelvis shell på en komplex solid. Dvs man säger att soliden skall gröpas ur och kvar skall endast finnas ett ytterskal, exempelvis om du behöver kapsla in exempelvis elektronik i en annan del. Man kan också göra utvändig shell och då blir det mer som exempelvis ett mobilskal. Detta är det enklaste exemplet jag kan komma på där det verkligen kan ta tid för beräkningarna eftersom de inte kan parallelliseras, Fusion 360 och Solidworks har en massa smarta funktioner som på liknande sätt måste räkna ut seriellt över ett helt objekt.
Alla 3D beräkningar är till viss del data-parallella, så de kommer få bättre prestanda om man använder sig ett av bra bibliotek. Kör man med 32-bit float är 128-bitar optimal databredd (man behöver 96 till 128 bitar beroende på typ av koordinatsystem för att hantera 3 dimensioner med ett register) medan 64-bit float behöver 265-bitar (192 till 256 bitar beroende på koordinatsystem).
Sen är det fullt möjligt att problemet inte är uppgifts-parallellt, d.v.s. det kan bara effektiv använda en CPU-kärna. Det är typiskt fördel x86_64 då de har brutal maxfrekvens, men perf/cykel är i många fall så mycket högre att det ändå blir snabbare på ARM64. CAD verkar vara ett exempel på där x86_64 tokhöga frekvens i slutändan är viktigare, kompilering är ett fall där perf/cykel är så mycket högre hos ARM64 att den är snabbast.
Att det finns rätt stor varians mellan olika fall. Men även i det som verkar vara "worst-case" kan man ändå se i den benchmark du presenterar här att perf/W är på en helt annan nivå även då för ARM64, det är nästa en tiopotens bättre.
Skrivet av Mordekai:
Ingen skulle bli gladare än jag om man kunde motivera en Mac för mekanisk CAD/CAM. Batteridrift är inte en bonus, snarare tvärtom eftersom det är den delen i datorn som idag slits snabbast. Jag har svårt att tro att detta skulle vara det enda scenario där Apple-Silicon-optimerad mjukvara är underlägset X86. Trist med monolitiska trender generellt, först var det klockfrekvens, sedan kärnor, sedan logiska kärnor/trådar och nu prestanda per watt. Alla är bra på sitt sätt men när branschen rör sig helt parallellt pga ett enda benchmark så gråter jag lite. Personligen vill jag ha det bästa av alla världar (förutom parallellisering vilket gör sig bättre på GPU). X antal (säg fyra) vrålsnabba kärnor helt symmetrisk layout av all IO internt och fett med extern IO som inte äter CPU-cykler. Om jag behöver mer parallellt skeppar jag det till en server helst.
Att perf/W är så viktigt är för att det är den mest kritiska egenskapen för de trender vi har.
Datacenter går mot allt fler CPU-kärnor. Hur bra perf/W + hur mycket kisel som behövs per kärna är begränsade faktorer. Hos AWS, Azure och Google Cloud får man som kund lägre priser för samma kapacitet om man kör på ARM64 instanser.
Bärbara har länge haft en trend mot kompakta enheter samtidigt som de i allt större grad ersätter stationära datorer på arbetsplatserna. Lång effekt är en förutsättning för formen, men man vill ändå ha hög prestanda för att klara krävande uppgifter. Perf/W är därför kritiskt.
Stationär desktop lär vara där x86_64 stannar längst. Här är fördelar minst med ARM64. Är möjligt att skapa väldigt högt klockade ARM64 baserade mikroarkitekturer, det kanske händer men lär hända sist då denna marknad totalt sett är den minsta och därmed ekonomiskt minst viktiga.