Apple Silicon, waarom is dat zo snel en zuinig?

Door Jan Onderwater op vrijdag 20 augustus 2021 14:44 - Reacties (9)
Categorie: -, Views: 3.398

Apple bracht vorige Herfst de MacBook air en Macbook Pro met M1 op de markt en dit heeft sindsdien de gemoederen nogal beziggehouden in de computerindustrie. De performance was beter dan de meeste mobile processoren. Gelekte benchmarks van de Intel Alder Lake CPU die bedoeld is voor ultradunne laptops laten zien dat deze niet zo snel is als de M1. Ook AMD haar chips voor ultradunne Laptops kan niet meekomen. Deze herfst wordt de opvolger van de M1 verwacht. Of dit een nieuwe generatie wordt met nieuwe cores, zoals in de A15 in de komende iPhone (dat zou dan de M2 serie worden) of een M1x met meer cores moeten we nog even afwachten. De M1 is slecht het begin van de serie en de het instapmodel.

De M-serie is niet alleen een zeer goede en snelle chip, het is veel meer Het is ook een volledige optimalisatie van HW en SW en hun integratie. Apple heeft een sprong voorwaarts gemaakt op de concurrentie en ze zullen hard moeten werken om die achterstand in te halen. Dit zal bijna onmogelijk zijn om te evenaren of zelfs in te halen.

Waarom is dit?

Ten eerste is het de enige die op TSMC 5 NM proces wordt gemaakt, wat het mogelijk maakt 16 Miljard transistoren op een SoC te pakken. De M1 of liever gezegd Apple Silicon zijn geen CPU, ze bevatten CPU, maar zijn veel meer dan dat, ze bevatten meerdere gespecialiseerde eenheden die elk ontworpen zijn voor het uitvoeren van specifieke taken, daardoor zijn ze veel sneller, en ontlasten de CPU flink, denk aan video encoding en decoding, audio encoding en decoding, de NPU voor machine learning, DSP, Image Signal processing die bv ruis weghaalt uit video, en de secure enclave die voor encryptie en decriptie zorgt. Er zijn verder componenten die normaal gesproken over het moederbord verspreid zitten direct op elkaar gepakt. Denk de GPU, de i/o, de Thunderbolt controler, het geheugen etc etc.

Apple Silicon, de architectuur van deze SoC maakt gebruik van een Unified Memory Architecture, wat betekend dat alle processoren (of het nu CPU, NPU of GPU is) dezelfde adressen in het geheugen kunnen adresseren zonder dat het nodig is dat de data van RAM naar het geheugen op de grafische kaart hoeft gezet te worden en andersom.
Ook heeft de M1 8 decoders, die de instruction buffer veel sneller kunnen vullen. Dat is meer dan 2 keer zoveel als X86 CPU van Intel en AMD. Verder is de instruction buffer op de M1 zeker 3 keer zo groot dan wat er normaal op X86 CPU zit. Dit is mogelijk omdat de ARM instructies een vaste lengte hebben. Een Instructie op een X86 kan tussen de 1 en 15 Bytes lang zijn, iedere ARM Instructie is altijd 4 Bytes. De chip hoeft de Instructie dus niet te decoderen en te analyseren om te kijken waar deze begint en eindigt zoals bij een X86.
Dit betekent dat meer dan 4 Decoders op een x86 veel te complex wordt, maar op een ARM kan de hoeveelheid decoders zo groot worden gemaakt als de Processoren kunnen verwerken, er is daar niet echt sprake van een limiet door complexiteit.

Verder, de totale horizontale integratie. Kijk maar naar de A-Serie SOC, die ligt nog steeds minstens 2 generaties voor op het beste wat andere SOC fabrikanten kunnen produceren. Dit is niet omdat Apple Magic doet, het is omdat Apple HW en OS in huis heeft en het tot het uiterste kan optimaliseren. Ze hebben veel betere marges dan de concurrentie. Dit betekent dat ze productiecapaciteit kunnen kopen bij TSMC. Maar zelfs als, en dat is een grote als, anderen een SOC produceren die net zo snel is als Apples, dan hebben ze nog steeds een MS of Google nodig om een Operating System te produceren. Dit zal generiek zijn, en dus minder geoptimaliseerd, wat betekent, trager. De M-serie en A-serie SOC zijn specifiek ontworpen en gebouwd voor Apples OS, niet een generiek OS.

Een stukje historie
Apple benaderde toen ze begonnen aan het bedenken van de iPhone Intel om een processor te ontwikkelen die zeer energiezuinig was voor mobile apparaten. Intel had daar geen zin in, ze zegen daar geen toekomst in. Apple ging toen met de iPhone van start met een off the shelf Samsung 32-bit RISC ARM1176JZ(F)-S v1.0
Dikke 10 jaar geleden benaderde Apple ARM om een 64Bits architectuur te gaan ontwikkelen. Op dit punt was ARM nog lang niet zo ver. Vandaag is zover ik weet elke SoC in smartphones 64 Bits. Waarom 64 Bit? Nu, de belangrijkste reden is dat je onder 32 Bit slechts 4GB aan geheugen kan aanspreken en in de praktijk is dat nog minder door gereserveerde adres ruimte.

Met de 5S kwam de eerste 64Bit ARM SoC in een telefoon, de A7 in 2013.

De ontwikkeling sindsdien
Gen - - - SCP - -factor% - - - gain% - Proces
A7 - - - - 257 - - - 100,0 - - - 0 - - - - - -28NM (2013)
A8 - - - - 307 - - - 119,5 - - - 19,5 - - - 20NM
A9 - - - - 529 - - - 205,8 - - - 72,3 - - - 16FFC
A10 - - - 747 - - - 290,7 - - - 41,2 - - - 16FFC
A11 - - - 909 - - - 353,7 - - - 21,7 - - - 10NM
A12 - - - 1112 - - 432,7 - - - 22,3 - - - 7NM
A13 - - - 1309 - - 509,3 - - - 17,7 - - - 7NM
A14 - - - 1575 - - 612,8 - - - 20,3 - - - 5NM

De A14 is dus meer dan 6 keer zo snel als de A7 in Singe Core Performance en de doorsnee Gain per generatie is net iets meer dan 30%

In 2014 introduceerde Apple de Metal API, voor GPUs in iOS en een jaar later op de Mac, een API met veel minder overhead en alleen daarom al 30-40% betere prestaties. In 2017 kwam Metal 2 die nog veel betere prestaties liet zien en ook Machine Learning introduceerde en verbeterde in de Metal API. Een jaar later gaf Apple aan OpenGL te dumpen en alleen nog maar Metal te gaan ondersteunen in haar OS. Mojave vereiste daarna een Metal ondersteunende GPU wat het einde was van Nvidia ondersteuning in MacOS.
Apple had al een jaar of 4-5 duidelijk gemaakt dat de toekomst 64 Bit zou zijn en in Herfst 2019 was het dan zover, geen 32 Bits apps meer op MacOS.
Photoshop CS 6, wat volgens Adobe al jaren 64 Bit was, was dat dus niet en deed het niet meer. Ik geef toe, ik was flink pissig.

Techniek

M1 heeft geheel geen 32 Bits ondersteuning in de HW welke het design veel optimaler maakt. Dit maakt de overhead veel kleiner.

De M1 gebruikt een 128-bit geheugen bus over 8 keer 16bit geheugen kanalen, wat bij LPDDR4X geheugen een geheugen snelheid van 68,25 GB/Sec bandbreedte. Elk van de Firestorm Cores leest met 58Gb/Sec en schrijft met ca 35GB/Sec wat betekend dat iedere Firestorm core de Memory controler vrijwel volledig kan vullen.

Als Apple niet in serieuze problemen komt of grote fouten maakt, en de M-serie goed schaalt naar 12-24-36 of meer cores, en elke generatie 10-20% of zelfs 30% sneller ontwerpt dan de vorige (zoals de A-serie), zal Apple in de komende jaren nog sneller vooruit komen van wat anderen kunnen bieden. De enigen die echt kunnen concurreren zullen Google en MS zijn als zij hun eigen chips gaan ontwerpen en optimaliseren voor hun besturingssystemen. Dit zal ook het einde betekenen van generieke computerontwerpen (X86 Wintel, Android/ChromeOS). Dit is tenminste hoe ik het zie.

Wat de ontwikkelingen nu laten zien is dat het hebben van een SOC en een OS die volledig voor elkaar geoptimaliseerd zijn en het overboord gooien van zoveel mogelijk legacy veel zin heeft qua prestaties. Dit is het belangrijkste concurrentievoordeel van Apple. Een computer opgebouwd uit generieke componenten met een generiek OS dat vele hardware types en smaken ondersteunt is nooit zo efficiënt en snel als een dedicated platform met een horizontaal geïntegreerd OS. Ik zie MicroSoft of Google als kanshebbers als ze hun eigen HW architectuur gaan ontwikkelen.
Dit zal echter volume vergen en de SW industrie zover krijgen dat ze hun platform ondersteunen. Het is veel meer dan het bouwen van een snelle CPU.

Als je kijkt naar wat Apple de afgelopen jaren heeft gedaan, dan is dat iets waar de concurrentie heel hard voor zal moeten werken om dat in te halen

- Een eigen SOC ontwerpen, met een eigen GPU Architectuur, een eigen NPU, Video encoding en decoding in de hardware, shared RAM op de SOC (zodat er bijv. geen data van en naar CPU/GPU hoeft te gaan maar beide gewoon direct dezelfde data kunnen aanspreken) en nog veel meer slimme dingen.
- Alleen ondersteuning van Metal in de GPU, geen ondersteuning van andere API's zoals OpenGL of Vulcan en daardoor een verdere optimalisatie mogelijk maken, geen noodzaak om de hardware aan te passen om andere API's te herbergen.
- Apple heeft alle ondersteuning voor 32 Bit al enkele jaren geleden weggegooid, alles is 64 Bit, Legacy software draait gewoon niet meer. Legacy ondersteuning is als het fokken van snellere paarden in plaats van het bouwen van auto's. Stop ermee en je kunt je ontdoen van de stallen, het voer, etc etc. Of bij een computer, minder complexiteit, minder vierkante mm.
- Hun verschillende besturingssystemen zijn de afgelopen jaren naar elkaar toegegroeid, en is nu op het punt waar iOS software op MacOS draait (vanuit een architectuur standpunt)
- OS en HW zijn geoptimaliseerd op elkaar, ondersteunen zeer weinig Hardware en wanneer over 5-6 jaar of zo de ondersteuning stopt voor Intel CPU en AMD GPU alleen hun eigen SOC. Nog slankere code, nog meer optimalisatie mogelijk
- Rosetta II is 64 Bits en vertaald alle x86 64Bit software naar ARM 64 Bit, waardoor software met legacy x86 code zeer snel draait op hun M series
- Omdat ze één SOC-architectuur hebben voor smartphone, tablets, horloges, Set Top enz. worden de overheadkosten van het ontwikkelen van de kernen erin en de verdere functionaliteit verspreid over een ongelooflijk aantal SOC. Hierdoor zijn de marges hoger dan bij de concurrentie en kan Apple vooraf enorme productiecapaciteiten kopen van TSMC op hun nieuwste fabricageproces, waarschijnlijk zelfs TSMC financieren om zo nog meer concurrentievoordelen te bieden
- En heel belangrijk, veel software ontwikkelaars meegekregen naar het nieuwe platform, MS, Adobe, Affinity, Black Magic, om er maar een paar te noemen.


De toekomst
Voorspellen is altijd lastig, vooral als het over de toekomst gaat. Maar wat zit er aan te komen?


ARM V9
ARM zelf geeft aan dat met V9 de performance van hun ARM cores met meer dan 30% zal stijgen over de komende 2 generaties. Daarbij komt dan nog de performance gain van de nieuwe productiemethodes van TSCM, en verdere optimalisering die Apple zelf toevoegt en het verder verbeteren van de SW. Dan komen we in 2 generaties op een 40-60%
Dan zou de M3 serie in 2023 op 3NM de volgende prestaties bereiken

Conservatief geschat met 40%

---------------------------------Geekbench ----------------------------------Cinebench
En - - - -HP- - - -GPU - - - -Single - - - - -Multi - - - - -Metal - - - - - Single - - - - Multi
4 - - - - -4 - - - - -10 - - - - -2.442 - - - - -10.606 - - - - 37.800 - - - - 2.097 - - - - 10.864
2 - - - - -6 - - - - -10 - - - - -2.442 - - - - -15.070 - - - - 37.800 - - - - 1.798 - - - - 12.023
2 - - - - -12 - - - -16 - - - - -2.442 - - - - -29.719 - - - - 60.480 - - - - 1.798 - - - - 22.809
2 - - - - -20 - - - -32 - - - - -2.442 - - - - -49.252 - - - - 120.960 - - - 1.798 - - - - 37.190

Natuurlijk schalen ze niet liniar, maar de gain zal over 2 generaties waarschijnlijk meer zijn dan 40%. Nu zijn Geekbench en Cinebench maar benchmarks en daarom sowieso niet al te serieus te nemen. In real world zullen zal de snelheidswinst anders uitpakken, door aan de positieve kant, de verdere optimalisatie van de Software (geen gebruik meer maken van Rosetta II) en meer taken (zoals codecs) in Hardware ipv software, ProRes encoding en decoding in hardware (zoals nu al in de Afterburner kaart in de MacPro mogelijk is), meer decoders, hogere kloksnelheid, etc. etc.
Aan de negatieve kant, bijvoorbeeld de bottlenecks van hoe snel het geheugen en de SSD kunnen worden aangesproken, ontwikkelaars die generieke code willen gebruiken.

Laten we de fantasie even een toetertje roken.

Verder is het natuurlijk helemaal niet zeker dat Apple de SoC voor de High End gaat maken, want die markt is niet groot. Het zou zomaar kunnen dat de Workstations van Apple straks niet een SoC met heel veel cores heeft, maar meerdere SoC’s. Dit zou de ontwikkelkosten van het workstation flink drukken. Het is waarschijnlijk goedkoper een Workstation te maken met 4 of 8 SoC met 8 High Performance Cores dan daarvoor een een SoC te ontwikkelen met 32 of 64 Cores. Je zou zelfs kunnen denken aan het stapelen van en soort Mac Mini’s als legoblokken, geruchten van een dergelijke modulaire aanpak circuleerden voordat 2 jaar geleden de huidige MacPro werd geïntroduceerd. Je kan nu een Mac Mini kopen met een 8 Core CPU en GPU met 16GB geheugen voor ongeveer 1.250 Euro
Een MacPro met een 28 Core Xeon, 384GB geheugen en Een Radeon Pro W6900X en 2 TB opslag kost je 28.809 Euro.

23 keer zoveel.

Multicore score bij Geekbench van deze Xeon is 19.829
Die van de M1 is 7.453
Dat is dus 2,6 keer zo snel
De GPU van de Radeon scoort 168.783 in Metal
De M1 21.168
Bijna 8 keer zo snel.

Dus je kan nogal wat aan overhead voor de communicatie tussen de verschillende M1’s cq Mac Mini’s in reserve nemen, en voor de distributie van het rekenwerk. Zomaar een idee. Apple had eerder systemen met meerdere CPU’s maar die schaalden niet geweldig tov de prijs. Maar die situatie is nu wellicht anders. Een dergelijke aanpak kan je nu ook al doen voor een Renderfarm. Compressor van Apple laat je nu al (eigenlijk al jaren) het renderen en comprimeren van video distribueren over je netwerk.

Update
Max Tech vergelijkt een zware MacPro met de duurste grafische kaart met de M1 Mini in real world testen. En ja, de MacPro is sneller, maar niet heel erg veel sneller wat de 30 voudige prijs rechtvaardigen zou.
Dit belooft veel voor de Workstations die met Apple Silicon uitgerust gaan worden, die op performance zijn gericht, en niet op efficiency

Volgende: Kroketten zelf maken, heb je wat te doen tijdens een lockdown 22-08 Kroketten zelf maken, heb je wat te doen tijdens een lockdown
Volgende: Hoe snel is een RAM-Disc bij jullie? 16-08 Hoe snel is een RAM-Disc bij jullie?

Reacties


Door Tweakers user Jan Onderwater, vrijdag 20 augustus 2021 21:42

Wat ik al schreef, het sneller worden van SW door optimalisatie Da Vinci Resolve Video Editior is tot 3 keer zo snel geworden

Door Tweakers user Jogai, vrijdag 20 augustus 2021 22:32

MS is kampioen legacy ondersteuning, dus die gaan zoiets niet doen. Google is er groot genoeg voor, en die maken van android toch steeds meer een gesloten platform dus die gaan misschien wel mee.

Door Tweakers user Skyrunner, maandag 23 augustus 2021 12:41

Ik krijg een beetje PowerPC gevoelens met de komst van de M1 generatie :-)

Hoop dan ook van harte dat Apple gaat komen met een 15" MBP met M1(X), de 16" is me te duur en groot.

Door Tweakers user Jan Onderwater, dinsdag 24 augustus 2021 09:17

Jogai schreef op vrijdag 20 augustus 2021 @ 22:32:
MS is kampioen legacy ondersteuning, dus die gaan zoiets niet doen. Google is er groot genoeg voor, en die maken van android toch steeds meer een gesloten platform dus die gaan misschien wel mee.
MS zou ook een soort Rosetta kunnen ontwikkelen voor de Legacy, maar ik denk dat het kapot gereviewd zou worden omdat games er niet zo snel op zijn onder emulatie als op de nieuwste x86 met high end gaming kaart.

Door Tweakers user Jaaap, dinsdag 24 augustus 2021 23:31

Mooi verhaal, Jan, erg goed geschreven.
Een verzoekje: zou je aub wat spelfouten er uit willen halen?

Door Tweakers user Jan Onderwater, woensdag 25 augustus 2021 09:44

Jaaap schreef op dinsdag 24 augustus 2021 @ 23:31:
Mooi verhaal, Jan, erg goed geschreven.
Een verzoekje: zou je aub wat spelfouten er uit willen halen?
Spelfouten als?

Door Tweakers user Jaaap, woensdag 25 augustus 2021 22:39

Echt? Heb je geen spellingscontrole in je browser?
decriptie => decryptie
controler (2x) => controller
liniar => lineair
wat betekend => wat betekent
NM => nm (nanometer)

Door Tweakers user dfijma, donderdag 26 augustus 2021 11:21

en vertaald alle => en vertaalt alle

Door karel, woensdag 1 september 2021 22:17

precies het zelfde verhaal als een youtube video die ik net gezien heb lol.

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)