Apple Macbook Air med M1 imponerar i första resultat

Permalänk
Datavetare
Skrivet av Söderbäck:

@yoshman:

På ett högst teoretiskt plan - vad är möjligheten för x86 att göra en "fresh start"? Som det ARM gjorde vid 64övergången. Säg X86v2 - typ.
Om vi bortser från mer praktiska problem så som frågan om vem som skulle leda det här när Intel/AMD delar licenser and all that. Och kompabilitetsproblemen som lär bli minst sagt kännbara.
Finns det en väg fram här för X86 framöver liksom?
Eller är det menlöst att spinna vidare den bollen ändå? Kanske lika gärna kan börja om från ny kula för någon annan arkitektur i så fall?

Jag är en SW-person, inte HW-person. Tänkte på det när jag lyssnade på Intel och AMD intervjuerna igår, där pratade HW-människor som inte är SW-personer (kort och gott, ibland var de i spenaten vilket jag lär vara för HW till och från).

Men i grunden finns i alla fall två stora problem med x86_64 som inte finns i ARM64

  1. ARM64 hanterar minneskonsistensen mellan saker som kör på olika CPU-trådar på ett sätt som skalar bättre med stort antal kärnor. Detta kan absolut fixas i x86 om man skippar bakåtkompatibilitet, metoden man har nu råkar bara vara något man tyckte kändes rätt för ~30 år sedan när det definieras (när första dual-socket x86 dök upp)

  2. ARM64 har fix storlek på alla instruktioner, de är 4 bytes vilket gör det trivialt att hitta gränserna mellan instruktionerna, vilket gör det möjligt för Apple att avkoda 8 instruktioner per cykel. x86 instruktioner är 1-15 bytes, idag är det bara nackdelar för genomsnittligs längden på en instruktion passerar ofta 4 bytes idag så x86_64 program är något större än motsvarande ARM64. Fixar man detta är det inget kvar av x86.

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

Skulle det vara möjligt för säg AMD att göra en ARM lösning med hyfsad x86 kompatibilitet utan att offra för mycket? Eller är de för olika? T.ex. en CCD med ARM och en CCD med x86? Jag spånar friskt här. Det blir förstås en högre kostnad.

Permalänk
Medlem

Förstår inte hur så många jämför x86 CPU:er mot ARM CPU:er... Det är inte på något sätt en rättvis jämförelse.

Vi kommer röra oss mer och mer ifrån x86, men det kommer vara en långsam övergång. Det finns inget som stoppar Intel, AMD etc. att göra ARM eller RISC-V CPU:er, och när de gör det, kommer man kunna se liknande förbättringar för dem.

Sen ska man inte glömma heller att medans det är imponerande teoretisk prestanda för att vara så liten och effektiv, så betyder det inte att man lätt kan skala upp det så det motsvarar en högpresterande CPU som Ryzen 5000 serien. Det har alltid varit ett problem för ARM.

Hur länge det tar innan man kan använda ARM effektivt, beror på ens behov. Kommer ta något/några år innan man faktiskt effektivt kan använda den till något som behöver hög beräkningskraft, och om man vill spela spel, så kommer AMD och Intel (x86) att äga den biten i många många många år till.

Permalänk
Medlem

Min gamla dator med i7 2700k drar 95 watt och har en geekbenchscore 814 singlecore, 3090 multicore. Jämfört med M1's 1719 singlecore och 6967 multicore är rätt fantastisk, mer än dubbelt snabb och drar bara 10 watt. Runt 20-25 gånger mer energieffektivt. Allt detta i en liten lätt bärbar dator jämfört med min 932 HAF lådsystem/dator. Fantastisk teknikutveckling, men lite oroande att Apple låser in systemen. Skulle vilja ha mer fria system. Tänk om Intel/AMD/Nvidia eller andra processorföretag kunde komma upp med ett bättre alternativ, som stöder fria system. Tror att det behövs mer konkurrens i 10-15w segmentet nu med bättre alternativ.

Visa signatur

Dator 1: ASUS P8Z77-V PRO, MSI GTX 1060 3GB OC, Intel 2700K @stock, CM Hyper 212+, HAF 932 Advanced + DemcifleX filters, 4x4(16)gb Vengeance LP 1866 CL9, G400 mus, LG IPS236V IPS, 1TB Samsung F3 HDD, Samsung EVO 1TB SSD, TP-Link 300mbps 802.11n PCI, Realtek Gbit PCI, Logitech C270 webcam.
Dator 2: Laptop Acer 5742G (8GB RAM, NVIDIA 540M, Bluray, Samsung EVO 500GB SSD)

Permalänk
Medlem
Skrivet av Fulci:

Skulle det vara möjligt för säg AMD att göra en ARM lösning med hyfsad x86 kompatibilitet utan att offra för mycket? Eller är de för olika? T.ex. en CCD med ARM och en CCD med x86? Jag spånar friskt här. Det blir förstås en högre kostnad.

Vad skulle vinsten vara? Släpa runt på den döende åsnan ett tag till?
Jag säger som Mandalorian om Apples väg: ”This is the way!”

Visa signatur

Dator: Mac

Permalänk
Medlem
Skrivet av Hevin:

Förstår inte hur så många jämför x86 CPU:er mot ARM CPU:er... Det är inte på något sätt en rättvis jämförelse.

Vi kommer röra oss mer och mer ifrån x86, men det kommer vara en långsam övergång. Det finns inget som stoppar Intel, AMD etc. att göra ARM eller RISC-V CPU:er, och när de gör det, kommer man kunna se liknande förbättringar för dem.

Sen ska man inte glömma heller att medans det är imponerande teoretisk prestanda för att vara så liten och effektiv, så betyder det inte att man lätt kan skala upp det så det motsvarar en högpresterande CPU som Ryzen 5000 serien. Det har alltid varit ett problem för ARM.

Hur länge det tar innan man kan använda ARM effektivt, beror på ens behov. Kommer ta något/några år innan man faktiskt effektivt kan använda den till något som behöver hög beräkningskraft, och om man vill spela spel, så kommer AMD och Intel (x86) att äga den biten i många många många år till.

Vi jämför för att Apples ARM är uppe och nosar på Intel och AMD top-of-the-line desktop CPU:er, Single Core får de redan smisk, återstår Multi Core. På vilket sätt är det inte en rättvis jämförelse?

Apple’s lilla M1 slår redan ”högpresterande CPU som Ryzen 5000 serien” 5950X i Single Core prestanda.

Tror det tar ungefär till slutet av nästa vecka innan folk faktiskt effektivt kan använda den till något som behöver hög beräkningskraft.

Spel håller jag med dig! Men det är för XBX/PS5 har x86 CPU:er.

Visa signatur

Dator: Mac

Permalänk
Medlem
Skrivet av Mindfighter:

Vad skulle vinsten vara? Släpa runt på den döende åsnan ett tag till?
Jag säger som Mandalorian om Apples väg: ”This is the way!”

Vinsten skulle vara att ha bakåtkompatibilitet. Det är trots allt program man säljer systemen med. Det finns en anledning att jag spelar på Windows PC och inte Linux PC. Skulle alla spel fungera på Linux också skulle jag aldrig använda Windows.

Permalänk
Medlem
Skrivet av Mindfighter:

Vi jämför för att Apples ARM är uppe och nosar på Intel och AMD top-of-the-line desktop CPU:er, Single Core får de redan smisk, återstår Multi Core. På vilket sätt är det inte en rättvis jämförelse?

Apple’s lilla M1 slår redan ”högpresterande CPU som Ryzen 5000 serien” 5950X i Single Core prestanda.

Tror det tar ungefär till slutet av nästa vecka innan folk faktiskt effektivt kan använda den till något som behöver hög beräkningskraft.

Spel håller jag med dig! Men det är för XBX/PS5 har x86 CPU:er.

Man kommer inte långt med single core prestanda.

Det är imponerande resultat, förstå mig rätt, men det handlar mer om x86 vs ARM och inte AMD/Intel vs Apple.

Min poäng var att de slår inte någon i multi-core än, och det är inte självklart att de kommer komma ifatt där väldigt lätt. Det skalar nämligen inte på det sättet.

Sen tror jag inte folk riktigt förstår att program inte bara stödjs automatiskt på ARM och med bra prestanda. Det är inte bara mjukvara ens. Om dessa CPU:er hade sålts löst som för en PC, så hade du inte bara kunnat sätta ihop en dator och koppla in ett AMD eller Nvidia grafikkort eller något. De stödjs inte av ARM. Emulering som Apple pushar mycket, får inte magiskt någon bra prestanda.

Så det handlar mindre om hur snabbt Apple jobbar, och mer om hur alla utvecklare av mjukvara som måste jobba hårt. De kommer inte fokusera 100% på ARM och bara släppa x86 där typ alla användare är.

Att x86 för spel kommer leva vidare länge har inte bara med konsollerna. Ser inte att majoriteten av spel finns för ARM inom de närmsta 8 åren.

Permalänk
Medlem
Skrivet av Yoshman:

Jag är en SW-person, inte HW-person. Tänkte på det när jag lyssnade på Intel och AMD intervjuerna igår, där pratade HW-människor som inte är SW-personer (kort och gott, ibland var de i spenaten vilket jag lär vara för HW till och från).

Men i grunden finns i alla fall två stora problem med x86_64 som inte finns i ARM64

  1. ARM64 hanterar minneskonsistensen mellan saker som kör på olika CPU-trådar på ett sätt som skalar bättre med stort antal kärnor. Detta kan absolut fixas i x86 om man skippar bakåtkompatibilitet, metoden man har nu råkar bara vara något man tyckte kändes rätt för ~30 år sedan när det definieras (när första dual-socket x86 dök upp)

  2. ARM64 har fix storlek på alla instruktioner, de är 4 bytes vilket gör det trivialt att hitta gränserna mellan instruktionerna, vilket gör det möjligt för Apple att avkoda 8 instruktioner per cykel. x86 instruktioner är 1-15 bytes, idag är det bara nackdelar för genomsnittligs längden på en instruktion passerar ofta 4 bytes idag så x86_64 program är något större än motsvarande ARM64. Fixar man detta är det inget kvar av x86.

Så enligt dig kan man säga att x86 är körd?

Är ju lite märkligt i så fall att Intel och AMD ser ut att klamra sig fast. Tror dom att man inte kommer överge dom? Eller har dom inget val än att fortsätta mot avgrunden? Eller lever dom i förnekelse?

Kan man ju bara spekulera i men hade varit intressant att veta vad Intel/AMD tycker om utvecklingen och hur dom tänker svara mot den.

Sen är väl bärbart lite skillnad mot stationärt? I bärbara har du ytan att ta hänsyn till vilket du inte har på samma sätt i stationära.

Enligt något rykte jag såg så kommer kretsen till Alder Lake bli större till ytan än tidigare...

Visa signatur

Chassi : BitFenix Prodigy Svart mITX Moderkort : Asus P8Z77-I DELUXE mITX CPU : Intel Core i7 3770K RAM : Crucial 16GB (2x8192MB) CL9 1600Mhz Ballistix Sport

Permalänk
Medlem
Skrivet av Yoshman:

Jag är en SW-person, inte HW-person. Tänkte på det när jag lyssnade på Intel och AMD intervjuerna igår, där pratade HW-människor som inte är SW-personer (kort och gott, ibland var de i spenaten vilket jag lär vara för HW till och från).

Men i grunden finns i alla fall två stora problem med x86_64 som inte finns i ARM64

  1. ARM64 hanterar minneskonsistensen mellan saker som kör på olika CPU-trådar på ett sätt som skalar bättre med stort antal kärnor. Detta kan absolut fixas i x86 om man skippar bakåtkompatibilitet, metoden man har nu råkar bara vara något man tyckte kändes rätt för ~30 år sedan när det definieras (när första dual-socket x86 dök upp)

  2. ARM64 har fix storlek på alla instruktioner, de är 4 bytes vilket gör det trivialt att hitta gränserna mellan instruktionerna, vilket gör det möjligt för Apple att avkoda 8 instruktioner per cykel. x86 instruktioner är 1-15 bytes, idag är det bara nackdelar för genomsnittligs längden på en instruktion passerar ofta 4 bytes idag så x86_64 program är något större än motsvarande ARM64. Fixar man detta är det inget kvar av x86.

Med bakåtkompatibiliteten menar du då all programvara fram till idag som kan köras på x86?

Visa signatur

Hata postsorteringen i Ånge.

Permalänk
Medlem
Skrivet av shogun-r:

Är ju lite märkligt i så fall att Intel och AMD ser ut att klamra sig fast. Tror dom att man inte kommer överge dom? Eller har dom inget val än att fortsätta mot avgrunden? Eller lever dom i förnekelse?

Inte ett dugg märkligt, det handlar om den bristfälliga mänskliga naturen. Kom ihåg att majoriteten av världen företag styrs av ekonomer och när en ekonom tittar på situationen så ser de att de investerat X antal miljarder i forskning och utveckling av x86-plattformen och de vill ha avkastning på den investeringen. Därför kommer dessa bolag att klamra sig fast och kämpa för sina älskade marknadsandelar o.s.v.

Fundera en stund över hur Apple hanterar situationen ovan.
#18722316

Sen har vi bolag som drivs av Visionärer istället för ekonomer, exempel på det är Apple, Tesla, SpaceX o.s.v. Jag trodde personligen Apple skulle förpassas till en bisats av historien när Steve Jobs gick bort, men han verkar ha lyckats med något som få andra lyckats med tidigare. Att skapa en så pass stark företagskultur i hans anda så de därmed inte är rädda för att släppa ett spår och växla in på ett helt annat om de ser potential.

Visa signatur

Dator: Mac

Permalänk

Visst Apples M1 är väldigt snabb och imponerande men
Single core
1719 vs 1590 (i7-1185G7) alt 1230 (Ryzen-4700U)
Multi core
6967 vs 6060 (i7-1185G7) alt 6300 (Ryzen-4700U)
Är väldigt långt i från x2,5 i prestanda, om M1 hade varit så snabb som Apple sa skulle den haft ~3000-4000 i single core.
Men man kanske jämförde med Macbooks från 2017-2018?
Om något så tycker jag multi core prestandan är mer imponerande än single core med tanke på så lite TDP som M1:an har.

Sedan har x86-x64 mycket kvar att ge. Det är trots allt en instruktionsuppsättning, inte en hårdvarudesign.
x86-x64 innehåller en stor mängd instruktioner (CISC liknande) både gamla och nya, olika storlekar 1-15 bytes som Yoshman sa. Detta gör att avkodning och parallell körning av dessa instruktioner blir mera komplicerat än t ex ARM64.

Men Intel ligger på 10nm inte 5nm, och om Intel designade en CPU på 5nm med dubbelt antal transistorer per kärna så skulle Intel kunna lägga in flera exekveringsenheter, bättre instruktionsavkodning, större cache m.m. och prestandan skulle bli betydligt bättre. Det samma gäller så klart AMD som också kommer att komma med en mobil variant av 5000 serien som kommer ha bra drag i multi core och bra single core prestanda.

Sedan är de program (Visual Studio, SQL Server, Vmware, Spel m.m.) jag primärt kör på Windows plattformen eventuellt Linux och då spelar det ingen roll att Apple är 8% snabbare i CPU prestanda.

Permalänk
Datavetare
Skrivet av Fulci:

Skulle det vara möjligt för säg AMD att göra en ARM lösning med hyfsad x86 kompatibilitet utan att offra för mycket? Eller är de för olika? T.ex. en CCD med ARM och en CCD med x86? Jag spånar friskt här. Det blir förstås en högre kostnad.

Vill man ha x86 kompatibilitet på en annan mikroarkitektur är det enda vettiga att göra det i programvara, d.v.s. exakt vad Apple gör med Rosetta 2 och Windows on ARM gör (x86_64 emulering kommer till Windows detta kvartal, Microsoft primära problem är att de lanserade sin ARM64 innan de var klara på programvarusidan).

Skrivet av Hevin:

Man kommer inte långt med single core prestanda.

Det är imponerande resultat, förstå mig rätt, men det handlar mer om x86 vs ARM och inte AMD/Intel vs Apple.

Min poäng var att de slår inte någon i multi-core än, och det är inte självklart att de kommer komma ifatt där väldigt lätt. Det skalar nämligen inte på det sättet.

Sen tror jag inte folk riktigt förstår att program inte bara stödjs automatiskt på ARM och med bra prestanda. Det är inte bara mjukvara ens. Om dessa CPU:er hade sålts löst som för en PC, så hade du inte bara kunnat sätta ihop en dator och koppla in ett AMD eller Nvidia grafikkort eller något. De stödjs inte av ARM. Emulering som Apple pushar mycket, får inte magiskt någon bra prestanda.

Så det handlar mindre om hur snabbt Apple jobbar, och mer om hur alla utvecklare av mjukvara som måste jobba hårt. De kommer inte fokusera 100% på ARM och bara släppa x86 där typ alla användare är.

Att x86 för spel kommer leva vidare länge har inte bara med konsollerna. Ser inte att majoriteten av spel finns för ARM inom de närmsta 8 åren.

Hade det bara handlat om aggregerad prestanda skulle x86 ha varit död och begraven för länge sedan. Aggregerad prestanda handlar nästan bara om en enda sak: perf/W. Ju bättre perf/W, ju fler kärnor kan man trycka in i samma krets då det idag är effektbudget som stoppar skalningen av CPUer mer än något annat.

Varför dödade då inte t.ex. SPARC och POWER x86? Båda dessa har haft massor med modeller som fått x86 server-kretsar att se ut som leksaker sett till aggregerad prestanda.

Därför att de aldrig kunnat slå Intels x86 på fingrarna sett till prestanda per kärna. Även på serversidan är väldigt mycket begränsat av någon kritisk del, kritisk del som definitionsmässigt är något man inte kan snabba på genom att slänga fler kärnor på problemet.

Vi har sett flera 32-bitars ARM server-kretsar crash-and-burn. Alla dessa har haft helt OK aggregerad prestanda, långt bättre perf/W än x86, men de har inte varit i närheten sett till prestanda per kärna.

AMDs Zen är inte primärt framgångsrik för att de har fler kärnor än prismässigt motsvarande Intel, Zen är en framgång för man lyckades komma tillräckligt nära Intel i prestanda per kärna för att med Zen3 faktiskt passera.

Så det kritiska med Apples ARM64 är just dess enkeltrådprestanda. Då perf/W är heltalsfaktorer bättre än x86, samtidigt som antal transistorer per CPU-kärna i jämförbar med high-end x86 handlar resten bara om att faktiskt bygga en krets med tillräckligt många kärnor för att även ta över ledartröjan i aggregerad prestanda. Apple verkar inte intresserad av servermarknaden, men redan idag lär Ampere computings 80-kärniga Altera (ARM Neoverse N1 baserad) slå alla existerande x86 CPUer sett till aggregerad prestanda.

För Apples del får vi vänta till de släpper sin ARM64 för MacPro, min gissning är att när den lanseras spelar det inte längre någon roll vad vi jämför i form av desktop CPUer.

Skrivet av shogun-r:

Så enligt dig kan man säga att x86 är körd?

Är ju lite märkligt i så fall att Intel och AMD ser ut att klamra sig fast. Tror dom att man inte kommer överge dom? Eller har dom inget val än att fortsätta mot avgrunden? Eller lever dom i förnekelse?

Kan man ju bara spekulera i men hade varit intressant att veta vad Intel/AMD tycker om utvecklingen och hur dom tänker svara mot den.

Sen är väl bärbart lite skillnad mot stationärt? I bärbara har du ytan att ta hänsyn till vilket du inte har på samma sätt i stationära.

Enligt något rykte jag såg så kommer kretsen till Alder Lake bli större till ytan än tidigare...

På lite längre sikt ser det rätt mörkt ut för x86, å andra sidan brukar alla imperier falla bara man har tillräckligt lång tidshorisont.

På kortare sikt: Windows är tyvärr en rätt rejält garant för att x86 kommer vara relevant ett bra tag till.

Skrivet av Anders Andersson:

Visst Apples M1 är väldigt snabb och imponerande men
Single core
1719 vs 1590 (i7-1185G7) alt 1230 (Ryzen-4700U)
Multi core
6967 vs 6060 (i7-1185G7) alt 6300 (Ryzen-4700U)
Är väldigt långt i från x2,5 i prestanda, om M1 hade varit så snabb som Apple sa skulle den haft ~3000-4000 i single core.
Men man kanske jämförde med Macbooks från 2017-2018?
Om något så tycker jag multi core prestandan är mer imponerande än single core med tanke på så lite TDP som M1:an har.

Sedan har x86-x64 mycket kvar att ge. Det är trots allt en instruktionsuppsättning, inte en hårdvarudesign.
x86-x64 innehåller en stor mängd instruktioner (CISC liknande) både gamla och nya, olika storlekar 1-15 bytes som Yoshman sa. Detta gör att avkodning och parallell körning av dessa instruktioner blir mera komplicerat än t ex ARM64.

Men Intel ligger på 10nm inte 5nm, och om Intel designade en CPU på 5nm med dubbelt antal transistorer per kärna så skulle Intel kunna lägga in flera exekveringsenheter, bättre instruktionsavkodning, större cache m.m. och prestandan skulle bli betydligt bättre. Det samma gäller så klart AMD som också kommer att komma med en mobil variant av 5000 serien som kommer ha bra drag i multi core och bra single core prestanda.

Sedan är de program (Visual Studio, SQL Server, Vmware, Spel m.m.) jag primärt kör på Windows plattformen eventuellt Linux och då spelar det ingen roll att Apple är 8% snabbare i CPU prestanda.

De prestandasiffror Apple nämner är till att börja med PR, så "bästa fall". Det man jämför mot är samma typ av dator, modellen innan i instegskonfiguration. Så 13" MBP med M1 jämförs med sista Intel-baserade 13" MBP med i5, etc.

Bl.a. Intel har tidigare, med fog givet prestandaresultaten, alltid påpekad att allt som betyder något är mikroarkitektur medan ISA bara är ett sätt av flera att representera en visst program. Dels har ingen lyckats göra en ISA som är lika bra eller bättre på varje punkt ställd mot x86 (nu har vi två sådana i ARM64 och RISC-V), dels kunde Intel alltid kompensera för ineffektiviteten då man under väldigt lång tid låg 0,5-2 noder före alla andra.

ARM64 (som är väldigt annorlunda från 32-bitars ARM) är bevisat bra. Apple har ungefär lika många transistorer per kärna som AMD/Intel, men deras design utför nästan dubbelt så mycket per cykel. Arm har bl.a. Cortex A76 som utför lika mycket som Zen2/Skylake, fast där varje kärna tar ~1/3 av kretsytan mot Zen2 på samma TSMC 7 nm.

D.v.s. det är ingen liten skillnad, det är en till två heltalsfaktorers fördel för ARM64. I teorin borde RISC-V kunna vara ungefär lika effektiv som ARM64, men innan vi exakt förstår varför ARM64 verkar så brutalt effekt för att skapa designer med riktigt hög absolut prestanda (32-bitars ARM har aldrig nått i närheten av x86 i absolut prestanda även om perf/W varit lysande) så är det svårt att veta om RISC-V också kommer visa samma egenskaper. Det finns många likheter mellan ARM64 och RISC-V, men finns och ett par skillnader som kan vara relevanta.

Visa signatur

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

Permalänk
Datavetare
Skrivet av anCOOL:

Med bakåtkompatibiliteten menar du då all programvara fram till idag som kan köras på x86?

Exakt. För att ta ett konkret exempel

Antag att du har ett program med två CPU-trådar. Dessa trådar läser/skriver båda till tre globala variabler, A, B och C. Antag att A, B och C initialt är 0.

Antag att tråd#1 gör detta

A = 17 B = 42 C = 1

Medan tråd#2 gör detta

if (C == 1) { print(B) print(A) }

Vi ignorerar de optimeringar kompilatorn kan göra här, vi antar att minnesoperationerna verkligen lagts ut i den ordning som listas här både för x86 och ARM64.

På x86 garanteras att tråd#2 endera inte skriver ut något alls (om tråd#2 kolla värdet på C innan det sätts till 1), eller så skrivs 42 och 17 ut. Det trots att det inte finns någon explicit synkronisering, d.v.s. x86 ger massa garantier som i praktiken är onödiga -> kostar prestanda när flera kärnor jobbar på delad data.

På ARM64 man man få fallet att inget skrivs ut, [0,0], [0,17], [42,0] samt [42,17]. Detta kanske känns konstigt för en människa, men det är faktiskt vad man får i det mest rimliga/effektiva HW-implementationen som inte ger mer garantier än vad som egentligt specificeras här. Alla moderna programspråk har specifika sätt att uttrycka minnesoperationer som har regler relaterad till andra minnesoperationer som hänt före/efter just denna minnsoperation.

"Normala" minnesoperationer står för >99% av alla man gör i ett typiskt program, de kräver ingenting om minnesoperationer som utförs på andra variabler. Vill man få x86 resultatet på ARM64 gör man detta

Antag att tråd#1 gör detta

A = 17 B = 42 C.store(1, release)

Medan tråd#2 gör detta

if (C.load(acquire) == 1) { print(B) print(A) }

ARM64 har en speciell "store" operation som kallas "store-release". Den garanterar att alla minnesoperationer som hände innan denna kommer vara synliga av alla andra kärnor som gör en "load-acquire" och läser det nya värdet som lagras. Så load-acquire är den andra änden, det säger att om man läser det nya värdet som gjorts i en store-release till samma variabel så är man garanterad att alla efterföljande läsningar kommer se de värden i övriga variabler som skrevs innan store-release.

Kan låta komplicerat, men är exakt hur "lås" (mutex/binär-semaphore) fungerar i multitrådade program.

D.v.s. ARM64 är på instruktionsnivå en perfekt match till hur vi idag skriver multitrådade program som behöver dela data mellan trådar. x86 ger massor med garantier som i praktiken inte tillför något i majoriteten av fallen, men man kan inte ändra beteendet då det finns enstaka program som är beroende av hur x86 är specificerad att fungera.

Nästan 100 % fallen när program "fungerar" på x86, men får märkliga buggar vid lite udda tillfällen på ARM64 har programmet ett logisk fel av typen "data-race", men det råkar fungera i 100 % eller nära 100 % på x86 då den har så väldigt lite möjlighet att optimera ordningen för läsning/skrivning mot minne.

Edit: även [0, 0] är så klart möjligt
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:

Vi ignorerar de optimeringar kompilatorn kan göra här, vi antar att minnesoperationerna verkligen lagts ut i den ordning som listas här både för x86 och ARM64.

Vilka minnen, som jag satt slutet av 90 talet och felsökte min C-kod utan att veta vad kompilatorn gjorde. Det var att felsöka microdatorns instruktion för instruktion och upptäcka vad volatile är för något i C.
Så ditt exempel är ej giltigt i praktiken då just kompilatorn optimerar koden så det ej blir ett problem, men det är tydligt och visar ett problem.

Sedan windows är garanten för x86, så har det varit länge. Men datorutvecklingen förändras, som att folk främst idag använder webbläsaren och jobbar emot en server. På serversidan kan man sedan optimera de olika delarna bättre för olika typer av beräkningsenheter.
På klientsidan, ja även om Microsoft Windows var dominerande så kan majoritet idag utföra precis allt sitt arbete på i princip exakt samma gränssnitt vid en mac idag. Detta leder till att Windows dominans väldigt snabbt kan försvinna och detta har Microsoft sedan länge insett och de sysslar idag mest med Software as service.

Permalänk
Medlem

Att CPU:n skulle prestera är inget nytt men den viktiga detaljen som inte uppges i testen och som gissningsvis är att det dröjer väl inte så pass många runs innan cpu måste throttla ner sig. Tycker det är tråkigt att dom inte fick in en fläkt ändå. Mindre kul med 720p camsen dock 2020 för 12,5-25k eller vad nu toppconfigsen går loss för

Visa signatur

7800x3D | 7900 XTX | Custom loop | Samsung Neo G7 | Razer Deathadder Pro v3 | Razer Huntsman | Sennheiser HD 660S | Hifiman Arya Stealth | Denafrips Ares II | Drop THX AAA 789 | Macbook Pro 13" Retina för studier

Permalänk
Medlem
Skrivet av 14ccKemiskt:

Hur i hela friden lyckas Apple, som gör så mycket andra saker, också matcha eller slå AMD och Intel vilka ju inte gör annat (nästan) än att bygga processorer?

Arm vs x86 plus att Apple är det överlägst största it bolaget och har nästan oändligt med resurser. Om de ser nått bolag med intressant teknik kan de köpa upp dem. Samma sak med talangfulla indevider, de har råd att betala mer för att få dem att komma och arbeta för dem istället. Sen så har ju Apple väldigt hög status som företag, så de är nog många som har dem som #1 potentiel arbetsgivare om de fick välja.

Permalänk
Medlem
Skrivet av Hevin:

Hur länge det tar innan man kan använda ARM effektivt, beror på ens behov. Kommer ta något/några år innan man faktiskt effektivt kan använda den till något som behöver hög beräkningskraft, och om man vill spela spel, så kommer AMD och Intel (x86) att äga den biten i många många många år till.

Beror väl på vilket perspektiv man har. Men i antal bör det väl vara betydligt fler som spelar spel på arm än som spelar spel på x86?

Permalänk
Medlem
Skrivet av PlogarN97:

Beror väl på vilket perspektiv man har. Men i antal bör det väl vara betydligt fler som spelar spel på arm än som spelar spel på x86?

Det skulle jag tro med tanke på alla mobilspel.

Permalänk
Medlem
Skrivet av joakim99:

Det skulle jag tro med tanke på alla mobilspel.

Eller Nintendo Switch, Apple TV etc. Tror att behovet av x86/AMD64-plattformen i hemmen kommer vara försvinnande liten bland "svenssons"/average joe framöver. Speciellt med tanke på alla cloudtjänster som finns redan, både för produktivitet a la Azure samt rena speltjänster.

Drömmer redan om en Nintendo Switch med nått liknande M1:an under huven. Kanske något för Sony att snappa upp och släppa en ny PSP?

Av ren nyfikenhet jämförde jag SQ1-processorn i Surface X med M1:an, där SQ1:an lämnar mycket att önska. Inte konstigt att Win32-applikationer gick segt där. Lite som att jämföra en Atom med en i7:a i prestanda (inom samma generation).

Permalänk
Medlem
Skrivet av Yoshman:

Vill man ha x86 kompatibilitet på en annan mikroarkitektur är det enda vettiga att göra det i programvara, d.v.s. exakt vad Apple gör med Rosetta 2 och Windows on ARM gör (x86_64 emulering kommer till Windows detta kvartal, Microsoft primära problem är att de lanserade sin ARM64 innan de var klara på programvarusidan).

Microsofts är inte snabba direkt, kanske beror på allt bagage som finns med Windows. De slutade leverera 32-bit versioner av Windows 10 först tidigare i år t.ex.

Får se om det dyker upp prestandatester med x86 program på Macbook med M1 sen. Borde väl t.ex. gå köra Geekbench och Cinebench i båda versionerna.

Permalänk
Datavetare
Skrivet av Fulci:

Microsofts är inte snabba direkt, kanske beror på allt bagage som finns med Windows. De slutade leverera 32-bit versioner av Windows 10 först tidigare i år t.ex.

Får se om det dyker upp prestandatester med x86 program på Macbook med M1 sen. Borde väl t.ex. gå köra Geekbench och Cinebench i båda versionerna.

Det går absolut att köra x86-versionen av GB5, borde även gå att köra CB för Mac.
Av de läckor som hittat ut runt Rosetta 2 ska program köras på 50-70 % av "native" hastighet, så GB5 poäng på ~1000 poäng är kanske att vänta.

Ska prova själv när min MacMini anländer i slutet av november. Har även beställt MBA som verkar komma rätt snart, tyvärr kan jag inte packa upp den då det är en julklapp

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 Fulci:

De slutade leverera 32-bit versioner av Windows 10 först tidigare i år t.ex.

Microsoft utvecklar fortfarande 32-bitars versionen av Windows 10, men däremot så skickas den inte ut till OEM. Men det är fullt möjligt att exempelvis köra Windows 10 20H2 på en 32-bitars CPU (som min Pentium M från 2005 ).

Permalänk
Medlem
Skrivet av lillaankan_i_dammen:

Vilka minnen, som jag satt slutet av 90 talet och felsökte min C-kod utan att veta vad kompilatorn gjorde. Det var att felsöka microdatorns instruktion för instruktion och upptäcka vad volatile är för något i C.
Så ditt exempel är ej giltigt i praktiken då just kompilatorn optimerar koden så det ej blir ett problem, men det är tydligt och visar ett problem.

Sedan windows är garanten för x86, så har det varit länge. Men datorutvecklingen förändras, som att folk främst idag använder webbläsaren och jobbar emot en server. På serversidan kan man sedan optimera de olika delarna bättre för olika typer av beräkningsenheter.
På klientsidan, ja även om Microsoft Windows var dominerande så kan majoritet idag utföra precis allt sitt arbete på i princip exakt samma gränssnitt vid en mac idag. Detta leder till att Windows dominans väldigt snabbt kan försvinna och detta har Microsoft sedan länge insett och de sysslar idag mest med Software as service.

Ja man kan utföra allt sitt arbete vid en Mac idag och jag ser allt fler på mitt jobb som går över och kör Mac. Visst de har lite mer strul med vissa MS appar men det är bra nog.
Däremot så har jag svårt att se hemanvändare som bara surfar och betalar räkningar köpa en Mac för minst 12k när de kan få en windows dator för 3500:- som klarar det tillräckligt bra.

Permalänk
Medlem
Skrivet av Johan.ka:

Arm vs x86 plus att Apple är det överlägst största it bolaget och har nästan oändligt med resurser. Om de ser nått bolag med intressant teknik kan de köpa upp dem. Samma sak med talangfulla indevider, de har råd att betala mer för att få dem att komma och arbeta för dem istället. Sen så har ju Apple väldigt hög status som företag, så de är nog många som har dem som #1 potentiel arbetsgivare om de fick välja.

Säger absolut inte emot dig att Apple är väldigt stora, tom det största kanske. Men Intel är knappast en liten spelare det heller.

Av det lilla jag letat så har jag fått fram 2019 vinst Intel 42 BUS$, Apple 105 BUS$.

Sedan är knappast pengar och storlek allt som betyder något. Se bara vad "lilla" AMD gjort senaste åren efter att ha varit nästan uträknade.

Visa signatur

Chassi : BitFenix Prodigy Svart mITX Moderkort : Asus P8Z77-I DELUXE mITX CPU : Intel Core i7 3770K RAM : Crucial 16GB (2x8192MB) CL9 1600Mhz Ballistix Sport

Permalänk
Skrivet av Ortovox:

Ja man kan utföra allt sitt arbete vid en Mac idag och jag ser allt fler på mitt jobb som går över och kör Mac. Visst de har lite mer strul med vissa MS appar men det är bra nog.
Däremot så har jag svårt att se hemanvändare som bara surfar och betalar räkningar köpa en Mac för minst 12k när de kan få en windows dator för 3500:- som klarar det tillräckligt bra.

Windows datorerna för 3500kr är skärp. Vill man ner till 13" så är det mest dyra man har att välja på, väljer man standardstorlek 15,6" så finns det flera. Det är ett intressant fenomen att det som vi övriga kallar för standardstorlek är för stort för väldigt många inom Apple världen. Det gäller både mobiler, laptops, skärmar, möss you name it.

Jag skulle säga från runt 6500kr börjar de första vettiga alternativen som denna: https://www.elgiganten.se/product/datorer-tillbehor/barbar-da... Där den för väldigt många är betydligt sämre än en ny Macbook Air på alla sätt och vis.

Angående pris så 12k är inte mycket för en dator. Den billigaste vettiga iPhonen i standardstorlek kostar väl runt 13 000kr. Och laptoppen har många i många år.

För mig handlar köp bara om att det är mycket pengar att lägga ut 20 000kr på en portabel surfdator och jag sparar pengar till annat. Jag tar istället med mig min klumpiga bärbara när jag åker ut, inte helt optimalt, men jag sparar pengar.

Permalänk

Spelar ingen roll hur snabb Mac är ingen vill eller kommer köra MacOS över Windows. Det finns en anledning till att MacOS inte fått större andel på marknaden.

Permalänk
Skrivet av Dinkefing:

Spelar ingen roll hur snabb Mac är ingen vill eller kommer köra MacOS över Windows. Det finns en anledning till att MacOS inte fått större andel på marknaden.

Att fler inte kör mac nu handlar nog främst om kostnad. Operativsystemet på våra datorer får allt mindre betydelse, det en stor del av folket gör är att enbart surfa och använda ordbehandlingsprogram på datorn. Där samma programvaror finns på flera operativsystem och den stora skaran ser inget skillnad på programmen. Vissa newbies säger tom att det är exakt samma Microsoft Office på windows och MacOs.

Permalänk
Medlem
Skrivet av Dinkefing:

Spelar ingen roll hur snabb Mac är ingen vill eller kommer köra MacOS över Windows. Det finns en anledning till att MacOS inte fått större andel på marknaden.

Och här sitter jag och kör macOS som huvudoperativsystem på alla mina datorer för att jag knappt står ut med det lappverk som Windows är Smaken är som baken dvs! Jag skulle snarare gissa på att bristen på andel av OS-marknaden beror på att du behöver hårdvaran också, vilket över lag ligger i det dyrare skiktet. Det finns inga direkt billiga Macar.

Permalänk
Medlem
Skrivet av lillaankan_i_dammen:

Operativsystemet på våra datorer får allt mindre betydelse, det en stor del av folket gör är att enbart surfa och använda ordbehandlingsprogram på datorn.

Min erfarenhet är att vanliga användare som går från ett OS till ett annat ofta stöter på stora problem och gnäller över saker de tagit för givna nu inte finns. Vilket OS det är spelar däremot liten roll för tekniskt insatta användare med erfarenhet från flertalet operativsystem.