Come influirà l’Apple M1 sul Machine Learning? (Parte 1)

Apple ha presentato il primo processore desktop/laptop in silicio Apple basato sui processori Apple serie A della linea iPad e iPhone. Hanno introdotto questo nuovo processore insieme a tre nuovi Mac, tra cui il nuovo M1 MacBook Air, M1 MacBook Pro, e M1 Mac mini.

Questi nuovi Mac M1 stanno pubblicizzando specifiche incredibili utilizzando il nuovo processore M1, velocità della CPU fino a 3,5x più veloce. La GPU è fino a 5 volte più veloce, e usando il nuovo Neural Engine, l’apprendimento automatico è fino a 9 volte più veloce. Per quanto riguarda la durata della batteria, il MacBook Air sta arrivando pubblicizzando 15 ore di navigazione web wireless e 18 ore di riproduzione di film (un piccolo avvertimento che hanno è la riproduzione di film utilizzando l’app Apple TV). Non sono sicuro che questo faccia la differenza, ma solo il tempo lo dirà quando qualcuno su Youtube lo testerà. Per quanto riguarda il MacBook Pro, la durata della batteria arriva a 17 ore di navigazione web wireless e 20 ore di riproduzione di filmati con l’app Apple TV. Non so voi, ma 20 ore sono incredibili. Attualmente sto usando il MacBook Pro i9 da 16″, e ho pensato che la durata della batteria di 11 ore fosse notevole.

Architettura M1

La nuova architettura M1 è fatta usando l’ultima tecnologia a 5nm. Ha 1 CPU, 1 GPU, 1 motore neurale e unità DRAM integrate nel processore. Poiché la RAM è incorporata nel processore, tutti i componenti accedono alla stessa memoria. Cosa significa questo? Beh, significa niente più perdite di prestazioni dovute allo spostamento e al rimodellamento della memoria da un componente a quello successivo. Non dovrai più cercare di capire se il tuo modello può rientrare nelle specifiche di memoria della GPU.

CPU

La CPU è una CPU a 8 core, con 4 core che sono core ad alte prestazioni per l’elaborazione dei dati e i compiti che richiedono alte prestazioni e 4 core soprannominati “e-cores” o core ad alta efficienza che forniscono elaborazione con più efficienza e minor consumo energetico.

Sul sito web, Apple non dichiara alcuna velocità della CPU; tuttavia, un elenco Geekbench pubblicato su gadget.ndtv.com riporta una frequenza di base di 3.2GHz che è più alta della frequenza di base del processore Intel Core i9-9880H che si trova nel Macbook Pro da 16″.

Confrontiamo alcuni punteggi Geekbench sul nuovo processore M1.

Confrontando i risultati di 4 CPU molto popolari, l’Apple M1 li supera tutti, anche il processore i9 nel Macbook Pro 16″ comodamente nel punteggio single-core. Non è fino a quando si arriva al multi-core dove si inizia a vedere gli altri, in particolare i processori AMD, competere con l’M1.

Cosa significa tutto questo per il Machine Learning?

Bene, prima di tutto, la RAM condivisa tra la CPU e la GPU dovrebbe aumentare le prestazioni a causa della mancanza di latenza nel trasferimento dei dati dalla RAM della CPU alla RAM della GPU.

Per quanto riguarda il punteggio single-core rispetto al punteggio multi-core, la maggior parte delle librerie di pre-elaborazione dei dati non sfrutta i core multipli nel processore; quindi, il punteggio multi-core fa molto poco per la pre-elaborazione dei dati. Avere un miglior punteggio single-core farà meglio nella pre-elaborazione dei dati.

GPU

La GPU integrata è una GPU a 8 core, che può eseguire 25.000 threads simultaneamente. Apple sostiene che questa è la “grafica integrata più veloce del mondo in un personal computer” con un throughput di 2,6 TFLOPS (FP32). Sicuramente questo è impressionante per una GPU integrata, ma noi come scienziati dei dati siamo interessati alle prestazioni complessive.

Guardiamo alcuni altri per un confronto.

Guardando questi valori, probabilmente funzionerebbe bene per l’elaborazione video, l’elaborazione delle immagini, Apple Arcade, o il gioco. La GPU non funzionerà bene per l’apprendimento automatico. Potrebbe, ma non le prestazioni che io e voi probabilmente stiamo cercando. Qualcosa come il Razer Blade Pro 17 con la RTX 2080 Super farebbe meglio con 11,2 TFLOPS. Avresti ragione con questo pensiero. Tuttavia, Apple ha anche aggiunto nell’M1 un motore neurale integrato nel processore specificamente per l’efficienza dell’apprendimento automatico.

Motore neurale

Il processore M1 porta anche il motore neurale leader del settore di Apple specificamente progettato per i processi di apprendimento automatico. Il motore neurale è stato precedentemente aggiunto al processore della serie A su iPad e iPhone, ma non è ancora arrivato sul Mac fino ad ora.

Apple dichiara 11 TOPS (Trillion Operations Per Second) sul suo nuovo motore neurale a 16 core.

*11 TOPS? Intendono 11 TFLOPS? Se sono 11 TFLOPS allora potrebbe essere un concorrente nello spazio.

Quando si combina quella velocità con la memoria integrata (latenza ridotta) e 20 ore di durata della batteria, questo potrebbe essere un cambio di gioco per gli scienziati di dati in movimento. Non solo si ottiene una GPU paragonabile a una RTX 2080 Super, una CPU che ha uno dei migliori punteggi single-core nel settore, un fattore di forma del MacBook Air, ma anche 18-20 ore di durata della batteria. Wow!

Un altro pensiero su questo sarebbe se alcuni dei framework ML potessero sfruttare sia la GPU che il motore neurale per allenarsi ed eseguire l’inferenza.

Apple M1 e il supporto software

Ora parliamo del supporto software. Le mie domande qui sono:

M1 funziona con alcuni dei software più usati? (ad esempio, Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon usa un’architettura a set di istruzioni basata su ARM. Python funziona già su molte altre piattaforme tra cui ARM, MIPS, PowerPC, i386 e x86-64. Non dovrebbero esserci problemi con Python.

Juypter Notebook

Non è chiaro al momento se i notebook Juypter funzionino con il processore Apple M1. Ho trovato un link che sta eseguendo i notebook Juypter su un’architettura ARM usando docker. Il tempo lo dirà su questo. Forse VSCode una volta che sarà pronto per la produzione avrà un’estensione Juypter che funzionerà.

VSCode

Microsoft ha annunciato il 10 novembre 2020, su Twitter, che stanno lavorando su una build universale di VSCode per Apple M1. Al momento di scrivere questo, hanno la build sperimentale ARM sul loro sito situato qui.

Microsoft Excel

Microsoft ha anche annunciato l’11 novembre 2020, che lancerà una nuova build universale del suo Mac Office 2019 beta che supporta il nuovo processore Apple M1. Di fatto, Erik Schwiebert ha annunciato su Twitter che Microsoft stava rilasciando una versione beta quello stesso giorno sul canale beta. Tuttavia, non hanno annunciato alcuna data per il rilascio pubblico.

M1 funziona con i framework ML (cioè, Tensorflow, Scikit-Learn, Keras, ecc.)?

All’evento Apple M1, Apple ha menzionato il supporto per Tensorflow. Non ho ancora trovato alcuna specifica intorno a questa affermazione. Il framework Tensorflow è costruito per l’architettura x86_64 e le GPU Nvidia. Non ci sono altre build per l’architettura ARM o Apple M1.

Alcuni sostengono che è possibile eseguire l’inferenza dai modelli Tensorflow sfruttando il convertitore Apple. Ecco un link a un articolo che parla della conversione da modelli TF a CoreML. Alcuni altri pensano che si riferiscano a Swift per Tensorflow.

Al momento è sconosciuto, e non riesco a trovare nulla che faccia riferimento ad esso.

Scikit-Learn

Scikit-learn funzionerà con l’Apple M1? Penso che la risposta breve sia forse? Allora, quello che sappiamo è che Python funzionerà per l’architettura ARM dell’M1, e Scikit-learn non sfrutta o usa il supporto GPU. Quindi, teoricamente, Scikit-learn dovrebbe funzionare per l’Apple M1.

Potrei continuare, ma saremmo qui per sempre con tutte le librerie usate in ML (PyTorch, Keras, ecc.)

Synopsis

  • Apple M1: 8 core CPU, 8 core GPU, 16 core Neural Engine con memoria integrata sul chip.
  • La CPU Apple M1 ha uno dei più alti punteggi single-core a 1687; punteggio ok sul punteggio multi-core a 7433 rispetto all’Intel i9-9880H (Macbook Pro 16″): 1029 single-core, 6012 punteggio multi-core.
  • Apple M1 GPU arriva a 2,6 TFLOPS rispetto a Nvidia GeForce RTX 2080 Super (laptop Razer) a 11,2 TFLOPS.
  • Apple M1 Neural Engine pubblicizza 11 trilioni di operatori al secondo. La domanda qui è: si tratta di TFLOPS (FP32)? Questo è paragonato alla Nvidia GeForce RTX 2080 Super a 11.2.
  • L’Apple M1 ha il supporto software?

Disclaimer: Non ho ancora messo le mani su un Apple M1. L’ho ordinato ma non l’ho ancora ricevuto. Sto solo usando la ricerca per fare le mie affermazioni sul supporto software. Non fate acquisti basati sui miei risultati, per favore eseguite le vostre ricerche prima di fare un acquisto.

Una volta ricevuto il mio Apple M1 MacBook Pro, scriverò una nuova storia con le mie scoperte.

Aggiornato:

Per un aggiornamento, ecco la stampa ufficiale di Docker sul chip M1 e il supporto.

Parte 2 di questo articolo può essere trovata qui.

Lascia un commento