Skrivet av walkir:
Det du beskriver är anledningen till att jag fortfarande kör BBEdit på macOS framför långsamma och resurshungriga Electron-appar som Atom och VS Codium.
Fast det är ju ännu en av fördelarna med M1:ans fantastiska prestanda per kärna: man kan även köra Electron-appar med riktigt fin prestanda
Nu tycker jag inte VS Code på något sätt är segt på Intel/AMD heller, det fungerar riktigt bra på M1. Av någon anledning verkar Apples CPU design älska det som trillar ur JS-motorerna, där är prestandafördelen över x86_64 väsentligt större än vad t.ex. GB5 visar.
Skrivet av anon214822:
Man kanske kan säga att ARM64 är bättre än x86-64 givet läget och kravbilden just nu. x86 var säkert den optimala lösningen på sin tid, med de förhållanden och den kravbild man hade då.
Jag är inte säker på att ARM64 är optimal för de behov och den kravbild som gäller för PC. Arkitekturen har ju sina rötter i mobilbranschen och med det följer ett starkt fokus på perf/W. En PC är inte en mobil. Det finns effekt att använda. Hur bra är ARM64 på att dras upp till höga klockfrekvenser givet typ 50W tillgängligt per kärna (iallafall kortvarigt)?
Jag är lite förvånad och oroad över att M1 Pro/Max inte innebar någon egentlig förbättring i enkeltrådsprestanda. Apple gör heller inga försök att segmentera marknaden i olika klockhastigheter. Det verkar som man är begränsade i klockfrekvens mycket mer än i effekt.
Kanske kommer x86-64 tillbaka med just enkeltrådsprestanda, inte perf/W, som sitt starkaste kort, när nu Intel börjar hämta in det försprånget Apple just nu har med tillgång till bästa tillverkningstekniken.
Nog rätt "safe" att säga: x86/x86_64 har aldrig varit en optimal lösning. x86 "vann" dels på långt pris men antagligen väldigt mycket p.g.a. att Intel kunde utnyttja sitt övertag i tillverkningsteknik under mer än två decennier. Hade Intel tillverkat PowerPC eller MIPS skulle dessa har varit minst lika bra som x86. IBMs POWER har ju kunnat konkurrerat hyfsat med Intel trots att man i praktiken alltid haft ett underläge i tillverkningsteknik, när väl TSMC gick förbi var tyvärr POWER en rejäl nischspelare.
Vidare missar alla ISA innan ARM64 och RISC-V målet när det kommer till optimal design för multitrådade applikationer. x86_64 (och även SPARC) är allt för strikt, vilket lämnar prestanda på bordet. MIPS, PowerPC, m.fl. är endera inte tillräckligt strikt (det går att använda i språk som C++, Java m.fl. men rätt få fall där det är användbart) eller så blir det likt x86 för strikt. ARM64 och RISC-V designades efter man lurat ut hur det nog borde designats, så man kunde göra saker "just right".
Mobil-marknaden har varit extremt viktig för Arm, där var fördelarna med 32-bit Arm så stora mot x86 att Intel inte kunde konkurrera trots att de när de försökte hade en av de största försprången någonsin sett till tillverkningsteknik.
Denna video illustrerar delvis vilket katastrof Intel/AMD faktiskt är där perf/W är topprioritet. Intel ligger efter Apple både i benchmarks och "verkliga" applikationer, det "positiva" man kan säga är att avståndet är rätt konsekvent i applikationer/benchmarks samt vare sig man kör på nätdrift eller batteri. AMD klarar sig lysande i benchmarks, betydligt sämre i verkliga applikationer och är en total katastrof när man drar ur sladden (15 W är helt enkelt way to little för x86 med 8C/16T)...
Qualcomm är definitivt inte roliga att vara beroende av. Men videon ovan visar ändå varför Windows-användarna ändå bör hoppas på att Qualcomm/Nuvia får fram något riktigt bra ARM64 baserat för Windows: om inte annat borde det rimligen få andra att börja röra på sig också!
32-bit Arm har helt klart designbeslut som gjorde det svårt att skala upp CPUer med den ISAn till riktigt "breda" designer. Finns däremot inget som hindrar något att designa sådan CPUer med väldigt hög frekvens.
Hur högt man kan klocka något är överlägset mest beroende på mikroarkitektur. Om AMD eller Intel skulle ta sina nuvarande "stora" kärnor och smacka dit en ARM64 front-end skulle den klocka lika högt som man kan med x86_64. Däremot skulle inte perf/W öka i någon större utsträckning.
Perf/W skulle öka något då ARM64 ISA skulle ge något högre "effektiv IPC" (samma program tenderar ta något färre ARM64 instruktioner jämfört med x86_64 instruktioner + en långt större andel av ARM64 instruktionerna jämfört med x86_64 saknar globala sidoeffekter -> ger högre möjlighet till parallellism för back-end). Men det skulle fortfarande handla om 30-50 W per kärna vid frekvenser >5 GHz.
ARM64 har inget i designen som gör det mer lämpligt för mobiler än något annat. Skulle snarare säga att då det är enklare att göra extremt "breda" designer är den om något mer lämpade till server/datacenter/workstations än mobiler.
Apple har en microarkitektur som inte möjliggör speciellt hög frekvens. De har gått all-in för perf/W, optimala där är extremt "bred" design med kort pipeline. En kort pipeline medför högre IPC och mindre energi att köra saker, men det hindra också riktigt höga frekvenser!