Windows 10 för ARM körs på Apples M1

Permalänk
Melding Plague

Windows 10 för ARM körs på Apples M1

Genom emuleringsmjukvaran QEMU lyckas utvecklare köra Windows 10 på Apples ARM-processor M1 – med imponerande resultat.

Läs hela artikeln här

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk
Medlem

X1 kommer bli bättre men Apple kommer bara utöka sitt ledarskap här! De har nu som första bolag kontroll över hela kedjan (för relevanta produkter) och kan optimera alla parametrar! Genom sina uppköp och rekryteringar inom processor utveckling ligger de även långt framme i kunnandet här.

Apple kommer bara bli bättre nu! Hoppas detta ger Microsoft och ARM konkurrenterna rejält med eld i baken!

Visa signatur

Nätverksnörd

Permalänk
Skrivet av moire:

X1 kommer bli bättre men Apple kommer bara utöka sitt ledarskap här! De har nu som första bolag kontroll över hela kedjan (för relevanta produkter) och kan optimera alla parametrar! Genom sina uppköp och rekryteringar inom processor utveckling ligger de även långt framme i kunnandet här.

Apple kommer bara bli bättre nu! Hoppas detta ger Microsoft och ARM konkurrenterna rejält med eld i baken!

Och snart även kontroll över vilka applikationer som är godkända för att installera på datorn.

Min gissning är att processorutvecklingen snart stagnerar igen och då kommer de andra ikapp, det processorer dock kan bli bättre på är instruktioner/funktioner för speciella tillämpningar som Ai.

Permalänk
Medlem
Skrivet av lillaankan_i_dammen:

Och snart även kontroll över vilka applikationer som är godkända för att installera på datorn.

Vad baserar du det på? Eller bara en gissning från din sida?

Visa signatur

7800X3D | RTX 4080 Super | 32GB DDR5 | LG 48 C1 OLED

Permalänk
Medlem

Imagine om man får mer fps i MSFS 2020 på en mac 🤪

Visa signatur

Moderkort: ASRock H61M- DGS, Processor: Intel i3 3225, Grafik: GTX 460SE, RAM 2x4 GB 1600MHz ddr3 , 1TB HDD Seagate Barracuda, 450W Antec VP450P PSU och en stor svart jävla låda.

Permalänk
Medlem

Ser onekligen otroligt lovande ut.
Tror det kommer hända en hel del framöver.

Permalänk
Medlem

De kör Apples egna hypervisor-API/ramverk, precis som jag misstänker att alla kommer få göra. Stöd från Parallells och VMware är på gång och kommer släppas, frågan är bara om det faktiskt kommer en variant av Windows man kan licensiera och att det finns vettiga drivrutiner. Sen behöver ju Windows på ARM mogna en del också, för företag är det nog bättre att rulla vidare på Citrix/RDS ett tag till.

Permalänk
Medlem
Skrivet av Teval:

Vad baserar du det på? Eller bara en gissning från din sida?

https://www.google.com/amp/s/appleinsider.com/articles/19/12/...

Går att kringgå enkelt dock, se nedan, men det är väl detta man är rädd för ska eskalera.

Permalänk
Medlem
Skrivet av Deroan:

Ironiskt att du använder en amp-länk för att hänvisa till inlåsning...

The problem with AMP

Kill Google AMP before it kills the web • The Register

Why AMP is bad for your site and for the Web

Google AMP Can Go To Hell | Polemic Digital

Visa signatur

WS: Asus X570-E, Ryzen 5900x, 2x16GB Ballistix E-die, EVGA 3080 FTW3 Ultra
FS: Asus X370-F, Ryzen 3600, 4x8GB G.Skill Flare, GT710, CM Stacker
HTPC: Asus F2A85-M, A10-5800K, 2x4GB G.Skill 2133MHz

Permalänk
Datavetare

Blir allt mer uppenbart varför Apple var missnöjd med vad de fick från Intel.

Det första man lär inse med Apples M1 är: detta lär vara den långsammaste desktop-CPU vi någonsin lär se komma från Apple, den är mer jämförbar med en 4C/8T x86 än en 8C/8T modell.

Att Firestorm kan emulera x86 snabbare än alla Skylake/Zen2 baserade modeller avsedda för bärbara datorer indikerar rätt mycket att Intel helt tappat initiativet, när den kör ARM64 är den snabbare än någon annan CPU räknat per kärna. Som en vis man en gång sa: allt är relativt, att AMD klivit förbi Intel är primärt mer än effekt av Intels brist på utveckling än något annat.

Sitter man fast i x86 går det ändå att ha en "glaset halvfullt" syn på ovan. Innan Apple lanserade M1 kändes ryktena om att Golden Cove (planerad 2H 2021 i Alder Lake) ska få ~50 % högre IPC jämfört med Skylake lite tveksamt, nu känns det mer som om inte Intel minst fixar det kan man verkligen undra vad de håller på med!

OK att ARM64 är en bättre ISA än x86_64, men den skillnad vi nu ser ISO-frekvens är helt omöjlig att förklara med ISA, Firestorm är rätt mycket dubbel så snabb per MHz som Skylake/Zen2. Det är samma skillnad som mellan ursprungliga Athlon från 1999 till Zen2, ett span på 20 år (Intel "fuskade" här, deras spann för 2x IPC är kortare p.g.a. P4 som hade lägre IPC än P3)!!!

Båda är akterseglade av Apple och på serversidan kan mycket väl samma sak hända från Arms håll. Ställer man Skylake SP, Zen2 och Arm N1 (vilket är de aktuella mikroarkitekturen på serversidan) presterar dessa väldigt jämt sett per MHz och de klockar också väldigt snarlikt. Under 2021 kommer alla gå till nästa mikroarkitektur, AMD och Intel kommer båda få ~20 % högre prestanda per MHz medan Arm N2 förväntas få ~40 % högre prestanda per MHz (fortfarande rejält efter Apples prestanda per MHz, men Apple tillverkar inte server CPUer så är irrelevant).

Inte helt oväntat att QEMU körande ARM64 på ARM64 presterar i nivå med Roseetta 2 körande x86_64 på ARM64. Även med QEMU + HW-stöd (vilket användes här, kör man helt utan HW blir prestanda bedrövlig min 3900X får en ST GB5 poäng om 164 om man kör helt SW-emulerat, trots att det är x86_64 på x86_64) finns ändå delar som emuleras då QEMU måste hantera vissa läsningar/skrivningar mot RAM som minnesmappad I/O.

Med HW-stöd (KVM på Linux och Apples inbyggda hypervisor i fallet i artikeln) kommer man rätt nära native-hastighet då majoriteten av alla minnesaccesser nu hanteras av KVM/Apple-hypervisor som båda använder HW-stöd i CPU för virtualisering. Men till skillnad från en helt paravirtualiserad gäst där man kommer väldigt nära 100 % av native-speed måste QEMU fortfarande emulera periferienheter.

Rent strikt är Rosetta 2 inte emulering, vad man gör är något som kallas "binäry lifting" av x86_64 koden till en virtuell assembler, LLVM IR. Denna virtuella assembler översätts sedan till ARM64, vilket är vad man faktiskt kör. Är denna översättningsprocess som gör att det tar en stund att starta x86_64 program första gången på M1 Mac:arna.

Visa signatur

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

Permalänk
Medlem
Skrivet av Deroan:

Är väl en oneliner i terminalen? Ungefär lika krångligt som att disablea UAC på Windows?

Visa signatur

7800X3D | RTX 4080 Super | 32GB DDR5 | LG 48 C1 OLED

Permalänk
Medlem

Det där är inte en kontroll av vilka program som går att köra på datorn. Det där är en kryptografisk signatur av vem som har gjort programmet, och den har funnits som alternativ i åtta år. Det som är skillnaden med det som står i artikeln mot vad som funnits länge är en automatisk kontroll av vad programmet gör - samma som heuristik i antivirusprogram - och möjligheten att döda enskilda program istället för att döda alla program från en viss utvecklare om det bnlir ett intrång.

Citat:

Går att kringgå, men är lite krångligt.

Process för att kringgå: Markera programmet i Finder. Välj "Öppna" från meny Arkiv - en gång. Klicka på rätt knapp i rutan som kommer upp. Det är inte Konami-koden direkt. Det finns hundra andra sätt att gå runt det, men det där är det enklaste.

Det enda Gatekeeper gör som folk verkar gå i spinn av är att den där knappen för att kringgå skyddet är dold om man dubbelklickar, eller om programmet startas av ett annat program. Det går fortfarande att öppna från Finder eller inifrån terminalen.

Visa signatur

5900X | 6700XT

Permalänk
Medlem

En spännande framtid! Apple har visat att det går att göra en grym APU med ARM.

Inget hindrar andra från att använda X1an. *Host* Nintendo *Host* Här kunde det vara med en Ampere grafikdel.

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem
Skrivet av kirkunit:

Ironiskt att du använder en amp-länk för att hänvisa till inlåsning...

Lite OT, men alla dessa länkningar och "optimeringar" skrämmer mig.

"More money for Google, less money for the actual content creator."

Har liknande utmaning med Facebook, som spårar allt som sker via Messenger, Instagram etc. Alla länkar jag får till mig via deras tjänster skickar mig först till Facebook för att sedan dirigeras vidare.

Jag försöker slå mig fri från Googles och Facebooks herravälde genom att exempelvis använda DuckDuckGo. Men då DuckDuckGo inte ger önskade resultat vid sökningar på svenska, så faller jag tillbaka till Google och fortsätter min onda cirkel (och föder Google med mer och mer data).

Ganska skrämmande utveckling att se att exempelvis många svenska myndigheter har Google och Bing som förvalda sökmotorer. Gissar på att övriga företag har en liknande situation. "More data, more power" ...

Många är rädda för Huawei som spionerar på företag, men samtidigt så låter vi Google, Facebook, Microsoft och Apple kartlägga våra liv utan minsta eftertanke.

Permalänk
Medlem
Skrivet av Teval:

Är väl en oneliner i terminalen? Ungefär lika krångligt som att disablea UAC på Windows?

Skrivet av mpat:

Det där är inte en kontroll av vilka program som går att köra på datorn. Det där är en kryptografisk signatur av vem som har gjort programmet, och den har funnits som alternativ i åtta år. Det som är skillnaden med det som står i artikeln mot vad som funnits länge är en automatisk kontroll av vad programmet gör - samma som heuristik i antivirusprogram - och möjligheten att döda enskilda program istället för att döda alla program från en viss utvecklare om det bnlir ett intrång.

Process för att kringgå: Markera programmet i Finder. Välj "Öppna" från meny Arkiv - en gång. Klicka på rätt knapp i rutan som kommer upp. Det är inte Konami-koden direkt. Det finns hundra andra sätt att gå runt det, men det där är det enklaste.

Det enda Gatekeeper gör som folk verkar gå i spinn av är att den där knappen för att kringgå skyddet är dold om man dubbelklickar, eller om programmet startas av ett annat program. Det går fortfarande att öppna från Finder eller inifrån terminalen.

Krångligt? Nej.

Onödigt krångligt? Ja.

Såpass krångligt att många av deras användare inte vet hur man ska göra? Ja.

Om folk måste googla för att lista ut hur man ska installera ett program så är det något som är otroligt jävla fel.

Jag har haft olika mbp i bokstavligt talat halva mitt liv men jag blir mer och mer tveksam till om min nästa bärbara kommer bli en mac. Det är för många saker som för mig är viktigt som de försämrar.

Men jag ska erkänna att man blir ju lite sugen på en M2-dator (eller vad de nu kommer kalla nästa chip).

Permalänk
Musikälskare

Imponerad över Apples framtidstänk och risktagande

Visa signatur

❀ Monitor: ASUS Swift 27" @ 1440p/165Hz ❀ CPU: Ryzen 7700X ❀ Cooling: Corsair H170i ELITE 420mm ❀ GPU: MSI 3080 Ti SUPRIM X ❀ Memory: Corsair 32GB DDR5 Vengeance ❀ Motherboard: ASUS Crosshair X670E Hero ❀ M.2: Samsung 980 Pro ❀ PSU: Corsair HX1200 ❀ Chassi: Corsair 7000X ❀ Time Spy: 19 340

📷 Mina fotografier
🎧 Vad lyssnar du på just nu?

Permalänk
Medlem
Skrivet av mpat:

Det där är inte en kontroll av vilka program som går att köra på datorn. Det där är en kryptografisk signatur av vem som har gjort programmet, och den har funnits som alternativ i åtta år. Det som är skillnaden med det som står i artikeln mot vad som funnits länge är en automatisk kontroll av vad programmet gör - samma som heuristik i antivirusprogram - och möjligheten att döda enskilda program istället för att döda alla program från en viss utvecklare om det bnlir ett intrång.

Process för att kringgå: Markera programmet i Finder. Välj "Öppna" från meny Arkiv - en gång. Klicka på rätt knapp i rutan som kommer upp. Det är inte Konami-koden direkt. Det finns hundra andra sätt att gå runt det, men det där är det enklaste.

Det enda Gatekeeper gör som folk verkar gå i spinn av är att den där knappen för att kringgå skyddet är dold om man dubbelklickar, eller om programmet startas av ett annat program. Det går fortfarande att öppna från Finder eller inifrån terminalen.

Tack för bra info, min enda erfarenhet av detta var när jag behövde hjälpa sambon med det då hon skulle installera ett (vanligt) program. Hon förstod inte själv varför den inte lät henne installera, så tänker att för den gemene Macanvändaren ses det nog som krångligt. Har ändrat mitt inlägg.

Permalänk
Medlem

Men om Linuxanvändarna får säga sitt så är de inte bra förens de kan köra sitt som de vill

Permalänk
Medlem

Tack för intressanta länkar, betvivlar inte att jag är utsatt för en mängd inlåsningseffekter. Man får ha mycket ork och kunskap idag om man ska undvika de stora aktörernas negativa sidor.

Permalänk
Medlem
Skrivet av Yoshman:

Att Firestorm kan emulera x86 snabbare än alla Skylake/Zen2 baserade modeller avsedda för bärbara datorer indikerar rätt mycket att Intel helt tappat initiativet, när den kör ARM64 är den snabbare än någon annan CPU räknat per kärna. Som en vis man en gång sa: allt är relativt, att AMD klivit förbi Intel är primärt mer än effekt av Intels brist på utveckling än något annat.

Det där att emuleringen (eller översättningen egentligen) är så snabb beror väldigt mycket på något som kallas "tagged pointers" och hur de används olika. "Tagged pointer" är bara att gömma en variabel inuti en programpekare - de mellersta delarna av en 64-bitars minnesadress, närmare bestämt - och har gått att göra på MacOS i några år nu. Ganska smart sätt att undvika en minnesaccess om det bara är ett kort tal. Poängen är att Apple använder det för att hålla koll på sina reference counts (=hur många objekt som använder ett objekt X, så att runtimen kan ta bort X när det inte längre behövs) i Objective C-runtimen. Eftersom dessa reference counts uppdateras precis hela tiden, finns det mycket tid att spara där. Detta funkar dock bara på ARM64, av någon anledning. När Apple översätter på det här sättet kan man använda det tricket även på x86-kod, så runtimen går snabbare (i antal cykler).

Lite mer detaljer om tagged pointers och hur det fungerar:

https://www.mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and...

Apple verkar också ha lagt in regler i branch predictorn för att känna igen objc_msgsend och hur den brukar fungera. Man kan göra mycket kul om man kontrollerar allt...

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av Trunk:

Krångligt? Nej.

Onödigt krångligt? Ja.

Här är jag lite kluven. Det är onekligen så att nätet blir alltmer osäkert för varje dag som går, och om alternativet är Norton Antivirus så tar jag Gatekeeper alla dagar i veckan. Däremot tycker jag ibland att Apple går för långt i sin envishet att blockera kryphål. Än så länge kan man stänga av allt sånt där, och allt tyder på att man kommer att fortsätta kunna göra det. I så fall är det OK, även om jag naturligtvis hade föredragit om vi sluppe all sån skit.

Citat:

Jag har haft en mbp i bokstavligt talat halva mitt liv men jag blir mer och mer tveksam till om min nästa bärbara kommer bli en mac. Det är för många saker som för mig är viktigt som de försämrar.

Men jag ska erkänna att man blir ju lite sugen på en M2-dator (eller vad de nu kommer kalla nästa chip).

Det här håller jag egentligen alldeles med om. Jag har kört Macar som en av mina datorplattformar sen 80-talet (jag har dock aldrig varit helt trogen mot dem, utan haft andra prylar där det passar) och just nu utvecklas MacOS och stora delar av Macens hårdvara åt ett håll jag inte gillar. Får se hur jag gör med det där nästa gång. Fördelen är ju naturligtvis att de håller så länge, så det är inte bråttom att bestämma sig.

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av Trunk:

Krångligt? Nej.

Onödigt krångligt? Ja.

Såpass krångligt att många av deras användare inte vet hur man ska göra? Ja.

Om folk måste googla för att lista ut hur man ska installera ett program så är det något som är otroligt jävla fel.

Jag har haft en mbp i bokstavligt talat halva mitt liv men jag blir mer och mer tveksam till om min nästa bärbara kommer bli en mac. Det är för många saker som för mig är viktigt som de försämrar.

Men jag ska erkänna att man blir ju lite sugen på en M2-dator (eller vad de nu kommer kalla nästa chip).

Personligen så tycker jag att det är en positiv utveckling, kanske är skadad eftersom jag jobbar med IT-säkerhet. Samma fenomen finns i Windows, har flera gånger fått disablea Defender för att installera ett program som Microsoft tycker är opassande.

Visa signatur

7800X3D | RTX 4080 Super | 32GB DDR5 | LG 48 C1 OLED

Permalänk
Datavetare
Skrivet av mpat:

Det där att emuleringen (eller översättningen egentligen) är så snabb beror väldigt mycket på något som kallas "tagged pointers" och hur de används olika. "Tagged pointer" är bara att gömma en variabel inuti en programpekare - de mellersta delarna av en 64-bitars minnesadress, närmare bestämt - och har gått att göra på MacOS i några år nu. Ganska smart sätt att undvika en minnesaccess om det bara är ett kort tal. Poängen är att Apple använder det för att hålla koll på sina reference counts (=hur många objekt som använder ett objekt X, så att runtimen kan ta bort X när det inte längre behövs) i Objective C-runtimen. Eftersom dessa reference counts uppdateras precis hela tiden, finns det mycket tid att spara där. Detta funkar dock bara på ARM64, av någon anledning. När Apple översätter på det här sättet kan man använda det tricket även på x86-kod, så runtimen går snabbare (i antal cykler).

Lite mer detaljer om tagged pointers och hur det fungerar:

https://www.mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and...

Apple verkar också ha lagt in regler i branch predictorn för att känna igen objc_msgsend och hur den brukar fungera. Man kan göra mycket kul om man kontrollerar allt...

Det kan absolut vara positivt för Obj-C och Swift prestanda, men finns ju ingen möjlighet för Apple att utnyttja det i kod som översätts från x86_64 (där alla sådana trick är borta då det inte går att representera i x86_64 maskinkod) till LLVM-IR för att sedan översättas till ARM64 (vilket är vad Rosetta 2 gör).

Om det skulle vara någon relevant förklaring skulle också prestandafördel för Firestorm vara mindre i C, C++, Rust m.fl. som normalt inte använder motsvarande teknik samt miljöer med tracing GC som JavaScript, Java, C# m.fl. Där jag sett största fördel för Firestorm över Skylake/Zen2 är NodeJS (JavaScript för back-end), men svårt att veta med ObjC/Swift då det ytterst sällan används utanför iOS/MacOS (fast stödet finns, körde morgonens Advent of code i just Swift, fast på Ubuntu+Emacs).

TL;DR en mycket sannolikare förklaring verkar vara att Intels/AMDs designteam rätt mycket är clowner jämfört med Apples. Åter igen, glaset halvfullt så är det bra för det betyder att det rimligen borde finnas en hel del att hämta även om man är fast på x86_64!!!

Visa signatur

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

Permalänk
Medlem
Skrivet av walkir:

Lite OT, men alla dessa länkningar och "optimeringar" skrämmer mig.

"More money for Google, less money for the actual content creator."

Har liknande utmaning med Facebook, som spårar allt som sker via Messenger, Instagram etc. Alla länkar jag får till mig via deras tjänster skickar mig först till Facebook för att sedan dirigeras vidare.

Jag försöker slå mig fri från Googles och Facebooks herravälde genom att exempelvis använda DuckDuckGo. Men då DuckDuckGo inte ger önskade resultat vid sökningar på svenska, så faller jag tillbaka till Google och fortsätter min onda cirkel (och föder Google med mer och mer data).

Ganska skrämmande utveckling att se att exempelvis många svenska myndigheter har Google och Bing som förvalda sökmotorer. Gissar på att övriga företag har en liknande situation. "More data, more power" ...

Många är rädda för Huawei som spionerar på företag, men samtidigt så låter vi Google, Facebook, Microsoft och Apple kartlägga våra liv utan minsta eftertanke.

Det finns tillägg i stil med ClearURLs som rensar bort mycket av URL trackingen som läggs dit.

Permalänk
Medlem
Skrivet av Penguin:

Det finns tillägg i stil med ClearURLs som rensar bort mycket av URL trackingen som läggs dit.

Tack för tipset! Önskar det vore lika lätt på mobilen, där vissa banktjänster tvingar mig till specifika webbläsare idag.

Permalänk
Medlem
Skrivet av Yoshman:

Det kan absolut vara positivt för Obj-C och Swift prestanda, men finns ju ingen möjlighet för Apple att utnyttja det i kod som översätts från x86_64 (där alla sådana trick är borta då det inte går att representera i x86_64 maskinkod) till LLVM-IR för att sedan översättas till ARM64 (vilket är vad Rosetta 2 gör).

Apple har talat mycket om hur allt bygger på att de cachar en massa översatt kod, så att de inte behöver översätta varenda gång. Således måste de kunna känna igen kod, för att kunna matcha den mot tidigare översatt. Då borde de kunna känna igen sin egen runtime, om den har kompilerats med en kompilator de distribuerar, så att de kan köra en optimerad version av den runtimen.

Citat:

Om det skulle vara någon relevant förklaring skulle också prestandafördel för Firestorm vara mindre i C, C++, Rust m.fl. som normalt inte använder motsvarande teknik samt miljöer med tracing GC som JavaScript, Java, C# m.fl. Där jag sett största fördel för Firestorm över Skylake/Zen2 är NodeJS (JavaScript för back-end), men svårt att veta med ObjC/Swift då det ytterst sällan används utanför iOS/MacOS (fast stödet finns, körde morgonens Advent of code i just Swift, fast på Ubuntu+Emacs).

Javascript har Apple speciella optimeringar för i sitt kisel (som den lustiga lilla egenheten att skiten använder doubles till allt), det vet jag att jag sett tester på tidigare. Där är säkert fördelen mot x86 större. Är prestandan på emulerad C-kod så fantastisk? Det har jag inte sett, men jag har inte följt det i sådan detalj.

Citat:

TL;DR en mycket sannolikare förklaring verkar vara att Intels/AMDs designteam rätt mycket är clowner jämfört med Apples. Åter igen, glaset halvfullt så är det bra för det betyder att det rimligen borde finnas en hel del att hämta även om man är fast på x86_64!!!

Jag har alltid svårt att tro på förklaringar som att "alla andra är idioter". Om det är svårt att kräma ur mer prestanda ur x86 så OK, det kan jag köpa. Om Apple just nu ligger en nod eller t.o.m två före - absolut, det påverkar. Om Apple tjänar på en tightar integration med mjukvaran - varför inte? Att Apple's folk är så mycket bättre? Nej. Att tro att Intel skulle ta ledningen på en generation om de bara anställde Johny Srouji, det känns som för mycket. Apple är inget fängelse, folk byter jobb därifrån till andra utvecklare då och då.

Visa signatur

5900X | 6700XT

Permalänk
Medlem

Kommer man framöver kunna bygga en PC med en ARM CPU på samma sätt som man nu kan bygga med x86? Tänker med lösa moderkort, grafikkort, minnen, etc. Eller blir det troligen fastlödda saker med eventuellt SoC?

Visa signatur

JJ2 Multiplayer
JJ2 ZStats

[1] Ryzen 5800X | 5500XT | Kingston A2000 | Lenovo G24-10 144Hz [2] Ryzen 5700G | RX 560 | WD Blue SN550 [3] Ryzen 5600G | Kingston A2000 [4] Ryzen 3600 | GT 740 | 850 EVO [5] Ryzen 3600 | Geforce 405 | 850 EVO (alla är i bruk)

Permalänk
Medlem
Skrivet av moire:

X1 kommer bli bättre men Apple kommer bara utöka sitt ledarskap här! De har nu som första bolag kontroll över hela kedjan (för relevanta produkter) och kan optimera alla parametrar! Genom sina uppköp och rekryteringar inom processor utveckling ligger de även långt framme i kunnandet här.

Apple kommer bara bli bättre nu! Hoppas detta ger Microsoft och ARM konkurrenterna rejält med eld i baken!

"People who are really serious about software should make their own hardware." - Steve Jobs

Visa signatur

Att förespråka Mac på Swec är som att förespråka hybridbilar på en raggarträff i Mora.

Permalänk
Datavetare
Skrivet av mpat:

Apple har talat mycket om hur allt bygger på att de cachar en massa översatt kod, så att de inte behöver översätta varenda gång. Således måste de kunna känna igen kod, för att kunna matcha den mot tidigare översatt. Då borde de kunna känna igen sin egen runtime, om den har kompilerats med en kompilator de distribuerar, så att de kan köra en optimerad version av den runtimen.

Den beskrivningen jag sett om Rosetta 2 är att den bygger på binary lifting. D.v.s. man tar hela x86_64 programmet och "kompilerar det baklänges" till LLVM-IR. Det man har med LLVM-IR är rätt samma sak som hur shaders distribueras i moderna spel (där kör man SPIR-V med Vulkan eller DXIL med DX12, båda använder internt LLVM så SPIR-V och DXIL är båda varianter av LLVM-IR). När man har LLVM-IR har man egentligen en binär som kan köras på alla CPUer där det finns en LLVM-backend, vilket i stort sätt är alla idag relevanta CPU-arkitekturer.

I framtiden kanske det skulle vara vettigt att även "vanlig" program skeppas som LLVM-IR, för inom ramen av LLVM-IR skulle det vara fullt möjligt att behålla den meta-data som krävs för t.ex. effektiv användning av tagged-pointers på ARM64.

Att gå från källkod->LLVM-IR->ARM64 (vilket är den normala processen för C/C++/Swift på MacOS) är mer effektivt än källkod->LLVM-IR->x86_64->LLVM-IR->ARM64 (vilket är vägen man tar med Rosetta 2). De två LLVM-IR fallen innehåller olika kod, men de representerar samma logik. Det man får från x86_64->LLVM-IR steget är av sämre kvalité då man inte har lika mycket information om saker på högre nivå, t.ex. de du beskrev om pekare i ObjC/Swift.

Skrivet av mpat:

Javascript har Apple speciella optimeringar för i sitt kisel (som den lustiga lilla egenheten att skiten använder doubles till allt), det vet jag att jag sett tester på tidigare. Där är säkert fördelen mot x86 större. Är prestandan på emulerad C-kod så fantastisk? Det har jag inte sett, men jag har inte följt det i sådan detalj.

Apples egna JS motor i Safari har helt klart raketer anslutna, framförallt när den körs på M1. Fast jag körde med NodeJS byggd från source, det är samma C++ källkod baserad på Google V8-motor som används på alla andra system där NodeJS finns.

Prestandan på "emulerad" (översatt) C-kod är i absoluta termer inte fantastisk, både Tiger Lake och Ryzen 5000 presterar bättre. Den är också 60-80 % av motsvarande program direkt kompilerad till ARM64 (d.v.s. kod->LLVM-IR->ARM64, Apples officiella kompilator är LLVM baserad).

Däremot givet att det faktiskt handlar om översatt kod och givet att "ingen" (inklusive jag själv) trodde det var realistiskt att någon skulle skapa en CPU körande något som inte är x86_64 som är kapabel att emulera x86_64 i samma hastighet som toppmodellerna från AMD/Intel (vilket är fallet om man håller sig inom segmentet för bärbara) så är prestandan på saker emulerade genom Rosetta 2 definitivt fantastisk.

Skrivet av mpat:

Jag har alltid svårt att tro på förklaringar som att "alla andra är idioter". Om det är svårt att kräma ur mer prestanda ur x86 så OK, det kan jag köpa. Om Apple just nu ligger en nod eller t.o.m två före - absolut, det påverkar. Om Apple tjänar på en tightar integration med mjukvaran - varför inte? Att Apple's folk är så mycket bättre? Nej. Att tro att Intel skulle ta ledningen på en generation om de bara anställde Johny Srouji, det känns som för mycket. Apple är inget fängelse, folk byter jobb därifrån till andra utvecklare då och då.

Jag trodde definitivt inte själv att Intel/AMD drog benen efter sig. Innan Apple fanns det inte heller något som visade motsatsen.

Apple köpte PA-semi som startskott för deras CPU-satsning. PA-semi hade redan när de pillade med PowerPC designer som radikalt skilde sig från andra, men dels han de inte få ut så mycket av de coola sakerna de jobbade med, dels är PowerPC en ISA som ställd mot x86_64 har för- och nackdelar (ARM64 är rätt unik i att den egentligen inte har någon egenskap som gör den sämre än någon annan existerande ISA, Arm slog verkligen bollen ur stadion) men framförallt var det PA-semi hade tidigt väldigt lågt klockat vilket även längde gällde ARM64 designerna. Ändå var man hela tiden i framkant jämfört med andra mobil SoC.

Huvudpoängen här är: har väldigt svårt att se hur hela Apples försprång kan förklaras med ARM64, de ligger på rätt exakt dubbla prestanda per MHz mot Skylake/Zen2 och tog AMD/Intel två decennier att dubbla deras IPC till var de är idag. Ryktet gör som sagt gällande att Golden Cove ska upp ~50 % mot Skylake medan Ocean Cove (antar att det är första på 7 nm) ska upp ~80 % mot Skylake.

Innan Apples framfart hade jag varit väldigt skeptiskt till att det ens vore möjligt. Nu känns det mer som, det måste vara möjligt och varför har det inte hänt innan?

Om allt går som respektive företag förväntas sig under 2021 kommer ju även Arm, eller rättare sagt de som kommer bygga saker med Arms Neoverse N2, klart kliva förbi AMD/Intel på serversidan. Visst x86_64 är gammalt, men är det verkligen möjligt att förklara hela skillnaden bara genom ISA? Om svaret faktiskt är "ja" så är det verkligen så att ju snabbare x86 dör desto bättre, men har svårt att tro att fördelen verkligen är stor och förklaringen delvis kanske ligger i att AMD och Intel sneglat för mycket på varandra (för vem annan skulle de titta på för 5-10 år sedan?) och missat en den av de trender "uppstickarna" plockat upp.

Edit: det finns ett rykte kring varför Rosetta 2 presterar så pass bra som det ändå gör, förutom ISA finns en annan sak som radikalt skiljer sig mellan x86_64 och ARM64: minneskonsistensmodell. Är väldigt svårt att effektivt emulera x86_64 på ARM64, det omvända är lättare. Ryktet säger att Apples M1 implementerar två minneskonsistensmodell

  • normalt används ARM64 modellen, den är "optimal" i bemärkelsen att den på instruktionsnivå är en perfekt match till vad språk som C/C++/Java/C#/Rust m.fl. behöver för sina modeller

  • i Rosetta 2 används en modell kompatibel med x86, d.v.s. TSO (en väldigt välstuderad modell då den dels är lätt för människor att förstå, dels används den av x86 och SPARC)

Om det är sant tappas en del av prestandan där, ARM64 modellen tillåter mer parallellism (högre IPC) men finns inget sätt att översätta x86_64 maskinkod till optimal ARM64 då information gått förlorad i översättningen från LLVM-IR till x86_64.

Visa signatur

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

Permalänk
Medlem

Blir en mac mini 2nd gen för mig sen.

Visa signatur

I5 9600k@stock / Cooler Master Evo 212 / Gigabyte Z390 Gaming X / Corsair Vengeance LPX 16GB DDR4 3000MHz / MSI RTX2070 Gaming Z / EVGA 550 BQ / Asus VG27BQ 27" 165Hz

Ryzen 5 5600x@stock / Asus Rog Strix X570-E Gaming / Corsair Vengeance RGB Pro 16GB 3600MHz CL18 / MSI RTX3070 Suprim X / BeQuiet Pure Power 11 600W / Asus VG278Q 27" 144Hz