Apple M1 – vi synar Apples första ARM-processor i sömmarna

Permalänk
Datavetare
Skrivet av Sysop:

Blir lite förvirrad bara, ARM64 och Aarch64 är samma sak, eller? Första stycket på sidan två använder sig av båda namnen?

Ja och nej

Det officiella namnet är AArch64, men Apple använder konsekvent ARM64 och verkar som allt fler verktyg tar efter den namngivningen.

Så i praktiken är svaret "ja", även om ARM64 inte är det officiella namnet.

Edit: liknande förvirring finns på x86, där ser man både x86_64 och AMD64 men dessa är egentligen två olika men rejält överlappade saker.

32-bitars x86 är enkelt, officiellt heter det IA32 men kallas ofta x86, i386 (eller i686 om man menar PentiumPro eller senare vilket var ett krav för rätt mycket på slutet). 64-bitars x86 har två varianter som faktiskt inte är helt kompatibla (men bara OS-kärnor som behöver bry sig om skillnaderna): AMD64 och Intel64. x86_64 brukar användas för det som är gemensamt mellan AMD64 och Intel64, vilket är allt som gäller "vanliga" program.

32-bitars Arm har en liknande story. Sett från applikationer är det x86-nivå på bakåtkompatibiliteten, är inte hundra på att dagens Arm kan köra kod från första versionen som lanserades 1985 men skulle gissa att så är fallet. ARMv4-ARMv7 är definitivt bakåtkompatibla på applikationsnivå (på OS-nivå finns viss inkompatibilitet, vilket är ett mindre problem då det ändå krävs jobb i OS-kärnan i form av drivrutiner).

ARMv8 är första versionen med 64-bitarsstöd. Värt att notera är att 32-bitarsstöd är en valfritt tillägg i ARMv8. Apple tog bort 32-bitars stödet (AArch32) för tre år sedan, A11 saknade sådan stöd. Från och med nästa generation Cortex A kommer även Arm att ha ARMv8 kompatibla designer som inte längre implementerar AArch32.

De ARMv8 CPU som implementerar AArch32 är bakåtkompatibla minst till ARMv4, så är inte bara för x86 det är viktigt med att stödja existerande program. Det Arm insåg var att man tagit flera beslut från 1985 och framåt som inte alls längre var optimala. Till skillnad från i princip alla tidigare övergångar till 64-bit startade Arm om från scratch.

AArch32 och AArch64 är två helt distinkta ISA, de har ungefär lika mycket gemensamt som t.ex. MIPS och POWER. D.v.s. båda är "RISC", men mycket mer än så har de inte gemensamt.

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

Ja och nej

Det officiella namnet är AArch64, men Apple använder konsekvent ARM64 och verkar som allt fler verktyg tar efter den namngivningen.

Så i praktiken är svaret "ja", även om ARM64 inte är det officiella namnet.

Okej, då är jag lite mindre förvirrad. Tack! 😊

Permalänk
Lyxfällan 🎮
Skrivet av Sysop:

Mycket bra artikel, jag får mina Air imorgon och är sjukt spänd på vad de har att erbjuda.

Blir lite förvirrad bara, ARM64 och Aarch64 är samma sak, eller? Första stycket på sidan två använder sig av båda namnen?

Tack och bock! Precis som @yoshman skriver är Apple sin vana trogna och kallar den egna varianten något annat än det officiella namnet Jag ändrade dock till genomgående Aarch64 i artikeln och nämner att Apple kallar sin variant ARM64 för tydlighetens skull.

Visa signatur

"We're with the press, hired geeks!"
Raoul Duke, Fear n' Loathing in Las Vegas

Permalänk
Medlem
Skrivet av Sysop:

Mycket bra artikel, jag får mina Air imorgon och är sjukt spänd på vad de har att erbjuda.

Grattis! Jag hoppas själv på att hinna få min innan nyår. Hade beställt grundmodellen som jag skickade tillbaka och har en MacBook Air 8C GPU 16GB/512GB på ingång nu.

Permalänk
Medlem
Skrivet av loevet:

Tack och bock! Precis som @yoshman skriver är Apple sin vana trogna och kallar den egna varianten något annat än det officiella namnet Jag ändrade dock till genomgående Aarch64 i artikeln och nämner att Apple kallar sin variant ARM64 för tydlighetens skull.

👍

Skrivet av walkir:

Grattis! Jag hoppas själv på att hinna få min innan nyår. Hade beställt grundmodellen som jag skickade tillbaka och har en MacBook Air 8C GPU 16GB/512GB på ingång nu.

Tack detsamma! 😊

Permalänk
Medlem
Skrivet av elajt_1:

Jag tyckte Linus tech tips visade på att Apples M1 nu kan köra x86-kod genom Rosetta 2, snabbare än Intel och AMD's proppar i vissa fall. Intel behöver ju inte gå ifrån sin x86, men dom hade med sin storlek förmodligen kunnat göra riktigt bra antingen ARM eller egen effektivare arkitektur, där dom emulerar för att vara bakåtkompatibla. Jag vet naturligtvis inte säkert, men med tanke på hur mycket snabbare och effektivare Apples M1 verkar vara jämfört med motsvarande laptop chips, så tycker jag det verkar dumt att hålla kvar vid en arkitektur som förmodligen är riktigt svår att förbättre IPC och effektivitet på i nuläget.
Deras (M1) Macbook Pro klarar köra film lite över 20h. Medan deras Macbook Pro med Intelchip i klarade precis över 11h. Så det finns givetvis anledning att göra något nytt, M1 får nu både dom mobila intel och AMD-chippen att se rätt dåliga ut, både prestanda och effektmässigt.

Intel och AMD sitter ju tyvärr fast i vad Microsoft hittar på. Apple har ju fördelen att styra hela kedjan. Medan Microsoft, Intel och AMD sitter fast i hönan eller ägget. Inget OS för det finns inga chip och inga chip för det finns inget vettigt ARM OS

Permalänk
Datavetare
Skrivet av Chibariku:

Intel och AMD sitter ju tyvärr fast i vad Microsoft hittar på. Apple har ju fördelen att styra hela kedjan. Medan Microsoft, Intel och AMD sitter fast i hönan eller ägget. Inget OS för det finns inga chip och inga chip för det finns inget vettigt ARM OS

Tycker ändå Apple har med stor tydlighet visat minst 3 saker

  • idag är allt relevant utvecklat i "högnivåspråk" (i detta kontext, högnivå != assembler) så det är inte alls speciellt komplicerat att kompilera om ett program från x86_64 till ARM64. Framförallt inte då x86_64 och ARM64 båda är s.k. "little-endian", en hyfsat vanlig felkälla vid övergång mellan PowerPC och x86 var att deras byte-ordning är olika (PowerPC kan stödja little-endian, men nästan alla var big-endian)

  • idag finns verktyg med "helt öppen licens" (BSD-licens) som kan konvertera x86_64 maskinkod till LLVM IR, när man har något på LLVM IR formen kan det i sin tur konverteras till i praktiken vilken annan ISA som helst -> även program man saknar källkod till kan med relativt liten arbetsinsats översättas till en annan ISA (sämre prestanda än att kompilera om, men Apple visade att genom smarta HW-val som TSO stöd i HW kan man öka prestanda en hel del)

  • både Apple och även Arm rimligen visat att ARM64 är en så pass mycket bättre ISA än x86_64 att det ger relevant skillnad i prestanda/effektivitet

Givet punktera ovan, som visar att det finns en kortsiktig lösning för x86_64 kompatibilitet. Intel och/eller AMD skulle mycket väl kunna designa en ny ISA och bygga in lämpligt HW-stöd i kretsen så x86_64 kod översatt till denna nya ISA kan köras minst lika snabbt som den idag körs på deras snabbast CPUer.

Sett till IPC är ju exakt det Apple lyckats med, effektivt sett kör man x86_64 program med högre "IPC" än någon annan CPU. Skriver "IPC", rent tekniskt kör man fortfarande ARM64 med Rosetta 2 även om det är ARM64 genererad x86_64->LLVM IR->ARM64. Det är ändå "magin" för att nå högre effektiv IPC, då man verkar ha slagit i taket för hur mycket ILP som är realistiskt att dynamiskt extrahera ur x86_64 kod. Ett sätt att öka ILP för ett x86_64 program är att göra rätt mycket vad Intel försökte med IA64 (Itanium): gör en långt mer avancerad statisk ILP analys innan programmet körs och koda den informationen i en ny instruktionsuppsättning (i Apples fall ARM64).

Är inte alls ovanligt att bra idéer behöver tid att mogna. Ett exempel är AMDs "Fusion" (Apples M1 är rätt mycket AMDs vision om Fusion nu implementerad på i kisel, på OS-nivå och i all fler program), ett annat är att via kompilatorer exponera mer ILP till HW för att nå riktigt hög IPC, vilket var målet med IA64 (Itanium).

IA64 fallerade av (minst) tre orsaker

  1. att utveckla tillräckligt avancerade kompilatorer visade sig vara långt mer komplicerat att man gissade, än idag gör man framsteg här utanför traditionella CPUer (t.ex. Nvidias CUDA, Intels OneAPI och en lång rad mindre projekt knutna till heterogena system + LLVM)

  2. IA64 använde sig av en form av VLIW (man kallade varianten EPIC, Explicitly Parallel Instruction Computing). VLIW fungerar väldigt bra på några få nischade fall, men det har visat sig vara ett dåligt val för den typ av generella beräkningar vi typiskt gör på CPUer. Nog ingen slump att IA64 egentlige bara lyckade någorlunda väl i vissa superdatorfall.

  3. IA64 lanserades innan "breakdown of Dennard scaling", så absolut enklaste och mest effektiva sättet att öka prestanda per kärna var att skruva upp frekvensen. Idag är enda sättet att få bättre prestanda per kärna högre IPC, x86 är allt annat än optimalt designad för riktigt hög IPC. Även AArch32* fungerar uselt om man vill nå hög IPC, så till skillnad från tidigare där ISA i slutändan alltid varit mindre viktigt än mikroarkitektur har vi nu nått en punkt där ISA är högst relevant

För sista punkten kan man ställa sig frågan: vilka andra ISA lämpar sig för riktigt hög IPC? Möjligen RISC-V, men går inte att veta innan någon försökt. Vi lär få se hur väl POWER lämpar sig, ryktet säger att nästa POWER version ska påminna mycket om hur Apple designar sina CPU: extremt "bred" design som siktar på brutal IPC.

* AArch32 är antagligen sämre än x86 givet att i stor sätt alla AArch32 instruktioner har ett potentiellt implicit beroende av tidigare instruktioner -> extremt sekventiellt flöde. Denna del är helt eliminerad i AArch64, där har man dragit den slidern åt motsatt håll och helt eliminerat implicit beroende mellan instruktioner nästan helt. AArch64 är rätt "icke-RISC:ig" i hur man implementera sådan där i stort sätt alla andra ISA har implicit beroende: jämförelse följd av hopp eller liknande beroende på hur jämförelsen gick, AArch64 har specifika instruktioner som slår ihop "jämförelse+beroende hopp" (typ explicit göra det Intel kallade "macro-op fusion" i Core2).

Visa signatur

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

Permalänk

Det måste kännas dumt för XBOX och Playstation att ha fel CPU.
Spelkonsoler är ett område där processorarkitekturer kan bytas ut lite hur som helst med tanke på bakåtkompatibilitet. Jag skulle bli mycket förvånad om Sony och Microsoft inte kom med nåt annat än x86_64 till nästa generation.

Permalänk
Medlem
Skrivet av Chibariku:

Intel och AMD sitter ju tyvärr fast i vad Microsoft hittar på. Apple har ju fördelen att styra hela kedjan. Medan Microsoft, Intel och AMD sitter fast i hönan eller ägget. Inget OS för det finns inga chip och inga chip för det finns inget vettigt ARM OS

Håller dock inte MS på med Win för ARM?

Visa signatur

If you follow the herd you are going to have to step through a lot of manure. Have the courage to trust in yourself and follow your own path.

Permalänk
Medlem
Skrivet av beh:

Det är väl inte hela sanningen. Apple, IBM och Motorola bildade tillsammans "AIM Alliance" 1991 som byggde en gemensam processor (PowerPC) på IBMs POWER ISA. Den första PowerPC processorn (PowerPC 601) blev exempelvis Motorolas logiska uppföljare till 68k. IBM 801 från 1981 brukar räknas som den första RISC-baserade processorn, så RISC var ändå 10 år tidigare än PowerPC. 1986 lanserade HP PA-RISC och ett år senare lanserade SUN Microsystems SPARC som också var RISC-baserad. PowerPC var långt från den första RISC-baserade processorn även om PowerPC 601 är nära besläktad med IBM 801.

Helt riktigt. Formuleringen om att 68000-processorerna var 16-bitars är också tveksam. Instruktionsuppsättningen var 32-bitars redan från den första 68000, och registren är 32 bitar långa. Däremot var ALUn bara 16-bitars i det läget, och den externa data-busen är också 16-bitars. Detta var dock fixat i och med 68020 och senare. De processorerna är 32-bitars på alla sätt.

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av FattarNiInte:

Det måste kännas dumt för XBOX och Playstation att ha fel CPU.
Spelkonsoler är ett område där processorarkitekturer kan bytas ut lite hur som helst med tanke på bakåtkompatibilitet. Jag skulle bli mycket förvånad om Sony och Microsoft inte kom med nåt annat än x86_64 till nästa generation.

Med Series X/S och PS5 så fanns det inga andra vettiga alternativ.
Ingen annan än AMD har i dagsläget kunnat erbjuda en SOC med en högpresterande GPU.

Även i framtiden så måste det finnas någon som kan tillverka en högpresterande ARM-CPU åt dom.
Apple lär inte vara med i bilden så det är väl ungefär vad Qualcomm och Samsung kan spotta ur sig.
Det är klart att Nvidia kanske kommer ha en vettig lösning när det är dags för nästa generation.

Visa signatur

Asus ROG Strix Z370-H Gaming | Intel Core i7-8700K | AMD Radeon RX 6950 XT | Corsair Vengeance LPX 3500 MHz 2x16 GB 16-18-18-38 | Diverse lagring | Fractal Design - Define R5 | Corsair RM1000x

C64 | C64C | NES | Amiga 500 | Mega Drive | Game Gear | SNES | N64 (RGB) | GCN | DS Lite | Xbox 360 | Wii | 3DS XL | Wii U | New 3DS XL | PS4 Pro | Switch

Permalänk
Medlem

En kompis visade sin m1a häromdagen och dom första intrycken var verkligen imponerande. Inga fläktar som går på högvarv när man t.ex. kör filera instanser av intellij, Vansinnigt lång batteritid och vad som ser ut attt vara sömlös bakåtkompatibilitet med rosetta2.

Självklart var det ingen grundlig genomgång men det enda riktigt dåliga som kom upp var begränsningen av en enda extern skärm.. det där måste dom fixa. Blev väldigt imponerad i övrigt.

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Sapphire 9070xt pulse| Gskill 32gb 3,6ghz | aw3225qf |

Permalänk

Apple M1 System-On-A-Chip (SoC)

Utöver unified memory (reduced latency; Fix för Von Neumann Bottleneck) så är Neural Engine en stor nyhet. SIMD och GPGPU i all ära, men... Neural Engine med 11 TOPS (Trillion Operations Per Second) gör Apple M1 perfekt för Machine Learning/Deep Learning där alla matrisberäkningar för tensors/arrays kräver en hel del. Apple har släppt ett tillägg för Goggle TensorFlow som gör att man med macOS 11 Big Sur och x86 kan accelerera beräknar med tensors via AMD GPU:n. Med macOS 11 Big Sur och Apple M1 så accelereras TensorFlow med både M1 GPU och M1 Neural Engine. Detta är stort. Ni finner detta tillägg på github här: https://github.com/apple/tensorflow_macos

Också viktigt att nämna är att Apple M1 har en DSP (Digital Signal Processor) vilket är perfekt för accelerera VST3/AU pluginer för mjukvarusynth:ar och effekter vid musikproduktion med en DAW. Samt också viktigt att påpeka hårdvaruacceleration av h.265 encoding/decoding samt transcoded Apple ProRes för att hantera 8K RAW video like butter.

Kontrollen för SSD finns också med i Apple M1 SoC och den är ruskigt snabb... därav att man klarar sig rätt bra med mindre mängd RAM.

Samt vill också nämna det att Motorola 68000 hanterar 32-bitar (long word), men det kostar i klockcykel. Som gammal Amiga hardware coder så känner jag att det behöver nämnas.

SSD kontroller
Permalänk

Intel

Skrivet av elajt_1:

Med tanke på vad Apple redan lyckats åstadkomma förstår jag inte varför både Intel och AMD lagt om skutan tidigare. Varför göra något annat än emulera x86 när du kan nå lika bra resultat ändå, och dessutom få en rejäl prestandaskjuts med ny Arm-utvecklad mjukvara. Snacka om att vara sen på bollen. Intel: Vi såg det inte komma!

Intel tycks satsa hårt på neuromorphic computing med memreistor i stället. Det kommer att bli stort när det väl kommer... men är väldigt nischat för Machine Learning/Deep Learning. Så Intel kommer att ge sig in i en annan marknad tillsammans med IBM kring detta.

https://www.intel.com/content/www/us/en/research/neuromorphic...
https://www.zurich.ibm.com/st/neuromorphic/

Permalänk
Datavetare

Lite allmänt svammel om "RISC" (personligen gillar jag inte termerna RISC och CISC).

Termen "RISC" myntades första gången i början av 80-talet i ett projekt som i förlängningen resulterade i bl.a. MIPS och SPARC ISAs.

I efterhand har man i praktiken satt "RISC" stämpeln på alla s.k. load-store ISA (ISA som bara utför aritmetiska operationer mot register). Finns "CISC" ISA med extremt simpla instruktionsuppsättning samt "RISC" ISA med rätt komplexa instruktionsuppsättning.

Wikipedia nämner att IBM 801 nog är den första RISC CPUn. Personligen tycker jag det visar ett av många problem med termen, ingen hade hört talas om "RISC" när IBM 801 lanserades, detta då lanseringen skedde innan RISC-termen först myntades. IBM 801 råkade bara vara första load-store designen med någon form av kommersiell framgång, så man har i efterhand stämplat RISC på den.

Givet vad RISC-projektet handlade om finns är det egentligen bara SPARC som utan tvivel kan kallas "RISC" då SPARC kommersialiserade grundidéerna från Berkeleys RISC-projekt.

Med den definitionen av RISC kan man konstatera att RISC var en dålig idé, för signumet för SPARC, register-hjulet, visade sig vara en rätt dålig idé medan filosofin från MIPS-projektet, att låta kompilatorn hantera register-allokering i stället för HW som i RISC/SPARC, visade sig betydligt mer framgångsrikt. Likt MIPS (och i mindre utsträckning PowerPC) hade SPARC och nackdelen med relativt dålig koddensitet (i alla fall ställt mot x86).

Är nog just p.g.a. resultaten från Berkeley RISC projektet, MIPS och SPARC, som detta lever kvar än

32-bitars Arm lanserades samma år som MIPS, d.v.s. 1985, men var nog långt senare någon kallade 32-bitars Arm för "RISC".

32-bitars Arm stämmer väldigt dåligt in på RISC-beskrivningen i bilden, utöver att det är en load-store design samt att den implementerar atomära instruktioner på "RISC" vis.

  • finns väldigt "komplicerade" instruktioner för att läsa/skriva mot minne (mer avancerade än x86, t.ex. kan en enda instruktion ladda/spara valfri uppsättning register från/till RAM)

  • 32-bitars Arm kod är, till skillnad från framförallt MIPS och SPARC, extremt kompakt (betydligt kompaktare än x86, som i sin tur är kompaktare än PowerPC, MIPS och SPARC). ARM64 och x86_64 är rätt likvärdig i kompakthet, de om något är ARM64 något kompaktare

  • nästan alla 32-bitars Arm instruktioner kan ha villkor associerade med sig, om villkoret inte är uppfyllt gör inte instruktion något (detta är en orsak till att man kan göra 32-bitars Arm kod väldigt kompakt då många korta hopp kan elimineras)

  • för att vara en "RISC" har 32-bitars Arm rätt få register, endast 16 st (varav 3 st har väldigt specifika uppgifter). 64-bitars Arm är betydligt mer "RISC" lik på denna punkt

Precis som (nästan) allt annat pillrade IBM med de grundläggande principerna runt RISC redan i början på 60-talet (vad har IBM inte gjort mellan 1950-69???). Och är väl egentligen dessa princip, framförallt hård separation av instruktioner som laddar/sparar information till/från RAM från/till register och att aritmetiska operationer endast utförs mot register, som vi idag egentligen menar med "RISC" (och med "CISC" menas då ISA som kan utföra aritmetiska operationer även mot RAM).

Fast varför då inte använda "load-store designs" för det vi nu kallar RISC-designs?

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

Med Series X/S och PS5 så fanns det inga andra vettiga alternativ.
Ingen annan än AMD har i dagsläget kunnat erbjuda en SOC med en högpresterande GPU.

Även i framtiden så måste det finnas någon som kan tillverka en högpresterande ARM-CPU åt dom.
Apple lär inte vara med i bilden så det är väl ungefär vad Qualcomm och Samsung kan spotta ur sig.
Det är klart att Nvidia kanske kommer ha en vettig lösning när det är dags för nästa generation.

Den delen av AMD som tillverkar spelkonsolkretsarna heter ju "Semi-Custom Solutions" av en anledning. Hade varit fullt möjligt att ta rätt exakt den design man nu har, men använda Cortex A77, A78 eller X1 som CPU-del.

Redan om man kört med A77 (lanserades maj 2019) hade det gett fördelar i prestanda. Cortex A77 har något högre prestanda per MHz än Zen3 (konsolerna använder Zen2), så även vid de 3,3 GHz vissa mobiler kör A77 skulle man haft något med något högre absolut CPU-prestanda än vad PS5/XSX har.

Samtidigt skulle det också resulterat i att CPU-klustret drar mindre ström, något som endera kunde användas till något bättre GPU-prestanda eller lite mindre totaleffekt. Kretsen hade också blivit mindre då en Zen2 kärna tar nästan 3 gånger så många transistorer som en Cortex A77 kärna (Zen2 använder rätt exakt 3 gånger så många transistorer jämfört med Cortex A76).

Hade man stoppa i X1 hade det blivit riktigt intressant. Cortex A76, Zen2 och Skylake har alla väldigt snarlik prestanda per MHz. Cortex X1 har ~60 % högre prestanda per MHz jämfört med A76, d.v.s. vi kunde ha haft konsoler med högre CPU-prestanda än high-end gaming PCs!

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

Den delen av AMD som tillverkar spelkonsolkretsarna heter ju "Semi-Custom Solutions" av en anledning. Hade varit fullt möjligt att ta rätt exakt den design man nu har, men använda Cortex A77, A78 eller X1 som CPU-del.

Redan om man kört med A77 (lanserades maj 2019) hade det gett fördelar i prestanda. Cortex A77 har något högre prestanda per MHz än Zen3 (konsolerna använder Zen2), så även vid de 3,3 GHz vissa mobiler kör A77 skulle man haft något med något högre absolut CPU-prestanda än vad PS5/XSX har.

Samtidigt skulle det också resulterat i att CPU-klustret drar mindre ström, något som endera kunde användas till något bättre GPU-prestanda eller lite mindre totaleffekt. Kretsen hade också blivit mindre då en Zen2 kärna tar nästan 3 gånger så många transistorer som en Cortex A77 kärna (Zen2 använder rätt exakt 3 gånger så många transistorer jämfört med Cortex A76).

Hade man stoppa i X1 hade det blivit riktigt intressant. Cortex A76, Zen2 och Skylake har alla väldigt snarlik prestanda per MHz. Cortex X1 har ~60 % högre prestanda per MHz jämfört med A76, d.v.s. vi kunde ha haft konsoler med högre CPU-prestanda än high-end gaming PCs!

Okay.
I med att vi inte såg en övergång till ARM så antar jag att det finns goda skäl till att det inte blev så?
Mjukvarurelaterat?
Bättre pris från AMD då dom levererar hela kretsen?

Visa signatur

Asus ROG Strix Z370-H Gaming | Intel Core i7-8700K | AMD Radeon RX 6950 XT | Corsair Vengeance LPX 3500 MHz 2x16 GB 16-18-18-38 | Diverse lagring | Fractal Design - Define R5 | Corsair RM1000x

C64 | C64C | NES | Amiga 500 | Mega Drive | Game Gear | SNES | N64 (RGB) | GCN | DS Lite | Xbox 360 | Wii | 3DS XL | Wii U | New 3DS XL | PS4 Pro | Switch

Permalänk
Datavetare
Skrivet av Barak:

Okay.
I med att vi inte såg en övergång till ARM så antar jag att det finns goda skäl till att det inte blev så?
Mjukvarurelaterat?
Bättre pris från AMD då dom levererar hela kretsen?

Tror svaret på den frågan är rätt trist: dels riskminimering (PS5/XSX är egentligen bara en snabbare, men bakåtkompatibel version av PS4/XBO) men framförallt lär utvecklingsarbetet med PS5/XSX börjat i alla fall innan 2015 och då undrar jag om någon ens kunde gissa vilken brutal utveckling ARM64 skulle få.

Man måste komma ihåg att ARM64 (eller tekniskt korrekt, AArch64) fortfarande inte ens funnits ett decennium. Arm lanserade ARMv8.0 2011.

Svårt att se hur AMD skulle kunna ge ett bättre pris på Zen2 jämfört med Cortex A77/A78 (som består av ~1/3 så många transistorer) eller ens Cortex X1 (som består av ~1/2 så många transistor trots ~60 % högre IPC).

Tycker också Apple allt mer med brutal klarhet visar hur överskattat problemet med att byta ISA är. Har själv jobbat med C och C++ kod som används på x86, AArch32, AArch64, PowerPC, MIPS och RISC-V. Historisk har det absolut varit ett jätteproblem (nivån på kompilatorer var inte lika rolig på 90-talet...), men saker förändras och nu för tiden är dels nivån på kompilatorer långt bättre än den tidigare varit (så sällan några superproblem att kompilera om även väldigt komplicerade program), dels skrivs program i allt högre nivå språk. Visst, spel skrivs primärt i C++, men vi har i praktiken helt lämnat assembler bakom oss.

Man måste också komma ihåg att innan Cortex A76 (som lanserades maj 2018) var det nog få som trodde att Arm faktiskt var kapabel att designa CPUer som kunde slå high-end x86 på fingrarna sett till mängd utförd arbete per cykel. Med Cortex X1 har även Arm visat att man kan lämna x86 rejält akterseglad.

Innan M1 lanserades var det rätt många som helt avfärdade benchmarks som Geekbench med: det går inte att jämföra iOS med "riktiga" datorer. Nu borde det vara rätt uppenbart att GB hade helt rätt, handlar inte om "optimeringar i iOS" utan Apples enheter presterade bra i benchmarks därför att de drivs av en väldigt snabb CPU (från och med Firestorm är det världens just nu snabbast CPU räknat per CPU-kärna).

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:

Tycker också Apple allt mer med brutal klarhet visar hur överskattad problemet med att byta ISA är. Har själv jobbat med C och C++ kod som används på x86, AArch32, AArch64, PowerPC32, PowerPC64, MIPS och RISC-V.

På klientdatorer som den stora skaran använder som en tunn klient, bortsett från att de använder några nya populära program vid sidan av där dessa program hela tiden uppdateras. Ofta är dessa betalprogram av typen subscription, så man får automatisk senaste versionen och behöver inte lägga ut en massa tusenlappar för att uppgradera.

På windows plattformen är det lite besvärligare, men sakta blir folk mindre beroende av applikationer lokalt. Men det finns ändå väldigt många professionellt och gamers som behöver/"måste" köra applikationer där tillverkaren kanske gick i konkurs för 15 år sedan.

Och jag tror att utvecklingen går så här:
Enklare laptops får Arm med windows och även chromebook. (Chromebook med Arm finns redan, men de är ofta dåliga)
När dessa enkla laptops blir bättre än x86or för enkla saker som surfa, kolla på film, Office paketet etc, så blir de populära och de får då också ett större programutbud.
En större andel användare kanske helt går över till dessa, sedan så kommer även de som gör mer med datorn med. Efter detta så kommer x86an förlora så stor andel så de blir bara dyra och ytterst få är kvar, detta tills att en dag helt försvinna.

Jag tror det kommer ta tid. Och jag är själv väldigt sugen på en billig men grym Arm Chromebook, men det har gått så trögt. Till sommaren tror jag dessa kommer.

*edit*
Dessa enkla Arm Windows laptops som jag tror övergången börjar med kan visserligen vara svindyra, men de är ändå enkla sett till vad de används till. Ordbehandling, surfa, kolla på film, lite enklare spel etc. Otroligt många datorer säljs just för detta och väldigt många fast de har megastora servrar, workstations och annat hemma vill ha en enklare laptop.

Självklart kommer arm ta en annan väg på serverside. Även om man kör windows x86 så ska man köra olika tjänster, dessa tjänster körs såklart på de mest prisvärda cpuerna som finns för behovet. Arm kommer på flera olika sätt komma in på denna sida.

Permalänk
Medlem
Skrivet av carlhblomqvist:

Intel tycks satsa hårt på neuromorphic computing med memreistor i stället. Det kommer att bli stort när det väl kommer... men är väldigt nischat för Machine Learning/Deep Learning. Så Intel kommer att ge sig in i en annan marknad tillsammans med IBM kring detta.

https://www.intel.com/content/www/us/en/research/neuromorphic...
https://www.zurich.ibm.com/st/neuromorphic/

Låter spännande.

Visa signatur

If you follow the herd you are going to have to step through a lot of manure. Have the courage to trust in yourself and follow your own path.

Permalänk
Medlem
Skrivet av carlhblomqvist:

Också viktigt att nämna är att Apple M1 har en DSP (Digital Signal Processor) vilket är perfekt för accelerera VST3/AU pluginer för mjukvarusynth:ar och effekter vid musikproduktion med en DAW.

Wow, visste inte om detta.
Vi får hoppas att VST devs nyttjar detta.

Permalänk
Skrivet av anon242437:

MD?
kan bli lite fel när.man skriver på mobilemn! mvh

sorry, MS= Pyttemjuk

Permalänk
Medlem
Skrivet av Yoshman:

32-bitars Arm lanserades samma år som MIPS, d.v.s. 1985, men var nog långt senare någon kallade 32-bitars Arm för "RISC".

Tja.. ARM var ju från början en förkortning för "Acorn Risc Machine". Så själva tyckte nog folket i Cambridge att det var en bra marknadsföringsterm i alla fall.

Permalänk
Medlem
Skrivet av lillaankan_i_dammen:

Och jag tror att utvecklingen går så här:
Enklare laptops får Arm med windows och även chromebook. (Chromebook med Arm finns redan, men de är ofta dåliga)
När dessa enkla laptops blir bättre än x86or för enkla saker som surfa, kolla på film, Office paketet etc, så blir de populära och de får då också ett större programutbud.
En större andel användare kanske helt går över till dessa, sedan så kommer även de som gör mer med datorn med. Efter detta så kommer x86an förlora så stor andel så de blir bara dyra och ytterst få är kvar, detta tills att en dag helt försvinna.

Jag tror det kommer ta tid. Och jag är själv väldigt sugen på en billig men grym Arm Chromebook, men det har gått så trögt. Till sommaren tror jag dessa kommer.
sida.

Först och främst skulle jag säga att ARM-datorerna nu är bättre på att surfa, kolla film etc. då de har bättre batteritid och levererar tillräckligt bra prestanda.

Sedan skulle jag påstå att övergången redan skett, och datorerna lämnades kvar i ett hörn.
Redan för flera år sedan sålde Apple fler iPads än hela datorindustrin sålde bärbara datorer på ett år.

Bara för att bärbara datorer under lång tid sett lika dana ut sedan Apple lanserade Powerbooken för många år sedan, så innebär det inte att det är det enda formatet. Surfplattor är den nya "datorn" i gememe mans hem.

Permalänk
Medlem

Jag är mest intresserad av när molnleverantörerna erbjuder arm system, och hur de blir prissatta jämfört med x86 alternativen. Känns som strömförbrukning och därmed kyllösningar och hur tätt man kan packa systemen är avgörande för priset per minut.

Så jag misstänker det kommer vara väldigt prisvärt att köra sina k8s kluster på arm när möjligheten ges, kanske framåt slutet av 2021? Och om kostnaden på arm är signifikant lägre tror jag övergången kommer gå snabbt, de stora projekten kommer alla ha arm images förbyggda.

Generellt undrar jag om inte hela övergången mot open source mjukvaru-stacks är en nyckel till varför övergången kan fungera den här gången. Kompilator framstegen som nämnts tidigare i tråden är väl ett bra exempel på saker som hade varit svårare att åstadkomma om alla skulle bygga sin egen stack.

Permalänk
Datavetare
Skrivet av lillaankan_i_dammen:

På klientdatorer som den stora skaran använder som en tunn klient, bortsett från att de använder några nya populära program vid sidan av där dessa program hela tiden uppdateras. Ofta är dessa betalprogram av typen subscription, så man får automatisk senaste versionen och behöver inte lägga ut en massa tusenlappar för att uppgradera.

På windows plattformen är det lite besvärligare, men sakta blir folk mindre beroende av applikationer lokalt. Men det finns ändå väldigt många professionellt och gamers som behöver/"måste" köra applikationer där tillverkaren kanske gick i konkurs för 15 år sedan.

Och jag tror att utvecklingen går så här:
Enklare laptops får Arm med windows och även chromebook. (Chromebook med Arm finns redan, men de är ofta dåliga)
När dessa enkla laptops blir bättre än x86or för enkla saker som surfa, kolla på film, Office paketet etc, så blir de populära och de får då också ett större programutbud.
En större andel användare kanske helt går över till dessa, sedan så kommer även de som gör mer med datorn med. Efter detta så kommer x86an förlora så stor andel så de blir bara dyra och ytterst få är kvar, detta tills att en dag helt försvinna.

Jag tror det kommer ta tid. Och jag är själv väldigt sugen på en billig men grym Arm Chromebook, men det har gått så trögt. Till sommaren tror jag dessa kommer.

*edit*
Dessa enkla Arm Windows laptops som jag tror övergången börjar med kan visserligen vara svindyra, men de är ändå enkla sett till vad de används till. Ordbehandling, surfa, kolla på film, lite enklare spel etc. Otroligt många datorer säljs just för detta och väldigt många fast de har megastora servrar, workstations och annat hemma vill ha en enklare laptop.

Självklart kommer arm ta en annan väg på serverside. Även om man kör windows x86 så ska man köra olika tjänster, dessa tjänster körs såklart på de mest prisvärda cpuerna som finns för behovet. Arm kommer på flera olika sätt komma in på denna sida.

Skulle gissa att det markerade är ett icke-problem för majoriteten, men det är absolut ett problem för vissa. Just därför är de avancemang som gjorts kring att binär-översätta program från en ISA till en annan väldigt viktigt, handlar det om 15 år gamla program behövs inte ens något HW-stöd för TSO eller liknande då vi på den tiden körde P4 och Athlon64, vilken telefon-CPU som helst idag kan emulera de programmen snabbare än dåtidens CPU kunde köra dem.

Överhuvudtaget så kan man komma runt skillnader i minnekonsistensmodell mellan x86 och Arm genom att endast köra det översatta programmet på en enda CPU-kärna. Programmet kan fortfarande vara multitrådat (Windows-program blev väldigt tidigt multitrådade, långt innan dual-core CPUer blev populära), så länge man bara kör på en CPU-kärna kan x86-minnesoperatioenr direkt ersättas av Arm-minnesoperationer, helt utan extra synkronisering. Är först när man blandar in flera CPU-kärnor som skillnaden i semantik blir ett problem.

Edit: går att använda flera CPU-kärnor i systemet, men varje emulerat program får bara använda en CPU-kärna om man ska undvika konsistensproblem. Windows (likt Linux, men till skillnad från MacOS) har ju stöd för att låsa ned processer på en specifik CPU-tråd, så Microsoft har ju möjligheten att gå den vägen (fast tror mer på Apples väg att lägga in HW-stöd för TSO som ett mer effektivt sätt att köra översatt x86_64 kod på ARM64).

Skrivet av blackcoffee:

Tja.. ARM var ju från början en förkortning för "Acorn Risc Machine". Så själva tyckte nog folket i Cambridge att det var en bra marknadsföringsterm i alla fall.

+1 på den

Klumpigt formulerat av mig! Poängen är att även ARMv1, som jämfört redan med ARMv2 var rejält primitiv, avvek rätt mycket från det som populärt associeras med "RISC".

T.ex. skrivs detta på Wiki-sidan för ARMv1

"The ARMv1 presents a simple instruction set architecture, albeit bigger and more complex than many of its RISC contemporaries, consisting of mostly simple operations along with a number of complex ones borrowed from early 8-bit CISC microprocessors."

Då ARM också är en "RISC" så blir enda relevanta gemensamma faktorn att aritmetiska operationer endast kan utföras mot register, för nästan alla andra saker man associerar med RISC gäller inte där

  • en nackdel med RISC anses vara lägre koddensitet: AAarch32 är den ISA som ger bland de mest kompakta programmen

  • RISC instruktioner brukar vara av en specifik storlek: AAarch32 inkluderar Thumb2 där instruktionerna är 2 eller 4 bytes (något man "snodde" från SuperH som också anses vara RISC, RISC-V har också variabel instruktionslängd om 2 eller 4 bytes)

  • RISC anses ha relativt få instruktioner som utför en specifik sak: AArch32 har väldigt CISC-lika instruktioner som tar fler än en cykel att utföra, t.ex. en som kan skriva upp till 15 register via en address i det 16:e och denna adress kan förses med pre/post-inrement (den instruktionen gör att prolog/epilog för funktionsanrop endast blir 2 instruktioner!)

I.o.f.s. är det just dessa "CISC-features" som ställde till det för AArch32, är nog inte möjligt att designa 32-bitars Arm med väldigt hög IPC. Just på dessa punkter skiljer sig AAarch64 drastiskt från AArch32.

Lade in länken till Wiki
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 Sidde:

Först och främst skulle jag säga att ARM-datorerna nu är bättre på att surfa, kolla film etc. då de har bättre batteritid och levererar tillräckligt bra prestanda.

Sedan skulle jag påstå att övergången redan skett, och datorerna lämnades kvar i ett hörn.
Redan för flera år sedan sålde Apple fler iPads än hela datorindustrin sålde bärbara datorer på ett år.

Bara för att bärbara datorer under lång tid sett lika dana ut sedan Apple lanserade Powerbooken för många år sedan, så innebär det inte att det är det enda formatet. Surfplattor är den nya "datorn" i gememe mans hem.

Ja helt rätt. Utan mobiler och surfplattor hade Arm inte varit där de är. Att folk så mycket använder dessa bidrar till att efterfrågan på webblösningar ökar. Men övergången till Windows Arm har på laptops och desktops har ej kommit igång. Windows RT floppade rejält för de var för tidiga. Chromebooks så är Arm ovanliga, mest är det de billigaste och sämsta. Linux på arbetsdator med Arm är ovanlig. Det enda är Apples datorer.

Angående surfplattor så är det komisk om hur dumma IT-journalister var. När dessa blev bra så rusade försäljningen iväg, detta till den grad att dessa journalister skrev artiklar som att vanliga datorer skulle försvinna och ersättas med surfplattor. Men när typ varenda kotte hade köpt en surfplatta som i princip fungerade precis lika bra som de kommande surfplattor som lanseras de närmsta åren, så minskade försäljningen och dessa journalister blev förvånande.
Jag själv tycker det är logisk, folk byter ej ut prylar som ej uppdateras i onödan. Det må vara många som använder surfplattor, men om utvecklingen står still så blir det inte så många som köper.
Vissa kan argumentera för att de nya surfplattorna är så otroligt mycket snabbare, visst, men det har inte en så stor betydelse för alla så de vill slösa pengar på detta. Det de gör på surfplattorna segar ändå inte.

Permalänk

VST

Skrivet av Cocosoft:

Wow, visste inte om detta.
Vi får hoppas att VST devs nyttjar detta.

Just nu är det Apple Logic Pro som är optimerad för Apple M1 DSP. Fler är dock påväg under Q1 2021.

Permalänk
Datavetare
Skrivet av ajn:

Jag är mest intresserad av när molnleverantörerna erbjuder arm system, och hur de blir prissatta jämfört med x86 alternativen. Känns som strömförbrukning och därmed kyllösningar och hur tätt man kan packa systemen är avgörande för priset per minut.

Så jag misstänker det kommer vara väldigt prisvärt att köra sina k8s kluster på arm när möjligheten ges, kanske framåt slutet av 2021? Och om kostnaden på arm är signifikant lägre tror jag övergången kommer gå snabbt, de stora projekten kommer alla ha arm images förbyggda.

Generellt undrar jag om inte hela övergången mot open source mjukvaru-stacks är en nyckel till varför övergången kan fungera den här gången. Kompilator framstegen som nämnts tidigare i tråden är väl ett bra exempel på saker som hade varit svårare att åstadkomma om alla skulle bygga sin egen stack.

Amazon hade tidigt deras Graviton-serie. Graviton v1.0 var inte så rolig, den var det man historisk associerat med Arm (när det ställs mot x86): bättre perf/W, OK prestanda för det som skalar i princip perfekt med CPU-kärnor men värdelös prestanda per kärna (vilket även på serversidan utesluter det mesta, t.ex. kan man inte hantera latenskritiska uppgifter då latens tendera sakna skalning m.a.p. antal kärnor).

Nu finns även Graviton 2 som baseras på Neoverse N1. Neoverse N1 är i sin tur baserad på Cortex A76, så räknat per MHz och kärna drar den jämt med Skylake/Zen2 baserade server CPUer. N1 relaterar till A76 likt hur AMD/Intels server CPUer relaterar till konsumentmodellerna baserad på samma CPU-kärna: det är samma ALUs fast plattformen har fler PCIe-kanaler, fler RAM-kanaler, mer cache etc.

Prismässigt kostar Graviton 2 ungefär hälften per vCPU jämfört med Xeon/Epyc. Värt att notera då är att en vCPU motsvarars av en CPU-tråd (inte CPU-kärna) på AWS. Då Neoverse N1 saknar stöd för SMT betyder det att man för ungefär halva kostnaden får en fysisk CPU-kärna om man kör ARM64 medan man endast får en CPU-tråd på x86_64.

Ryktet säger att Microsoft jobbar på något likt Amazons Graviton 2 för Azure.

Visa signatur

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

Permalänk

Neuromorphic

Skrivet av elajt_1:

Låter spännande.

Computerphile sammanfattar Neuromorphic Computing rätt bra... i fall någon är intresserad att veta mer...

https://www.youtube.com/watch?v=Qow8pIvExH4