Cum va afecta Apple M1 Machine Learning? (Partea 1)

Apple a prezentat primul procesor Apple silicon pentru desktop/laptop bazat pe procesoarele Apple din seria A din gama iPad și iPhone. Ei au prezentat acest nou procesor împreună cu trei noi Mac-uri, inclusiv noile MacBook Air M1, MacBook Pro M1 și Mac mini M1.

Aceste noi Mac-uri M1 anunță specificații incredibile folosind noul procesor M1, viteze ale procesorului M1 de până la 3,5 ori mai rapide. Viteze GPU de până la 5 ori mai rapide, iar folosind noul Neural Engine, până la 9 ori mai rapid machine learning. În ceea ce privește durata de viață a bateriei, MacBook Air vine anunțând 15 ore de navigare web fără fir și 18 ore de redare a filmelor (o mică atenționare pe care o au se referă la redarea filmelor folosind aplicația Apple TV). Nu sunt sigur dacă asta face o diferență, dar numai timpul va spune când cineva de pe Youtube va testa asta. În ceea ce privește MacBook Pro, durata de viață a bateriei este de 17 ore de navigare web wireless și 20 de ore de redare de filme cu aplicația Apple TV. Nu știu ce părere aveți voi, dar 20 de ore este incredibil . Eu folosesc în prezent MacBook Pro i9 de 16″ și mi s-a părut remarcabilă autonomia de 11 ore a acestuia.

Arhitectura M1

Noua arhitectură M1 este realizată folosind cea mai recentă tehnologie pe 5nm. Are 1 CPU, 1 GPU, 1 Neural Engine și unități DRAM încorporate în procesor. Deoarece memoria RAM este încorporată în procesor, toate componentele accesează aceeași memorie. Ce înseamnă acest lucru? Ei bine, înseamnă că nu mai există pierderi de performanță din cauza mutării și remodelării memoriei de la o componentă la următoarea componentă. Nu mai trebuie să încercați să vă dați seama dacă modelul dvs. se poate încadra în specificațiile de memorie ale GPU.

CPU

Procesorul este un procesor cu 8 nuclee, 4 nuclee fiind nuclee de înaltă performanță pentru procesarea datelor și sarcini care necesită performanțe ridicate, iar 4 nuclee supranumite „e-cores” sau nuclee de înaltă eficiență care asigură procesarea cu mai multă eficiență și un consum mai mic de energie.

Pe site-ul web, Apple nu susține nicio viteză a procesorului; cu toate acestea, o listă Geekbench postată pe gadgeturi.ndtv.com afișează o frecvență de bază de 3,2GHz, care este mai mare decât frecvența de bază a procesorului Intel Core i9-9880H care se găsește în Macbook Pro de 16″.

Să comparăm câteva scoruri Geekbench ale noului procesor M1.

Comparând rezultatele a 4 procesoare foarte populare, Apple M1 le depășește pe toate, chiar și procesorul i9 din Macbook Pro de 16″ în mod confortabil în scorul single-core. Abia când ajungeți la multi-core începeți să vedeți că alții, în special procesoarele AMD, concurează cu M1.

Ce înseamnă toate acestea pentru Machine Learning?

Bine, în primul rând, faptul că memoria RAM este partajată între CPU și GPU ar trebui să crească performanța datorită lipsei de latență în transferul de date de la CPU RAM la GPU RAM.

În ceea ce privește scorul pentru un singur nucleu față de scorul pentru mai multe nuclee, majoritatea bibliotecilor de preprocesare a datelor nu profită de nucleele multiple din procesor; prin urmare, scorul pentru mai multe nuclee face foarte puțin pentru preprocesarea datelor. Având un scor single-core mai bun se va descurca mai bine în preprocesarea datelor.

GPU

GPU integrat este un GPU cu 8 nuclee, care poate executa 25.000 de fire de execuție concomitent. Apple susține că aceasta este „cea mai rapidă grafică integrată din lume într-un computer personal”, cu o capacitate de procesare de 2,6 TFLOPS (FP32). Cu siguranță că acest lucru este impresionant pentru un GPU integrat, dar noi, în calitate de cercetători de date, suntem interesați de performanța generală.

Să ne uităm la altele pentru comparații.

Urmărind aceste valori, probabil că ar funcționa bine pentru procesare video, procesare de imagini, Apple Arcade sau jocuri. GPU-ul nu va funcționa bine pentru învățarea automată. Ar putea, dar nu va avea performanțele pe care eu și dumneavoastră le căutăm probabil. Ceva precum Razer Blade Pro 17 cu RTX 2080 Super s-ar descurca mai bine cu 11,2 TFLOPS. Ai avea dreptate cu acest gând. Cu toate acestea, Apple a adăugat în M1 și un Neural Engine integrat în procesor, special pentru eficiența învățării automate.

Neural Engine

Procesorul M1 aduce, de asemenea, motorul Neural Engine de la Apple, lider în industrie, special conceput pentru procesele de învățare automată. Motorul neural a fost adăugat anterior procesorului din seria A de pe iPad și iPhone, dar nu a fost încă pe Mac până acum.

Apple pretinde 11 TOPS (trilioane de operații pe secundă) pe noul său motor neural cu 16 nuclee.

*11 TOPS? Se referă la 11 TFLOPS? Dacă este 11 TFLOPS, atunci ar putea fi un concurent în acest spațiu.

Când combinați această viteză cu memoria integrată (latență redusă) și 20 de ore de autonomie a bateriei, ar putea fi un schimbător de joc pentru cercetătorii de date în mișcare. Nu numai că obțineți un GPU comparabil cu un RTX 2080 Super, un procesor care are unul dintre cele mai bune scoruri single-core din industrie, un factor de formă al MacBook Air, dar și 18-20 de ore de autonomie a bateriei. Wow!

O altă idee în acest sens ar fi dacă unele dintre cadrele ML ar putea profita atât de GPU, cât și de Neural Engine pentru a se antrena și a efectua inferențe.

Apple M1 și suportul software

Acum să vorbim despre suportul software. Întrebările mele aici sunt:

Funcționează M1 cu unele dintre cele mai utilizate software-uri? (de exemplu, Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon utilizează o arhitectură cu set de instrucțiuni bazată pe ARM. Python rulează deja pe multe alte platforme, inclusiv ARM, MIPS, PowerPC, i386 și x86-64. Nu ar trebui să existe probleme cu Python.

Juypter Notebook

Este neclar în acest moment dacă notebook-urile Juypter funcționează cu procesorul Apple M1. Am găsit un link care rulează notebook-uri juypter pe o arhitectură ARM folosind docker. Timpul va spune în acest caz. Poate că VSCode, odată ce va fi gata de producție, va avea o extensie Juypter care va funcționa.

VSCode

Microsoft a anunțat pe 10 noiembrie 2020, pe Twitter, că lucrează la o construcție universală a VSCode pentru Apple M1. La momentul scrierii acestui articol, au build-ul experimental ARM pe site-ul lor situat aici.

Microsoft Excel

Microsoft a anunțat, de asemenea, pe 11 noiembrie 2020, că va lansa un nou build Universal al versiunii beta a Mac Office 2019 care acceptă noul procesor Apple M1. De fapt, Erik Schwiebert a anunțat pe Twitter că Microsoft va lansa o versiune beta în aceeași zi pe canalul beta. Cu toate acestea, ei nu au anunțat nicio dată pentru lansarea publică.

Funcționează M1 cu cadre ML (adică Tensorflow, Scikit-Learn, Keras etc.)?

În cadrul evenimentului Apple M1, Apple a menționat suportul pentru Tensorflow. Nu am găsit încă nicio precizare în jurul acestei afirmații. Cadrul Tensorflow este construit pentru arhitectura x86_64 și pentru GPU-urile Nvidia. Nu există alte compilări pentru arhitectura ARM sau Apple M1.

Cei care pretind că puteți efectua inferențe din modele Tensorflow profitând de Apple Converter. Aici este un link către un articol care vorbește despre conversia de la modele TF la CoreML. Alții cred că se referă la Swift pentru Tensorflow.

În acest moment este necunoscut și nu pot găsi nimic care să facă referire la el.

Scikit-Learn

Scikit-learn va funcționa cu Apple M1? Cred că răspunsul scurt este poate???? Deci, ceea ce știm este că Python va funcționa pentru arhitectura ARM a modelului M1, iar Scikit-learn nu profită de sau nu folosește suportul GPU. Deci, teoretic, Scikit-learn ar trebui să funcționeze pentru Apple M1.

Am putea continua, dar am fi aici la nesfârșit cu toate bibliotecile utilizate în ML (PyTorch, Keras, etc.)

Synopsis

  • Apple M1: CPU cu 8 nuclee, GPU cu 8 nuclee, motor neural cu 16 nuclee cu memorie integrată în cip.
  • Procesorul Apple M1 are unul dintre cele mai mari scoruri single-core la 1687; scor ok la scorul multi-core la 7433 în comparație cu Intel i9-9880H (Macbook Pro 16″): 1029 scor single-core, 6012 scor multi-core.
  • Apple M1 GPU se situează la 2,6 TFLOPS în comparație cu Nvidia GeForce RTX 2080 Super (laptopuri Razer) la 11,2 TFLOPS.
  • Apple M1 Neural Engine anunță 11 trilioane de operatori pe secundă. Întrebarea care se pune aici este dacă este vorba de TFLOPS (FP32)? Acest lucru este comparat cu Nvidia GeForce RTX 2080 Super la 11,2.
  • Apple M1 are suport software?

Disclaimer: Nu am pus încă mâna pe un Apple M1. L-am comandat, dar încă nu l-am primit. Mă folosesc doar de cercetare pentru a-mi face afirmațiile privind suportul software. Nu faceți achiziții pe baza rezultatelor mele, vă rog să efectuați propriile cercetări înainte de a face o achiziție.

După ce voi primi Apple M1 MacBook Pro, voi scrie un nou articol cu constatările mele.

Actualizat:

Pentru o actualizare, iată presa oficială de la Docker cu privire la cipul M1 și suport.

Partea 2 a acestui articol poate fi găsită aici.

Lasă un comentariu