Hvordan vil Apple M1 påvirke Machine Learning? (Del 1)

Apple præsenterede den første Apple siliciumprocessor til stationære/laptop-computere nogensinde, der er baseret på Apple A-seriens processorer i iPad- og iPhone-serien. De præsenterede denne nye processor sammen med tre nye Macs, herunder den nye M1 MacBook Air, M1 MacBook Pro og M1 Mac mini.

Disse nye M1 Macs reklamerer med utrolige specifikationer ved hjælp af den nye M1-processor, CPU-hastigheder på op til 3,5 gange hurtigere. GPU-hastigheder op til 5 gange hurtigere, og ved hjælp af den nye Neural Engine op til 9 gange hurtigere maskinlæring. Med hensyn til batterilevetid reklamerer MacBook Air med 15 timers trådløs web-surfing og 18 timers afspilning af film (et lille forbehold er afspilning af film ved hjælp af Apple TV-appen). Ikke sikker på om det gør en forskel, men det vil kun tiden vise, når nogen på Youtube tester det. Hvad angår MacBook Pro, er dens batterilevetid på 17 timers trådløs web-surfing og 20 timers afspilning af film med Apple TV-appen. Jeg ved ikke med dig, men 20 timer er utroligt . Jeg kører i øjeblikket 16″ i9 MacBook Pro med en 16″ i9 MacBook Pro, og jeg syntes, at batterilevetiden på 11 timer på den var bemærkelsesværdig.

M1-arkitektur

Den nye M1-arkitektur er lavet ved hjælp af den nyeste 5nm-teknologi. Den har 1 CPU, 1 GPU, 1 Neural Engine og DRAM-enheder indbygget i processoren. Da RAM’en er indbygget i processoren, har alle komponenter adgang til den samme hukommelse. Hvad betyder det? Jo, det betyder, at der ikke længere er noget tab af ydeevne på grund af flytning og omformning af hukommelsen fra den ene komponent til den næste komponent. Du behøver ikke længere forsøge at finde ud af, om din model kan passe ind i GPU’ens hukommelsesspecifikationer.

CPU

Cpu’en er en 8-kernet CPU med 4 kerner, der er højtydende kerner til databehandling og opgaver, der kræver høj ydeevne, og 4 kerner, der er døbt “e-cores” eller højeffektive kerner, som giver behandling med større effektivitet og lavere strømforbrug.

På hjemmesiden hævder Apple ikke nogen CPU-hastigheder; men i en Geekbench-liste, der er offentliggjort på gadgets.ndtv.com oplyser en grundfrekvens på 3,2 GHz, hvilket er højere end grundfrekvensen for Intel Core i9-9880H-processoren, der findes i 16″ Macbook Pro.

Lad os sammenligne nogle Geekbench-scores på den nye M1-processor.

Sammenligner vi resultaterne fra 4 meget populære CPU’er, overgår Apple M1 dem alle, selv i9-processoren i 16″ Macbook Pro komfortabelt i single-core-scoren. Det er først, når man kommer til multi-core, hvor man begynder at se andre, især AMD-processorer, konkurrere med M1.

Hvad betyder alt dette for Machine Learning?

Tja, for det første bør RAM, der deles på tværs af CPU og GPU, øge ydeevnen på grund af den manglende latenstid ved overførsel af data fra CPU RAM til GPU RAM.

Med hensyn til single-core score vs. multi-core score, udnytter de fleste dataforbehandlingsbiblioteker ikke de mange kerner i processoren; derfor gør multi-core score meget lidt for dataforbehandling. Hvis du har en bedre single-core score, vil du gøre det bedre i dataforbehandling.

GPU

Den integrerede GPU er en 8-kernet GPU, som kan udføre 25.000 tråde samtidig. Apple hævder, at dette er “verdens hurtigste integrerede grafik i en personlig computer” med en gennemløbskapacitet på 2,6 TFLOPS (FP32). Det er helt sikkert imponerende for en integreret GPU, men vi som dataloger er interesseret i den samlede ydelse.

Lad os se på nogle andre til sammenligning.

Hvis vi ser på disse værdier, ville den sandsynligvis fungere godt til videobearbejdning, billedbehandling, Apple Arcade eller spil. GPU’en vil ikke fungere godt til maskinlæring. Det kunne den godt, men bare ikke den ydelse jeg og du sikkert leder efter. Noget som Razer Blade Pro 17 med RTX 2080 Super ville gøre det bedre med 11,2 TFLOPS. Du ville have ret med den tanke. Apple har dog også tilføjet i M1 en Neural Engine integreret i processoren specifikt til maskinlæringseffektivitet.

Neural Engine

M1-processoren bringer også Apples brancheførende Neural Engine, der er specifikt designet til maskinlæringsprocesser. Den neurale motor er tidligere blevet tilføjet til processoren i A-serien på iPad og iPhone, men har endnu ikke været på Mac’en før nu.

Apple hævder 11 TOPS (Trillion Operations Per Second) på sin nye neurale motor med 16 kerner.

*11 TOPS? Mener de 11 TFLOPS? Hvis det er 11 TFLOPS, så kunne det være en konkurrent på området.

Når man kombinerer den hastighed med integreret hukommelse (reduceret latenstid) og 20 timers batterilevetid, kunne det være en game-changer for dataloger på farten. Du får ikke kun en GPU, der kan sammenlignes med en RTX 2080 Super, en CPU, der har en af de bedste single-core-scores i branchen, en formfaktor som MacBook Air, men også 18-20 timers batterilevetid. Wow!

En anden tanke om dette ville være, hvis nogle af ML-rammerne kunne drage fordel af både GPU’en og Neural Engine for at træne og udføre inferens.

Apple M1 og softwareunderstøttelse

Nu skal vi tale om softwareunderstøttelse. Mine spørgsmål her er:

Funktionerer M1 med nogle af de mest anvendte programmer? (f.eks. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon anvender en ARM-baseret instruktionssætarkitektur. Python kører allerede på mange andre platforme, herunder ARM, MIPS, PowerPC, i386 og x86-64. Der burde ikke være nogen problemer med Python.

Juypter Notebook

Det er uklart lige nu, om Juypter notebooks fungerer med Apple M1-processoren. Jeg har fundet et link, der kører juypter notebooks på en ARM-arkitektur ved hjælp af docker. Tiden vil vise sig på dette. Måske vil VSCode, når det er produktionsklart, have en Juypter-udvidelse, der vil fungere.

VSCode

Microsoft meddelte den 10. november 2020 på Twitter, at de arbejder på et universelt build af VSCode til Apple M1. I skrivende stund har de det eksperimentelle ARM-build på deres websted, der ligger her.

Microsoft Excel

Microsoft annoncerede også den 11. november 2020, at de vil lancere et nyt Universal-build af deres Mac Office 2019 beta, der understøtter den nye Apple M1-processor. Faktisk annoncerede Erik Schwiebert på Twitter, at Microsoft samme dag frigav en beta-version på betakanalen samme dag. De annoncerede dog ikke nogen datoer for den offentlige udgivelse.

Funktionerer M1 med ML-frameworks (dvs. Tensorflow, Scikit-Learn, Keras osv.)?

På Apple M1-eventet nævnte Apple understøttelse af Tensorflow. Jeg har endnu ikke fundet nogen nærmere detaljer omkring denne påstand. Tensorflow-rammen er bygget til x86_64-arkitekturen og Nvidia GPU’er. Der findes ingen andre builds til ARM- eller Apple M1-arkitekturen.

Nogle hævder, at man kan udføre inferens fra Tensorflow-modeller ved at udnytte Apple Converter. Her er et link til en artikel, der taler om konvertering fra TF-modeller til CoreML. Nogle andre mener, at de henviser til Swift for Tensorflow.

Det er lige nu ukendt, og jeg kan ikke finde noget, der henviser til det.

Scikit-Learn

Vil Scikit-learn fungere med Apple M1? Jeg tror det korte svar er måske????? Så det vi ved er, at Python vil fungere til ARM-arkitekturen i M1, og Scikit-learn udnytter eller bruger ikke GPU-understøttelse. Så teoretisk set burde Scikit-learn virke til Apple M1.

Jeg kunne blive ved, men vi ville være her for evigt med alle de biblioteker, der bruges i ML (PyTorch, Keras osv.)

Synopsis

  • Apple M1: 8 core CPU, 8 core GPU, 16 core Neural Engine med integreret hukommelse på chippen.
  • Apple M1 CPU har en af de højeste single-core scorer på 1687; ok score på multi-core score på 7433 sammenlignet med Intel i9-9880H (Macbook Pro 16″): 1029 single-core, 6012 multi-core score.
  • Apple M1 GPU kommer op på 2,6 TFLOPS sammenlignet med Nvidia GeForce RTX 2080 Super (Razer laptops) på 11,2 TFLOPS.
  • Apple M1 Neural Engine annoncerer 11 trillioner operatører pr. sekund. Spørgsmålet her er, om det er TFLOPS (FP32)? Dette sammenlignes med Nvidia GeForce RTX 2080 Super på 11,2.
  • Har Apple M1 softwareunderstøttelse?

Disclaimer: Jeg har ikke fået fingre i en Apple M1 endnu. Jeg har bestilt den, men har endnu ikke modtaget den. Jeg bruger kun research til at fremsætte mine påstande om software support. Du skal ikke foretage køb baseret på mine resultater, udfør venligst din egen research før du foretager et køb.

Når jeg modtager min Apple M1 MacBook Pro, vil jeg skrive en ny historie med mine resultater.

Opdateret:

Kun for en opdatering, her er den officielle presse fra Docker om M1-chippen og support.

Del 2 af denne artikel kan findes her.

Skriv en kommentar