Apple avtäcker övergången till egenskapade ARM-processorer

Skrivet av m1ntos:

Få val? Dem designar ju hela SoC själva. Att gå till AMD eller Intel är mindre val än att själv göra deras arbete. Sedan att dem har 10 år av erfarenhet i SoC-design för mobila enheter säger väl sig självt att det är en tillgång.

Förmodligen kommer detta över sikt (10-15 år) innebära en långsam övergång för konsumentprodukter till ARM. En del legacy kommer vara fast på x86-64 ett tag till men trenden är tydlig och x86 är en ganska sliten och ihopklistrad arkitektur vad det här laget.

X86 må vara en sliten och hopklistrad arkitektur, men det är vad som garanterar bakåtkompatibilitet. Och bakåtkompatibilitet är ett gigantiskt värde, och också något som låser in användarna, så det är inget som någon av AMD eller Intel är så angelägna att släppa.
Å andra sidan är kompatibilitet med 40 år av gamla OP-codes en belastning.
Redan att släppa 32-bitars arkitekturen och bara stödja 64-bitars varianten (som inte heller är någon ungdom precis, den firar 20års-jubileum i år!) skulle rimligen vara en enorm lättnad ur test och debug synpunkt, men det kommer knappast att ske närmaste decenniet, 32-bitars kod och OS-komponenter är ju ett faktum även i en PC-burk som är dagsfärsk.
Kruxet är att de allra flesta konsumenter egentligen skulle klara sig utmärkt utan den bakåtkompatibiliteten, men alla får betala priset.
Rent tekniskt skulle man naturligtvis kunna lösa detta, men hur man skall kunna göra det på ett sätt som bibehåller alla kunder är inte alls glasklart. Delade CPU och OS familjer? Intel har enorma resurser för optimering av designer, och fördelen av litografiska processer som är framtagna specifikt för deras produktportfölj. De kommer att kunna göra ett vettigt jobb på sin befintliga marknad och jag skulle tro att detsamma gäller AMD. Men det är svårt att se varför nya produktkategorier skulle använda x86 och göra sig avhängiga ett marknadsduopol med decennier av bagage.
Apple representerar 20 millioner x86 CPUer per år. Inte så förbaskat mycket, mindre än 10% av försäljningen. Påverkar inte Intel särskilt mycket direkt, och inte AMD alls. Symbolvärdet är större.

Skrivet av Yoshman:

Stora kärnan i A13, "Lightning", är inte identisk med stora kärnan i A12, "Vortex". De är tillverkade på samma nod och Lightning tar ~26 % mer kretsyta! Ovanpå det valde Apple att klocka Lightning något högre jämfört med Vortex.

AnandTech såg en genomsnittlig IPC ökning om 17 % i SPECInt

"In SPECint2006, the improvements in performance are relatively evenly distributed. On average we’re seeing a 17% increase in performance. The biggest gains were had in 471.omnetpp which is latency bound, and 403.gcc which puts more pressure onto the caches; these tests saw respective increases of 25 and 24%, which is quite significant."

Ja, men läs resten av texten. Själva den stora kärnan är nästan oförändrad:

Citat:

The Lightning Performance CPU Cores: Minor Upgrades, Mystery of AMX
The large cores for this generation are called “Lightning” and are direct successors to last year’s Vortex microarchitecture. In terms of the core design, at least in regards to the usual execution units, we don’t see too much divergence from last year’s core. The microarchitecture at its heart is still a 7-wide decode front-end, paired with a very wide execution back-end that features 6 ALUs and three FP/vector pipelines.

Apple hasn’t made any substantial changes to the execution back-end, as both Lightning and Vortex are largely similar to each other. The notable exception to this is the complex integer pipelines, where we do see improvements. Here the two multiplier units are able to shave off one cycle of latency, dropping from 4 cycles to 3. Integer division has also seen a large upgrade as the throughput has now been doubled and latency/minimum number of cycles has been reduced from 8 to 7 cycles.

Another change in the integer units has been a 50% increase in the number of ALU units which can set condition flags; now 3 of the ALUs can do this, which is up from 2 in A12's Vortex.

As for the floating point and vector/SIMD pipelines, we haven't noticed any changes there.

Allt detta är små förändringar. Storleken är också lätt förklarad:

Citat:

A big change to the CPU cores which we don’t have very much information on is Apple’s integration of “machine learning accelerators” into the microarchitecture. At heart these seem to be matrix-multiply units with DSP-like instructions, and Apple puts their performance at up to 1 Tera Operations (TOPs) of throughput, claiming an up-to 6x increase over the regular vector pipelines. This AMX instruction set is seemingly a superset of the ARM ISA that is running on the CPU cores.

There’s been a lot of confusion as to what this means, as until now it hadn’t been widely known that Arm architecture licensees were allowed to extend their ISA with custom instructions. We weren’t able to get any confirmation from either Apple or Arm on the matter, but one thing that is clear is that Apple isn’t publicly exposing these new instructions to developers, and they’re not included in Apple’s public compilers. We do know, however, that Apple internally does have compilers available for it, and libraries such as the Acclerate.framework seem to be able to take advantage of AMX. Unfortunately, I haven't had the time or experience to investigate this further for this article.

Allt detta som gör processorn större är saker som är irrelevanta för ett developer kit, eftersom Apple inte ens låter utvecklarna använda de instruktionerna.

Det som leder till prestanda-förbättring är det som texten du citerade också antyder - cache-systemet:

Citat:

The shared L2 cache between the cores continues to be 8MB in size, however Apple has reduced the latency from 16 to 14 cycles, something we’ll be looking at in more detail on the next page when looking at the memory subsystem changes.

Att kapa 2 cykler från L2 lär leda till prestanda-förbättringar, men det är nog svårt att kopiera det till den fyrkärniga modellen, eftersom det är en delad cache som sannolikt behöver vara större för de fyrkärniga, alldeles oavsett att flera read ports inte gör jobbet lättare. Intel har vad jag vet aldrig kört med en delad L2 för mer än 2 kärnor.

Slutligen:

Citat:

By far the biggest change on the SoC level has been the new system level cache (SLC). Already last year Apple had made huge changes to this block as it had adopted a new microarchitecture and increased the size from 4MB to 8MB. This year, Apple is doubling down on the SLC and it’s very evidently using a new 16MB configuration across the four slices. A single SLC slice without the central arbitration block increases by 69% - and the actual SRAM macros seen on the die shot essentially double from a total of 3.20mm² to 6.36mm².

Spec har alltid gillat en större cache, så det spelar säkert en stor roll i den förbättrade prestandan.

Skrivet av mpat:

Ja, men läs resten av texten. Själva den stora kärnan är nästan oförändrad:

Allt detta är små förändringar. Storleken är också lätt förklarad:

Allt detta som gör processorn större är saker som är irrelevanta för ett developer kit, eftersom Apple inte ens låter utvecklarna använda de instruktionerna.

Det som leder till prestanda-förbättring är det som texten du citerade också antyder - cache-systemet:

Att kapa 2 cykler från L2 lär leda till prestanda-förbättringar, men det är nog svårt att kopiera det till den fyrkärniga modellen, eftersom det är en delad cache som sannolikt behöver vara större för de fyrkärniga, alldeles oavsett att flera read ports inte gör jobbet lättare. Intel har vad jag vet aldrig kört med en delad L2 för mer än 2 kärnor.

Slutligen:

Spec har alltid gillat en större cache, så det spelar säkert en stor roll i den förbättrade prestandan.

Finns inte en chans i världen att lite snabbare cache skulle kunna ge >10 % IPC ökning, även en fördubbling i cache bandbredd / halvering av cache latens skulle ha svårt att ge >10 % IPC om man inte startade med en extremt usel cache-design (vilket A12 definitivt inte har).

Haswell dubblade L2$ bandbredd över Ivy Bridge ovanpå det ökades även out-of-order fönster och lite andra saker. Haswell har väl 5-8 % högre IPC än Ivy, eller något sådant. 3700X har halva bandbredden för "store" operationer jämfört med 3900X, det är knappt en mätbar skillnad i praktiken.

Ett par extra instruktioner kan inte heller förklara att kretsytan ökas med 26 %, det är en rätt rejäl storleksökning.

För att få IPC ökningar på ~20 % har man definitivt ändrat mikroarkitekturen på flera icke-triviala sätt. Problemet här är att vi har med Apple att göra -> finns nästan noll information att tillgå om implementationsdetaljer.

Ett exempel är ju just det du listar

"Another change in the integer units has been a 50% increase in the number of ALU units which can set condition flags; now 3 of the ALUs can do this, which is up from 2 in A12's Vortex."

Det är ingen "liten" förändring rent mikroarkitekturmässigt. Det lär finnas flera sådana exempel där man ökat kapaciteten för saker med ~50 %. Intel nästan fördubblade out-of-order fönster i Sunny Cove över Skylake + massa andra saker -> 18 %...

Skrivet av wounds:

Jag vet inte, de kanske har tänkt på det men precis som du säger är de redan ganska krångliga redan idag. Det finns dock en del verktyg typ jamf som gör det enklare, kommer dessa att fortsätta funka? Läste en intressant diskussion i gruppen kodapor på Facebook om Mac skull fortsätta vara relevant som det populära verktyg för utvecklare det har varit de senaste åren. Där var det väl lite blandade åsikter. Vi får väl se, spännande är det i alla fall.

Jag tror absolut sådant som Jamf kommer fortsätta funka. Det rullar redan med Apples mobila enheter som ju har Apples A-chip. Tror inte det hela behöver bli så dramatiskt som det kanske kan låta. Men visst – äldre mjukvara som inte kommer anpassas kommer kanske få problem om den av någon anledning inte rullar väl under Rosetta 2.

Skrivet av Yoshman:

Finns inte en chans i världen att lite snabbare cache skulle kunna ge >10 % IPC ökning, även en fördubbling i cache bandbredd / halvering av cache latens skulle ha svårt att ge >10 % IPC om man inte startade med en extremt usel cache-design (vilket A12 definitivt inte har).

Haswell dubblade L2$ bandbredd över Ivy Bridge ovanpå det ökades även out-of-order fönster och lite andra saker. Haswell har väl 5-8 % högre IPC än Ivy, eller något sådant. 3700X har halva bandbredden för "store" operationer jämfört med 3900X, det är knappt en mätbar skillnad i praktiken.

Ett par extra instruktioner kan inte heller förklara att kretsytan ökas med 26 %, det är en rätt rejäl storleksökning.

För att få IPC ökningar på ~20 % har man definitivt ändrat mikroarkitekturen på flera icke-triviala sätt. Problemet här är att vi har med Apple att göra -> finns nästan noll information att tillgå om implementationsdetaljer.

Ett exempel är ju just det du listar

"Another change in the integer units has been a 50% increase in the number of ALU units which can set condition flags; now 3 of the ALUs can do this, which is up from 2 in A12's Vortex."

Det är ingen "liten" förändring rent mikroarkitekturmässigt. Det lär finnas flera sådana exempel där man ökat kapaciteten för saker med ~50 %. Intel nästan fördubblade out-of-order fönster i Sunny Cove över Skylake + massa andra saker -> 18 %...

Om de "dolda" funktionerna involverar matris-multiplikationer (som Anandtech gissar) så kan jag absolut tro på att de tar upp en massa plats.

Vad gäller resten - glöm inte att Apple låter A13 i iPhone 11 dra väsentligt mycket mer energi är vad A12 i iPhone XR/XS gjorde, enligt samma artikel. Högre TDP har aldrig skadat prestanda. Det är något de sannolikt lätt kan fixa i en A12Z med rejäl kylfläns.

Skrivet av medbor:

Skrämmande är att de skulle kunna slå din 3900X i prestanda om de bara satte i 8 av sina stora kärnor (vilket är möjligt att de gör) och klockar dom lite högre. Det borde vara möjligt för 15/25W ungefär...

Vi har ju inte sett nån ARM som går högt i frekvens ännu.
Spoiler: då kommer ju energieffektiviteten gå ner och det kanske är svårt att göra highspeed ARM-cores pss som Ryzen 1 bara nådde 4.1GHz.

Så det tror jag faktiskt inte. Även om jag älskar ARM så är jag försiktigt pessimistisk

Skrivet av CrazyDriver:

Kanske lite off topic, men vid den här tiden var Ericsson bäst i klassen när det kom till radio och antenndesign och höll på att optimera i absurdum. Saken var bara att en normal användare bryr sig om helt andra saker än optimal signalstyrka och Ericssons applikationsprocessor orkade ju knapp dra runt det egna operativsystemet. Återstår att se vad Intel kommer att göra, men de lär vara tvungna att ha med sig Microsoft i båten, annars kan det bli tufft. Microsoft klarar sig utan Intel, men Intel klarar sig inte utan Microsoft.

Hehe, ja vi jobbade skiten ur oss med den app processorn kan jag säga, galet hur mycket man kunde göra med den lilla prestanda man hade

Min sektion la även sjuka mängder tid och pengar på att få handover för videotelefoni att fungera på ett bra sätt inför lanseringen av 3G, vi snackar riktigt stora mängder pengar. Sedan var det typ ingen som använde det

Som när iPhone kom. Det tar ett par år innan folk fattar hur stort det är.

Investerare 2016: Köp inte Apple, det har gått upp för mycket!
Investerare 2020: Köp Apple!

Köp bolag du gillar och tror på. Skit i PE-talen

Skrivet av fish:

Hehe, ja vi jobbade skiten ur oss med den app processorn kan jag säga, galet hur mycket man kunde göra med den lilla prestanda man hade

Min sektion la även sjuka mängder tid och pengar på att få handover för videotelefoni att fungera på ett bra sätt inför lanseringen av 3G, vi snackar riktigt stora mängder pengar. Sedan var det typ ingen som använde det

Men det hade nog givit mkt skit PR mässigt om det inte funka bra. Skulle jag tro

Skrivet av Herr Kantarell:

Vi har ju inte sett nån ARM som går högt i frekvens ännu.
Spoiler: då kommer ju energieffektiviteten gå ner och det kanske är svårt att göra highspeed ARM-cores pss som Ryzen 1 bara nådde 4.1GHz.

Så det tror jag faktiskt inte. Även om jag älskar ARM så är jag försiktigt pessimistisk

Det har du all rätt att vara!

Men det känns som A14 kommer piska AMD/Intel med 20% i singletrådat, lägg på en mer generös strömbudget och 8 kärnor så har vi 10-12 x86-cores av prestanda

Allt detta är dock avrundat uppåt såklart

Skrivet av PlogarN97:

Men det hade nog givit mkt skit PR mässigt om det inte funka bra. Skulle jag tro

Absolut, ska det vara med så ska det ju funka. Var ju lite det som Apple insåg med, gör bara de största funktionerna och gör dem bra! Folk hade överseende med att man inte kunde skicka MMS t.ex 😊

Skrivet av Yoshman:

Finns inte en chans i världen att lite snabbare cache skulle kunna ge >10 % IPC ökning, även en fördubbling i cache bandbredd / halvering av cache latens skulle ha svårt att ge >10 % IPC om man inte startade med en extremt usel cache-design (vilket A12 definitivt inte har).

Haswell dubblade L2$ bandbredd över Ivy Bridge ovanpå det ökades även out-of-order fönster och lite andra saker. Haswell har väl 5-8 % högre IPC än Ivy, eller något sådant. 3700X har halva bandbredden för "store" operationer jämfört med 3900X, det är knappt en mätbar skillnad i praktiken.

Ett par extra instruktioner kan inte heller förklara att kretsytan ökas med 26 %, det är en rätt rejäl storleksökning.

För att få IPC ökningar på ~20 % har man definitivt ändrat mikroarkitekturen på flera icke-triviala sätt. Problemet här är att vi har med Apple att göra -> finns nästan noll information att tillgå om implementationsdetaljer.

Ett exempel är ju just det du listar

"Another change in the integer units has been a 50% increase in the number of ALU units which can set condition flags; now 3 of the ALUs can do this, which is up from 2 in A12's Vortex."

Det är ingen "liten" förändring rent mikroarkitekturmässigt. Det lär finnas flera sådana exempel där man ökat kapaciteten för saker med ~50 %. Intel nästan fördubblade out-of-order fönster i Sunny Cove över Skylake + massa andra saker -> 18 %...

Men ta bara jobb på Sweclockers och led dem till att bli nya Svenska Anandtech! Du är grym Yosh, kommer rösta på dig som årets medlem i år igen!

François Piednoël, före detta intel, och en man med koll som ibland dyker upp på ställen där folk med koll pratar med varandra påstår att bristfällig kvalitetskontroll på Skylake var en avgörande faktor som knuffade Apple över gränsen.
Intressant.

Skrivet av Erik_T:

Ett tredje arkitekturbyte. M68k -> PowerPC -> x86-64 -> ARM

Ah, I stand corrected. Det första missade jag (inte tillräckligt gammal).