Hur kommer Apple M1 att påverka maskininlärning? (Del 1)

Apple presenterade den första Apple Silicon-processorn för stationära och bärbara datorer som bygger på Apple A-seriens processorer i iPad- och iPhone-serien. De presenterade den nya processorn tillsammans med tre nya Macs, inklusive de nya M1 MacBook Air, M1 MacBook Pro och M1 Mac mini.

Dessa nya M1 Macs annonserar otroliga specifikationer med hjälp av den nya M1-processorn, CPU-hastigheter som är upp till 3,5x snabbare. GPU-hastigheter upp till 5x snabbare och med den nya Neural Engine upp till 9x snabbare maskininlärning. När det gäller batteritid annonserar MacBook Air 15 timmars trådlös webbsurfning och 18 timmars filmuppspelning (en liten invändning gäller filmuppspelning med Apple TV-appen). Jag vet inte om det gör någon skillnad, men det får tiden utvisa när någon på Youtube testar det. MacBook Pro har en batteritid på 17 timmars trådlös webbsurfning och 20 timmars uppspelning av filmer med Apple TV-appen. Jag vet inte hur det är med dig, men 20 timmar är otroligt. Jag kör för närvarande 16″ i9 MacBook Pro, och jag tyckte att batteritiden på 11 timmar var anmärkningsvärd.

M1-arkitektur

Den nya M1-arkitekturen är tillverkad med hjälp av den senaste 5nm-tekniken. Den har 1 CPU, 1 GPU, 1 Neural Engine och DRAM-enheter inbyggda i processorn. Eftersom RAM-minnet är inbyggt i processorn får alla komponenter tillgång till samma minne. Vad innebär detta? Jo, det betyder att det inte längre finns någon prestandaförlust på grund av att minnet flyttas och omformas från en komponent till nästa komponent. Inget mer försök att räkna ut om din modell får plats med GPU:ns minnesspecifikationer.

CPU

Processorn är en CPU med 8 kärnor där 4 kärnor är högpresterande kärnor för databehandling och uppgifter som kräver hög prestanda och 4 kärnor som kallas ”e-cores” eller högeffektiva kärnor som ger bearbetning med mer effektivitet och lägre energiförbrukning.

På hemsidan uppger Apple inga CPU-hastigheter, men i en Geekbench-lista på gadgets.ndtv.com uppger en basfrekvens på 3,2 GHz, vilket är högre än basfrekvensen för Intel Core i9-9880H-processorn som finns i 16-tums Macbook Pro.

Låt oss jämföra några Geekbench-resultat för den nya M1-processorn.

Vid jämförelse av resultaten från fyra mycket populära CPU:er överträffar Apple M1 dem alla, till och med i9-processorn i 16-tums Macbook Pro, i singelkärnresultatet. Det är inte förrän man kommer till flerkärniga resultat som man börjar se andra, särskilt AMD-processorer, konkurrera med M1.

Vad betyder allt detta för maskininlärning?

För det första bör RAM som delas mellan CPU och GPU öka prestandan på grund av bristen på latens vid överföring av data från CPU RAM till GPU RAM.

Vad gäller poäng för en kärna jämfört med poäng för flera kärnor, drar de flesta databearbetningsbibliotek inte nytta av de flera kärnorna i processorn; därför gör poäng för flera kärnor väldigt lite för databearbetning. Om du har en bättre poäng för en enda kärna kommer du att göra bättre ifrån dig vid dataförbehandling.

GPU

Den integrerade GPU:n är en 8-kärnig GPU, som kan exekvera 25 000 trådar samtidigt. Apple hävdar att detta är ”världens snabbaste integrerade grafik i en persondator” med en genomströmning på 2,6 TFLOPS (FP32). Visst är detta imponerande för en integrerad GPU, men vi som datavetare är intresserade av den totala prestandan.

Låt oss titta på några andra för jämförelser.

Om vi tittar på dessa värden skulle den förmodligen fungera bra för videabehandling, bildbehandling, Apple Arcade eller spel. GPU:n kommer inte att fungera bra för maskininlärning. Det skulle den kunna, men bara inte den prestanda som jag och du förmodligen letar efter. Något som Razer Blade Pro 17 med RTX 2080 Super skulle klara sig bättre med 11,2 TFLOPS. Du skulle ha rätt med den tanken. Apple har dock också i M1 lagt till en Neural Engine integrerad i processorn specifikt för effektivitet vid maskininlärning.

Neural Engine

M1-processorn tillför också Apples branschledande Neural Engine som är särskilt utformad för maskininlärningsprocesser. Den neurala motorn har tidigare lagts till i processorn i A-serien på iPad och iPhone men har ännu inte funnits på Mac förrän nu.

Apple hävdar 11 TOPS (Trillion Operations Per Second) på sin nya neurala motor med 16 kärnor.

*11 TOPS? Menar de 11 TFLOPS? Om det är 11 TFLOPS kan det vara en konkurrent på området.

När du kombinerar den hastigheten med integrerat minne (minskad latenstid) och 20 timmars batteritid kan det vara en förändring för datavetare som är på språng. Du får inte bara en GPU som är jämförbar med en RTX 2080 Super, en CPU som har ett av branschens bästa resultat för enstaka kärnor, en formfaktor som MacBook Air, utan också 18-20 timmars batteritid. Wow!

En annan tanke om detta skulle vara om några av ML-ramverken kunde dra nytta av både GPU:n och Neural Engine för att träna och utföra inferenser.

Apple M1 och mjukvarustöd

Nu ska vi prata om mjukvarustöd. Mina frågor här är:

Fungerar M1 med några av de mest använda programvarorna? (t.ex. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon använder en ARM-baserad instruktionsarkitektur. Python körs redan på många andra plattformar, inklusive ARM, MIPS, PowerPC, i386 och x86-64. Det borde inte vara några problem med Python.

Juypter Notebook

Det är oklart just nu om Juypter notebooks fungerar med Apples M1-processor. Jag har hittat en länk som kör juypter notebooks på en ARM-arkitektur med hjälp av docker. Tiden får utvisa detta. Kanske kommer VSCode när det väl är produktionsfärdigt att ha ett Juypter-tillägg som fungerar.

VSCode

Microsoft meddelade den 10 november 2020, på Twitter, att de arbetar på en universalbyggnad av VSCode för Apple M1. I skrivande stund har de den experimentella ARM-byggnaden på sin webbplats som finns här.

Microsoft Excel

Microsoft meddelade också den 11 november 2020 att de kommer att lansera en ny Universal-byggnad av sin betaversion av Mac Office 2019 med stöd för den nya Apple M1-processorn. Faktum är att Erik Schwiebert meddelade på Twitter att Microsoft släpper en betaversion samma dag på betakanalen. De tillkännagav dock inget datum för den offentliga versionen.

Arbetar M1 med ML-ramverk (t.ex. Tensorflow, Scikit-Learn, Keras etc.)?

På Apple M1-eventet nämnde Apple stöd för Tensorflow. Jag har ännu inte hittat några detaljer kring det påståendet. Ramverket Tensorflow är byggt för x86_64-arkitekturen och Nvidia GPU:er. Det finns inga andra byggs för ARM- eller Apple M1-arkitektur.

Vissa hävdar att man kan utföra inferenser från Tensorflow-modeller genom att dra nytta av Apple Converter. Här finns en länk till en artikel som handlar om att konvertera från TF-modeller till CoreML. Några andra tror att de hänvisar till Swift för Tensorflow.

Just nu är det okänt och jag kan inte hitta något som hänvisar till det.

Scikit-Learn

Kommer Scikit-learn att fungera med Apple M1? Jag tror att det korta svaret är kanske????? Så vad vi vet är att Python kommer att fungera för ARM-arkitekturen i M1, och Scikit-learn drar inte nytta av eller använder GPU-stöd. Så teoretiskt sett borde Scikit-learn fungera för Apple M1.

Jag skulle kunna fortsätta, men vi skulle vara här i all evighet med alla bibliotek som används inom ML (PyTorch, Keras etc.)

Synopsis

  • Apple M1: CPU med 8 kärnor, GPU med 8 kärnor, Neural Engine med 16 kärnor och integrerat minne på chipet.
  • Apple M1 CPU har en av de högsta poängen för enstaka kärnor med 1687; okej poäng för flera kärnor med 7433 jämfört med Intel i9-9880H (Macbook Pro 16″): 1029 poäng för enstaka kärnor, 6012 poäng för flera kärnor.
  • Apple M1 GPU kommer in på 2,6 TFLOPS jämfört med Nvidia GeForce RTX 2080 Super (Razer laptops) på 11,2 TFLOPS.
  • Apple M1 Neural Engine annonserar 11 biljoner operatörer per sekund. Frågan här är om det är TFLOPS (FP32). Detta jämförs med Nvidia GeForce RTX 2080 Super på 11,2.
  • Har Apple M1 mjukvarustöd?

>

Disclaimer: Jag har inte fått tag på en Apple M1 ännu. Jag har beställt den men ännu inte fått den. Jag använder bara forskning för att göra mina påståenden om mjukvarustöd. Gör inte köp baserat på mina resultat, gör din egen forskning innan du gör ett köp.

När jag har fått min Apple M1 MacBook Pro kommer jag att skriva en ny artikel med mina resultat.

Uppdaterad:

Som en uppdatering, här är den officiella pressen från Docker om M1-chippet och stödet.

Del 2 av den här artikeln hittar du här.

Lämna en kommentar