Apple M4 versus X86-PC

Permalänk

Apple M4 versus X86-PC

Lite dåligt med direkta jämförelser på nätet tycker jag. Kanske bättre när alla versioner av M4 kommit ut?

Några länkar:
https://www.phoronix.com/review/apple-m4-intel-amd-linux
https://www.servethehome.com/the-apple-mac-mini-m4-sets-the-m...

Phoronix har testat energiförbrukning och skillnaden är i många fall enorm.
En CPU jag saknar är AMD 5 8500G som enligt Techpowerup är riktigt snål (för att vara X86)

Prestanda är framför allt i 7-zip ganska dåligt. För att ha nån nytta av Thunderbolt måste man ju komprimera/dekomprimera alla småfiler.
Inte utan att M4 Pro borde vara intressantare....

Servethehome testar även när mängd minne betyder något- rätt tänkt!

Andra tester ni har hittat?

Permalänk
Medlem

Jag får erkänna att jag inte riktigt förstår denna del i ditt inlägg: "För att ha nån nytta av Thunderbolt måste man ju komprimera/dekomprimera alla småfiler."

Varför behöver man komprimera/dekomprimera småfiler för att ha nytta av Thunderbolt, sett till säg redigera video mot externt anslutna SSDs eller säg externt lagrat bildbibliotek?

Jag kanske missar något självklart, och lär mig gärna nytt

Permalänk

Hur kan en M4 Pro slå senaste generationen av AMD och Intel på fingrarna med mer än fem gånger bättre prestandan per watt? Vad är det för magiskt Apple gör?

Yoshman kommer säkert komma in och svara att Apple är bäst men jag behöver en mer logisk förklaring.

Permalänk
Medlem

Apple har droppat gammalt arv och x86 såg ut som en bra idé för 30 år sedan
Intel borde göra en total omstruktur och ta några hårda beslut.
Man kanske inte nödvändigtvis SKA kunna köra en 30 år gammal exe utan att emulera prylar.

Permalänk
Moderator
Brons i quiz
Skrivet av Ibis:

Jag får erkänna att jag inte riktigt förstår denna del i ditt inlägg: "För att ha nån nytta av Thunderbolt måste man ju komprimera/dekomprimera alla småfiler."

Varför behöver man komprimera/dekomprimera småfiler för att ha nytta av Thunderbolt, sett till säg redigera video mot externt anslutna SSDs eller säg externt lagrat bildbibliotek?

Jag kanske missar något självklart, och lär mig gärna nytt

Jag kan tänka mig att det handlar om att dra nytta av hög sekventiell skriv/läshastighet genom att flytta en stor fil istället för många småfiler som förlitar sig mer på random skriv/läs.

Skrivet av Dinkefing:

Hur kan en M4 Pro slå senaste generationen av AMD och Intel på fingrarna med mer än fem gånger bättre prestandan per watt? Vad är det för magiskt Apple gör?

Yoshman kommer säkert komma in och svara att Apple är bäst men jag behöver en mer logisk förklaring.

Apple skräddarsyr sin mjukvara och hårdvara för att fungera bäst med varandra medan AMD och Intel behöver tillverka processorer som ska fungera med allt från Windows till Linux? Säkert enklare att göra CPU som är effektiv när man vet vad för instruktioner som behövs köras.

Yoshman kommer nog komma in med en bättre logisk förklaring.

Visa signatur

Citera om du vill ha svar!
Tycker du om sidospår? :D Besök The Wiki Game
Har du fråga angående modereringen? PM till Moderatorerna eller Kontaktformulär

Permalänk
Skrivet av Ibis:

Jag får erkänna att jag inte riktigt förstår denna del i ditt inlägg: "För att ha nån nytta av Thunderbolt måste man ju komprimera/dekomprimera alla småfiler."

Varför behöver man komprimera/dekomprimera småfiler för att ha nytta av Thunderbolt, sett till säg redigera video mot externt anslutna SSDs eller säg externt lagrat bildbibliotek?

Jag kanske missar något självklart, och lär mig gärna nytt

Stora videofiler drar direkt nytta av något som Thunderbolt. Småfiler gör inte det om du inte först kör något som packar dem till större packet med tex 7-zip eller RAR

Permalänk
Medlem
Skrivet av Greyguy1948:

Stora videofiler drar direkt nytta av något som Thunderbolt. Småfiler gör inte det om du inte först kör något som packar dem till större packet med tex 7-zip eller RAR

Tack! Men då har man ju nytta av Thunderbolt när man hanterar stora filer, bara inte när man hanterar små. Så någon nytta finns ju, beroende på vad man gör Men hänger med nu!

Permalänk
Skrivet av Dinkefing:

Hur kan en M4 Pro slå senaste generationen av AMD och Intel på fingrarna med mer än fem gånger bättre prestandan per watt? Vad är det för magiskt Apple gör?

Yoshman kommer säkert komma in och svara att Apple är bäst men jag behöver en mer logisk förklaring.

ARM ger bättre möjligheter att spara energi än X86. Därför tog de över på mobilsidan.
Dessutom är Apple duktigare än de andra som Qualcomm och Samsung map prestanda per watt. Det handlar mycket om hur de designar cache och minnesbuss. Anandtech har kört många jämförelser på detta. Så gräv i deras arkiv!

Permalänk

Ännu en länk:
https://benchmarks.pugetsystems.com/benchmarks/?age=0&benchma...

På Puget benchmarks kan man jämföra M4 med massor av X86 och deras grafikkort.
Se dock till att det är samma version tex Photoshop 26.1.0, Premiere 25.0.0 och DaVinci 19.1.0
M4 Max hävdar sig väl i Photoshop men inte lika väl i Premiere och DaVinci. Med CUDA får man fram alla Geforce-kort och med OpenCL alla Radeon-kort

Permalänk
Datavetare

YT kanalen MaxTech har rätt mycket tester.

Vad man kan konstatera att med M4 är det i praktiken meningslöst att jämföra Apples bärbara mot Intel/AMDs bärbara, det är klasskillnad oavsett vad man jämför. Ett absurt exempel finns i denna video

M4 (vi pratar alltså om basmodellen, inte Pro eller Max) är till och något snabbare än AMD Strix Point / Intel Lunar Lake när man kör Counter Strike 2.

För att fatta varför del är bonkers lär man då vara med på att CS2 finns inte till MacOS, M4 är snabbare när den kör x86_64 kod + behöver emulera DirectX och Windows!

Han har gjort tester mot M4 Max, trots att det är en laptop är den i de flesta fall snabbare än 285K och 9950X (primärt då ST är klart högre och än idag är de flesta "riktiga" programmen ofta begränsad av ST). Intel får några vinster där Quick Sync är riktigt bra, och QS har fått en hel del förbättringar i senaste generationen.

Skrivet av Greyguy1948:

Stora videofiler drar direkt nytta av något som Thunderbolt. Småfiler gör inte det om du inte först kör något som packar dem till större packet med tex 7-zip eller RAR

Thunderbolt lär rimligen ha större fördel över t.ex. USB med små filer. Detta då Thunderbolt i praktiken ger ett "vanlig" NVMe-protokoll till externa diskar med liknande fördelar i låg latens. Modern USB har hög bandbredd, men är tyvärr också rätt hög latens.

Skrivet av Greyguy1948:

ARM ger bättre möjligheter att spara energi än X86. Därför tog de över på mobilsidan.
Dessutom är Apple duktigare än de andra som Qualcomm och Samsung map prestanda per watt. Det handlar mycket om hur de designar cache och minnesbuss. Anandtech har kört många jämförelser på detta. Så gräv i deras arkiv!

32-bit Arm har en del unika finesser som ger väldigt kompakt och potentiellt energisnål design. Det används ju fortfarande väldigt mycket i mikrokontrollers. Men 32-bit Arm hade helt klart problem med att skala upp till "feta" mikroarkitekturer.

Men här lär det vara rejäl uppförsbacke för Arm framåt. RISC-V växer otroligt snabbt inom MCUer, går inte att priskonkurrera mot dessa (har ett gäng RISC-V MCUer på ingång).

ARM64 är nog egentligen inte speciellt mycket mer energieffektiv jämfört med x86_64 om man bygger en krets av varje som båda kör på samma frekvens. Problemet för x86_64 att man inte alls har samma perf/Hz där som för ARM64.

Och det gäller inte längre bara för Apple. Tar vi Intel/AMDs senaste generation laptop-CPUer är de, i absoluta tal, långsammare än senaste generationen mobil-CPUer från Apple, Qualcomm och Arm!!!

Arm överraskade faktiskt rätt rejält med deras X925, den klockar inte lika högt som M3/M4/Oryon, men den har en prestanda/Hz som ligger helt i nivå med Apple M3/M4 (d.v.s. runt 40-50 % högre perf/Hz jämfört med Zen5/Lion Cove).

Apple är inte snabba för de råkar ha optimerad HW. I fallen där Apple har optimerad HW handlar det typiskt om saker utanför själva CPU-delen och i de fallen presterar man typiskt ovanför desktop x86_64. Kör ARM64 versionen av Windows 11 på min M3 Max, den är toksnabb även i Windows (minst lika snabb som 14900K i att kompilera med Visual Studio t.ex.).

Vi ser ju att Qualcomm och Arm också är snabba när de kör Windows och Linux (Oryon 1 var "lite för lite lite för sent", mobilerna kör Oryon 2 och den är ett rätt stort lyft).

Många har hävdat att ISA inte är kritiskt. Men rimligen är det fel när det gäller ARM64, för vad är sannolikheten att Arm, Qualcomm och Apple bara råkade få alla bra CPU-designers medan de gick på permanent AW hos Intel och AMD?

De tidiga ARM64 CPUerna från Arm kunde köra både 32-bit Arm och ARM64, redan där såg man 10-30 % bättre prestanda med samma krets av att köra ARM64 versionen av programmen. När man sedan släppte 32-bit stödet har vi sett hos alla 3 ARM64-designers att man kunna gå till 8-10 wide designer med brutal perf/Hz.

Intel är nu 8 wide och AMD är 2x 4-wide, men det verkar inte alls ge samma boost som när ARM64 gänget gick från 3-4 wide till 8-10 wide.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Dinkefing:

Hur kan en M4 Pro slå senaste generationen av AMD och Intel på fingrarna med mer än fem gånger bättre prestandan per watt? Vad är det för magiskt Apple gör?

Yoshman kommer säkert komma in och svara att Apple är bäst men jag behöver en mer logisk förklaring.

Superenkelt. Säg du på 70talet ska bygga ett hus du bygger enligt de byggnormer som då finns. Sedan underhåller och bor du i detta hus.
En granne till dig bygger ett hus år 2024 enligt de byggnormer som nu finns. Detta nya hus kommer utklassa ditt hus på alla sätt och vis, det nya huset kommer ha en miljöklass som bara är glömma att uppnå med det gamla huset utan att riva det och bygga nytt.

Så Apple metod att konstant hela tiden börja om från början leder till en effektiv produkt. Finns det någon nackdel med detta? Ja, personer som gör lite mer än surfa eller använder de mest populära programmen kommer få köpa nya programvaror hela tiden, vissa företag har programvaror som de har betalt miljonbelopp för att någon ska utveckla och det är bara att börja om. (såklart inte helt för grunden) Min poäng är att det är väldigt dyrt.

Jag själv har beställt en M4 mac mini, förutom min iPad. Det blir roligt att se hur Apple presenterar i riktiga tester mer än skolboksövningar.
Min gissning är att många program har knepiga låsningar som ingen riktigt fattar varför det går segt. (taskbaren kanske visar typ 0%, men man får vänta på att datorn ska jobba). Jag tror detta kommer bli ännu värre med Windows 86 virtuellt på en mac. Så att det i praktiken kommer gå segt och lösningen är att koda om.
Nå, jag får snart se..

Permalänk
Datavetare
Skrivet av lillaankan_i_dammen:

Superenkelt. Säg du på 70talet ska bygga ett hus du bygger enligt de byggnormer som då finns. Sedan underhåller och bor du i detta hus.
En grannen till dig bygger ett hus år 2024 enligt de byggnormer som nu finns. Detta nya hus kommer utklassa ditt hus på alla sätt och vis, det nya huset kommer ha en miljöklass som bara är glömma att uppnå med det gamla utan att riva huset och bygga nytt.

Så Apple metod att konstant hela tiden börja om från början leder till en effektiv produkt. Finns det någon nackdel med detta? Ja, personer som gör lite mer än surfa eller använder de mest populära programmen kommer få köpa nya programvaror hela tiden, vissa företag har programvaror som de har betalt miljonbelopp för och det är bara att börja om. (såklart inte helt för grunden) Min poäng är att det är väldigt dyrt.

Varför behöver man kasta ut alla program?

För 10-20 år sedan var det absolut så. Men vi har av allt att döma haft rejäla genombrott i tekniken kring att binäröversätta program från en ISA till en annan.

Fram till väldigt nyligen har man varit rätt rökt i de fall man haft ett kraftigt beroende på Windows. Egentligen inte p.g.a. av x86_64 i sig utan för att Windows själv aldrig varit vettigt att köra utanför x86/x86_64. Är först med Windows 11 som ARM64 versionen faktiskt blivit vad man kan förvänta sig.

Microsoft är också medveten om att det kommer finnas väldigt mycket plugins och liknande som aldrig kommer översättas till något annat. Deras variant av "Rosetta 2", Prism, har därför utrustas med ett specialläge där man gradvis kan migrera till ARM64.

Typiskt kommer huvudprogrammet bli ARM64, medan 3:e-parts plugins och liknande stannar på x86_64. Apple kräver att endera är allt x86_64 eller så är allt ARM64. Kan nog ändå hävda att jag använder datorn till lite mer än surfa, det man slogs av i Apples övergång var hur extremt snabbt hela infrastrukturen som krävs vid programutveckling blev ARM64-native. Även HW-nära saker dels finns idag på MacOS och dels är de ARM64 native.

Men är med på att andra branscher inte kommer vara lika snabb. Fortfarande rätt mycket ett icke-problem på Linux, och det dominerar "back-end" idag (så också lite mer än surf).

Har man program som har mer än ett par år på nacken är det ju fullt rimligt med full emulering av HW, OS rubbet även om man kör på "fel ISA". Så har lite svårt att se problematiken (AWS och snart nog också Azure och Google Cloud verkar också inte se problemet, över 50 % av tillväxten inom AWS har enligt dem själva varit Graviton sedan 2021).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Varför behöver man kasta ut alla program?

För 10-20 år sedan var det absolut så. Men vi har av allt att döma haft rejäla genombrott i tekniken kring att binäröversätta program från en ISA till en annan.

Fram till väldigt nyligen har man varit rätt rökt i de fall man haft ett kraftigt beroende på Windows. Egentligen inte p.g.a. av x86_64 i sig utan för att Windows själv aldrig varit vettigt att köra utanför x86/x86_64. Är först med Windows 11 som ARM64 versionen faktiskt blivit vad man kan förvänta sig.

Microsoft är också medveten om att det kommer finnas väldigt mycket plugins och liknande som aldrig kommer översättas till något annat. Deras variant av "Rosetta 2", Prism, har därför utrustas med ett specialläge där man gradvis kan migrera till ARM64.

Typiskt kommer huvudprogrammet bli ARM64, medan 3:e-parts plugins och liknande stannar på x86_64. Apple kräver att endera är allt x86_64 eller så är allt ARM64. Kan nog ändå hävda att jag använder datorn till lite mer än surfa, det man slogs av i Apples övergång var hur extremt snabbt hela infrastrukturen som krävs vid programutveckling blev ARM64-native. Även HW-nära saker dels finns idag på MacOS och dels är de ARM64 native.

Men är med på att andra branscher inte kommer vara lika snabb. Fortfarande rätt mycket ett icke-problem på Linux, och det dominerar "back-end" idag (så också lite mer än surf).

Har man program som har mer än ett par år på nacken är det ju fullt rimligt med full emulering av HW, OS rubbet även om man kör på "fel ISA". Så har lite svårt att se problematiken (AWS och snart nog också Azure och Google Cloud verkar också inte se problemet, över 50 % av tillväxten inom AWS har enligt dem själva varit Graviton sedan 2021).

Man får virtualisera hela operativsystem, denna kan man köra på sin egen dator eller fjärrstyra någon annanstans. Med att slänga och börja om så menade jag om man skulle köra direkt på datorn i värdoset.

Windows X86/x64 lever tack vare att den har en sådan extrem bakåtkompilatet. Det finns många som använder drivers och annat kodade förra årtusendet, den enda person som någonsin har sett källkoden till programmet och är insatt i protokollet kan ha har gått bort för lika länge sedan.
Inom program så är det ofta mycket beroende, det är väldigt många parter inblandat. Jag pratar om program som man kan köpa från en tillverkare och så är det kanske moduler från 100st olika tillverkare iblandade.
Resultatet av detta blir i bästa fall en lösning som inte ens är snabb eller stabil när det väl fungerar.

Det blir intressant att testa detta virtuellt på en M4 när min väl kommer. Den självklara lösningen på problemet är att koda om allt från början, vilken även ofta skulle behövas göras för x86/x64 versionen.
*edit*
Jag påstår alltså att mycket seghet i större windowsprogram beror på hur de är utvecklade, det kan vara en gammal kodbas från förra årtusendet. Sedan har de förbättrat något, köpt in moduler från olika tillverkare osv. Snabbare cpu gör såklart att det går snabbare. Men vissa program kan gå segt utan man enkelt kan säga varför.
Som sagt, jag får snart testa x86/x64 virtuellt på en mac.

Permalänk
Datavetare
Skrivet av lillaankan_i_dammen:

Man får virtualisera hela operativsystem, denna kan man köra på sin egen dator eller fjärrstyra någon annanstans. Med att slänga och börja om så menade jag om man skulle köra direkt på datorn i värdoset.

Windows X86/x64 lever tack vare att den har en sådan extrem bakåtkompilatet. Det finns många som använder drivers och annat kodade förra årtusendet, den enda person som någonsin har sett källkoden till programmet och är insatt i protokollet kan ha har gått bort för lika länge sedan.
Inom program så är det ofta mycket beroende, det är väldigt många parter inblandat. Jag pratar om program som man kan köpa från en tillverkare och så är det kanske moduler från 100st olika tillverkare iblandade.
Resultatet av detta blir i bästa fall en lösning som inte ens är snabb eller stabil när det väl fungerar.

Det blir intressant att testa detta virtuellt på en M4 när min väl kommer. Den självklara lösningen på problemet är att koda om allt från början, vilken även ofta skulle behövas göras för x86/x64 versionen.
*edit*
Jag påstår alltså att mycket seghet i större windowsprogram beror på hur de är utvecklade, det kan vara en gammal kodbas från förra årtusendet. Sedan har de förbättrat något, köpt in moduler från olika tillverkare osv. Snabbare cpu gör såklart att det går snabbare. Men vissa program kan gå segt utan man enkelt kan säga varför.
Som sagt, jag får snart testa x86/x64 virtuellt på en mac.

Så vad du säger är att det finns ett "relevant antal" organisationer som väljer att köra affärskritiska system på WinXP eller tidigare?

För även om userspace är väldigt bra på att vara bakåtkompatibelt (vilket även gäller Linux) så har drivers i Windows inte alls någon sådan garanti. I praktiken fick ju alla drivers skrivas om i samband med Vista. Även om det är sannolikt att en driver skriven för Win7 fungerar i Win11 är det inte alls garanterat.

Den typen av bakåtkompatibilitet finns inte. De som kör sin "billion dollar business" på HW pre-2k kan väl få göra det, men ser inte hur det är relevant för om man bör fundera på att majoriteten kanske borde släppa en design vars "bäst-före" nog också ligger pre-2k.

Och vad det gäller user-space är även Windows ARM64 väldigt bra på att köra "gammalt junk". Huvudproblemet där är att spel börjat använda AVX/AVX2 och nuvarande version av Prism stödjer inte det. Men vi vet att det inte är ett hårt problem då Rosetta 2 också saknade AVX/AVX2 stöd fram till Sequoia.

Hade fördelarna varit 10-15 % så visst. Samma om Moores lag varit kvar i full sving, då hade man ändå fått x2 prestanda bara genom att vänta lite. Men när det blir allt mindre fördel (och väsentligt dyrare) att gå till nya noder samtidigt som fördelen i praktiken är >25 % får man kanske lite fundera på sina prioriteringar.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Så vad du säger är att det finns ett "relevant antal" organisationer som väljer att köra affärskritiska system på WinXP eller tidigare?

För även om userspace är väldigt bra på att vara bakåtkompatibelt (vilket även gäller Linux) så har drivers i Windows inte alls någon sådan garanti. I praktiken fick ju alla drivers skrivas om i samband med Vista. Även om det är sannolikt att en driver skriven för Win7 fungerar i Win11 är det inte alls garanterat.

Den typen av bakåtkompatibilitet finns inte. De som kör sin "billion dollar business" på HW pre-2k kan väl få göra det, men ser inte hur det är relevant för om man bör fundera på att majoriteten kanske borde släppa en design vars "bäst-före" nog också ligger pre-2k.

Och vad det gäller user-space är även Windows ARM64 väldigt bra på att köra "gammalt junk". Huvudproblemet där är att spel börjat använda AVX/AVX2 och nuvarande version av Prism stödjer inte det. Men vi vet att det inte är ett hårt problem då Rosetta 2 också saknade AVX/AVX2 stöd fram till Sequoia.

Hade fördelarna varit 10-15 % så visst. Samma om Moores lag varit kvar i full sving, då hade man ändå fått x2 prestanda bara genom att vänta lite. Men när det blir allt mindre fördel (och väsentligt dyrare) att gå till nya noder samtidigt som fördelen i praktiken är >25 % får man kanske lite fundera på sina prioriteringar.

Det finns de som kör väldigt gamla windowsversioner. Mer vanligt är dock någon som använder något som är väldigt gammalt. Det kan alltså vara en modul i ett nytt program som är väldigt gammal.
När man pratar om drivers finns det lite olika typer, jag påstår att de flesta gamla kodade på vettigt sätt fungerar på nya windows. Nej jag pratar inte om konsument usb skrivare utan mer industri som kan använda den gamla komporten eller ethernet. Om jag skulle ha fel så skulle varenda fabrik i landet vara tvungna att antagligen köra t.ex winXp eller köpa ny svindyr hårdvara konstant hela tiden. Btw jag känner en person som har en litet tryckeri och inte kommer gå över till nya Mac M versionerna från Apple X86. Det blir för dyrt att köpa ny utrustning och han satsar mer emot pension.

Permalänk

Computerbase har jämfört M4 Pro (10P+4E) med ett antal X86-or:
https://www.computerbase.de/artikel/prozessoren/m4-pro-vs-ryz...

Single core och Multi core testerna är medelvärden där man kan välja enstaka tester ("bearbeiten")
Egentligen finns ingen energi-snål X86 med här . Jag saknar tex Ryzen 9 7900 (65 W) som är ovanligt effektiv enligt Techpowerup