Hoe gaat de Apple M1 Machine Learning beïnvloeden? (Deel 1)

Apple presenteerde de allereerste Apple silicium desktop/laptop processor, gebaseerd op de Apple A-serie processors in de iPad en iPhone line-up. Ze introduceerden deze nieuwe processor samen met drie nieuwe Macs, waaronder de nieuwe M1 MacBook Air, M1 MacBook Pro, en M1 Mac mini.

Deze nieuwe M1 Macs adverteren met ongelooflijke specs door gebruik te maken van de nieuwe M1 processor, CPU snelheden tot 3,5x sneller. GPU-snelheden tot 5x sneller, en met behulp van de nieuwe Neural Engine, tot 9x snellere machine learning. Wat de gebruiksduur van de batterij betreft, wordt aangekondigd dat de MacBook Air 15 uur draadloos kan surfen op het web en 18 uur films kan afspelen (een klein voorbehoud is dat films kunnen worden afgespeeld met de Apple TV-app). Ik weet niet zeker of dat een verschil maakt, maar de tijd zal het leren als iemand op Youtube het uitprobeert. De batterij van de MacBook Pro gaat 17 uur mee als je draadloos op het web surft en 20 uur als je films in de Apple TV app afspeelt. Ik weet niet hoe het met u zit, maar 20 uur is ongelooflijk. Ik heb momenteel de 16-inch i9 MacBook Pro, en ik vond de batterijduur van 11 uur daarvan opmerkelijk.

M1-architectuur

De nieuwe M1-architectuur is gemaakt met de nieuwste 5nm-technologie. Het heeft 1 CPU, 1 GPU, 1 Neural Engine, en DRAM eenheden ingebouwd in de processor. Aangezien de RAM in de processor is ingebouwd, hebben alle componenten toegang tot hetzelfde geheugen. Wat betekent dit? Nou, het betekent geen prestatieverlies meer door het verplaatsen en aanpassen van het geheugen van de ene component naar de volgende component. U hoeft niet meer uit te zoeken of uw model in de geheugenspecificaties van de GPU past.

CPU

De CPU is een CPU met 8 cores, waarvan 4 cores krachtige cores zijn voor gegevensverwerking en taken die hoge prestaties vereisen, en 4 cores “e-cores” of hoogrendementskernen worden genoemd voor efficiëntere verwerking en lager stroomverbruik.

Op de website claimt Apple geen CPU-snelheden; een Geekbench-vermelding die is geplaatst op gadgets.ndtv.com wordt echter een basisfrequentie van 3,2 GHz genoemd, wat hoger is dan de basisfrequentie van de Intel Core i9-9880H-processor in de 16-inch Macbook Pro.

Laten we eens wat Geekbench-scores van de nieuwe M1-processor vergelijken.

Als je de resultaten van 4 zeer populaire CPU’s vergelijkt, presteert de Apple M1 beter dan alle andere, zelfs de i9-processor in de 16″ Macbook Pro scoort ruim beter in de single-core score. Pas als je bij de multi-core komt, begin je anderen, vooral de AMD processors, te zien concurreren met de M1.

Wat betekent dit allemaal voor Machine Learning?

Wel, ten eerste, het feit dat RAM wordt gedeeld door CPU en GPU zou de prestaties moeten verhogen door het gebrek aan latentie bij het overbrengen van gegevens van CPU RAM naar GPU RAM.

Wat betreft de single-core score versus de multi-core score, de meeste data preprocessing bibliotheken maken geen gebruik van de meerdere kernen in de processor; daarom doet de multi-core score heel weinig voor data preprocessing. Het hebben van een betere single-core score zal het beter doen bij data preprocessing.

GPU

De geïntegreerde GPU is een 8-core GPU, die 25.000 threads gelijktijdig kan uitvoeren. Apple claimt dat dit “s werelds snelste geïntegreerde grafische processor in een personal computer” is met een verwerkingscapaciteit van 2,6 TFLOPS (FP32). Dit is zeker indrukwekkend voor een geïntegreerde GPU, maar wij als data scientists zijn geïnteresseerd in de algehele prestaties.

Laten we eens kijken naar enkele anderen ter vergelijking.

Kijkend naar deze waarden, zou het waarschijnlijk goed werken voor videobewerking, beeldbewerking, Apple Arcade, of gaming. De GPU zal niet goed werken voor machinaal leren. Het zou kunnen, maar niet de prestaties die ik en jij waarschijnlijk zoeken. Iets als de Razer Blade Pro 17 met de RTX 2080 Super zou het beter doen met 11,2 TFLOPS. Je zou gelijk hebben met die gedachte. Apple heeft echter ook in de M1 een Neural Engine toegevoegd die in de processor is geïntegreerd, specifiek voor machine learning efficiency.

Neural Engine

De M1-processor brengt ook Apple’s toonaangevende Neural Engine die speciaal is ontworpen voor machine learning processen. De neural engine is eerder al toegevoegd aan de A-serie processor op de iPad en iPhone, maar moest tot nu toe nog op de Mac komen.

Apple claimt 11 TOPS (Trillion Operations Per Second) op zijn nieuwe 16-core neural engine.

*11 TOPS? Bedoelen ze 11 TFLOPS? Als het 11 TFLOPS is, zou het een concurrent in de ruimte kunnen zijn.

Als je die snelheid combineert met geïntegreerd geheugen (minder latentie) en 20 uur batterijduur, zou dat een game-changer kunnen zijn voor datawetenschappers die onderweg zijn. Je krijgt niet alleen een GPU die vergelijkbaar is met een RTX 2080 Super, een CPU die een van de beste single-core scores in de industrie heeft, een vormfactor van de MacBook Air, maar ook 18-20 uur batterijlevensduur. Wow!

Een andere gedachte hierover zou zijn als sommige van de ML-frameworks zouden kunnen profiteren van zowel de GPU als de Neural Engine om te trainen en inferentie uit te voeren.

Apple M1 en software-ondersteuning

Nu laten we het hebben over software-ondersteuning. Mijn vragen hier zijn:

Werkt M1 met enkele van de meest gebruikte software? (b.v. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon maakt gebruik van een ARM-gebaseerde instructiesetarchitectuur. Python draait al op veel andere platforms, waaronder ARM, MIPS, PowerPC, i386, en x86-64. Er zouden geen problemen moeten zijn met Python.

Juypter Notebook

Het is op dit moment onduidelijk of Juypter notebooks werken met de Apple M1 processor. Ik heb een link gevonden die juypter notebooks draait op een ARM architectuur met behulp van docker. De tijd zal het leren. Misschien zal VSCode, zodra het productierijp is, een Juypter-extensie hebben die zal werken.

VSCode

Microsoft kondigde op 10 november 2020 op Twitter aan dat ze werken aan een universele build van VSCode voor de Apple M1. Op het moment dat ik dit schrijf, hebben ze de ARM-experimentele build op hun site die zich hier bevindt.

Microsoft Excel

Microsoft kondigde op 11 november 2020 ook aan dat het een nieuwe universele build van zijn Mac Office 2019-bèta zal lanceren die de nieuwe Apple M1-processor ondersteunt. In feite kondigde Erik Schwiebert op Twitter aan dat Microsoft diezelfde dag een bètaversie zou vrijgeven op het bètakanaal. Ze kondigden echter geen data aan voor de openbare release.

Werkt M1 met ML-frameworks (dat wil zeggen, Tensorflow, Scikit-Learn, Keras, enz.)?

Tijdens het Apple M1-evenement noemde Apple ondersteuning voor Tensorflow. Ik heb nog geen specifieke informatie over die claim gevonden. Het Tensorflow-framework is gebouwd voor de x86_64-architectuur en Nvidia GPU’s. Er zijn geen andere builds voor ARM of Apple M1 architectuur.

Sommigen beweren dat je inferenties uit Tensorflow modellen kunt uitvoeren door gebruik te maken van de Apple Converter. Hier is een link naar een artikel over het omzetten van TF modellen naar CoreML. Sommige anderen denken dat ze verwijzen naar Swift voor Tensorflow.

Op dit moment is het onbekend, en ik kan niets vinden dat ernaar verwijst.

Scikit-Learn

Wil Scikit-learn werken met de Apple M1? Ik denk dat het korte antwoord is: misschien??? Wat we weten is dat Python zal werken voor de ARM architectuur van de M1, en Scikit-learn maakt geen gebruik van GPU ondersteuning. Dus theoretisch zou Scikit-learn moeten werken voor de Apple M1.

Ik zou door kunnen gaan, maar we zouden hier voor altijd zijn met alle bibliotheken die worden gebruikt in ML (PyTorch, Keras, enz.)

Synopsis

  • Apple M1: 8 core CPU, 8 core GPU, 16 core Neural Engine met geïntegreerd geheugen op de chip.
  • Apple M1 CPU heeft een van de hoogste single-core scores op 1687; ok score op multi-core score op 7433 in vergelijking met de Intel i9-9880H (Macbook Pro 16″): 1029 single-core, 6012 multi-core score.
  • Apple M1 GPU komt op 2,6 TFLOPS in vergelijking met Nvidia GeForce RTX 2080 Super (Razer laptops) op 11,2 TFLOPS.
  • Apple M1 Neural Engine adverteert 11 biljoen operatoren per seconde. De vraag hier is, is dat TFLOPS (FP32)? Dit wordt vergeleken met de Nvidia GeForce RTX 2080 Super met 11.2.
  • Heeft de Apple M1 software ondersteuning?

Disclaimer: ik heb nog geen Apple M1 in handen gehad. Ik heb hem besteld, maar nog niet ontvangen. Ik gebruik alleen onderzoek om mijn beweringen over softwareondersteuning te onderbouwen. Doe geen aankopen op basis van mijn resultaten, doe eerst je eigen onderzoek voordat je een aankoop doet.

Als ik mijn Apple M1 MacBook Pro heb ontvangen, zal ik een nieuw verhaal schrijven met mijn bevindingen.

Updated:

Mom even bij te werken, hier is de officiële pers van Docker over de M1-chip en ondersteuning.

Deel 2 van dit artikel is hier te vinden.

Plaats een reactie