Miten Apple M1 vaikuttaa koneoppimiseen? (Osa 1)

Apple esitteli kaikkien aikojen ensimmäisen Applen piipohjaisen työpöytä-/kannettavan tietokoneen prosessorin, joka perustuu Applen A-sarjan prosessoreihin iPad- ja iPhone-mallistossa. He esittelivät tämän uuden prosessorin yhdessä kolmen uuden Mac-tietokoneen kanssa, mukaan lukien uusi M1 MacBook Air, M1 MacBook Pro ja M1 Mac mini.

Nämä uudet M1-tietokoneet mainostavat uskomattomia speksejä käyttämällä uutta M1-prosessoria, suorittimen nopeus jopa 3,5 kertaa nopeampi. GPU-nopeudet jopa 5x nopeammat, ja uuden Neural Engine -prosessorin avulla jopa 9x nopeampi koneoppiminen. MacBook Airin akkukeston osalta mainostetaan 15 tuntia langatonta verkkosurffailua ja 18 tuntia elokuvien toistoa (pieni varoitus koskee elokuvien toistoa Apple TV -sovelluksella). En ole varma, onko sillä merkitystä, mutta aika näyttää, kun joku Youtubessa testaa sitä. MacBook Pron akun kesto on 17 tuntia langatonta verkkosurffailua ja 20 tuntia elokuvien toistoa Apple TV -sovelluksella. En tiedä sinusta, mutta 20 tuntia on uskomatonta. Käytössäni on tällä hetkellä 16″ i9 MacBook Pro, jonka 11 tunnin akkukesto oli mielestäni huomattava.

M1-arkkitehtuuri

Uusi M1-arkkitehtuuri on valmistettu uusimmalla 5 nm:n tekniikalla. Siinä on 1 CPU, 1 GPU, 1 Neural Engine ja DRAM-yksiköt, jotka on rakennettu prosessoriin. Koska RAM-muisti on rakennettu prosessoriin, kaikki komponentit käyttävät samaa muistia. Mitä tämä tarkoittaa? No, se tarkoittaa, että suorituskyky ei enää heikkene, kun muistia siirretään ja muokataan uudelleen komponentilta toiselle. Enää ei tarvitse yrittää selvittää, mahtuuko mallisi näytönohjaimen muistispesifikaatioihin.

CPU

Suorittimessa on 8-ydinprosessori, jossa 4 ydintä on huipputehokkaita ytimiä tietojenkäsittelyyn ja suurta suorituskykyä vaativiin tehtäviin, ja 4 ydintä, joita kutsutaan ”e-coreiksi” eli tehokkaiksi ytimiksi ja jotka tarjoavat käsittelyä suuremmalla hyötysuhteella ja pienemmällä virrankulutuksella.

Sivustollaan Apple ei väitä mitään suorittimen nopeuksia; Geekbench-listaus on kuitenkin julkaistu gadgets.ndtv.com-sivustolla on ilmoitettu perustaajuudeksi 3,2 GHz, joka on korkeampi kuin 16″ Macbook Prosta löytyvän Intel Core i9-9880H -prosessorin perustaajuus.

Vertaillaan muutamia Geekbench-pisteitä uudesta M1-prosessorista.

Vertailemalla neljän erittäin suositun suorittimen tuloksia, Apple M1 päihittää ne kaikki, jopa 16″ Macbook Prossa olevan i9-prosessorin mukavasti yhden ytimen pisteet. Vasta moniydinlaskennassa alkaa näkyä, että muut, erityisesti AMD:n prosessorit, kilpailevat M1:n kanssa.

Mitä tämä kaikki tarkoittaa koneoppimisen kannalta?

Noh, ensinnäkin RAM-muistin jakamisen CPU:n ja GPU:n kesken pitäisi lisätä suorituskykyä, koska tiedonsiirrossa CPU:n RAM-muistista GPU:n RAM-muistiin ei ole latenssia.

As for single-core score vs. multi-core score, useimmat datan esikäsittelykirjastot eivät hyödynnä prosessorin useita ytimiä; siksi multi-core score tekee hyvin vähän datan esikäsittelylle. Parempi yhden ytimen pistemäärä auttaa datan esikäsittelyssä.

GPU

Integroitu GPU on 8-ytiminen GPU, joka voi suorittaa 25 000 säiettä samanaikaisesti. Apple väittää tämän olevan ”maailman nopein integroitu grafiikka henkilökohtaisessa tietokoneessa” 2,6 TFLOPSin (FP32) läpimenoteholla. Koneoppimiseen GPU ei tule toimimaan hyvin. Se voisi, mutta ei vain sitä suorituskykyä, jota minä ja sinä luultavasti etsimme. Jokin Razer Blade Pro 17:n kaltainen RTX 2080 Super -näytönohjaimella varustettu laite pärjäisi paremmin 11,2 TFLOPS:lla. Olisit oikeassa tuon ajatuksen kanssa. Apple on kuitenkin lisännyt M1:ään myös prosessoriin integroidun Neural Engine -moottorin erityisesti koneoppimisen tehokkuuteen.

Neural Engine

M1-prosessori tuo mukanaan myös Applen alan johtavan Neural Engine -moottorin, joka on suunniteltu erityisesti koneoppimisprosesseihin. Tarkoittavatko ne 11 TFLOPSia? Jos se on 11 TFLOPS, niin se voisi olla kilpailija tilassa.

Kun yhdistät tuon nopeuden integroituun muistiin (vähentynyt latenssi) ja 20 tunnin akkukestoon, se voisi olla peliä muuttava tekijä liikkeellä oleville datatieteilijöille. Sen lisäksi, että saat RTX 2080 Superiin verrattavan näytönohjaimen, suorittimen, jolla on yksi alan parhaista yhden ytimen tuloksista, MacBook Airin muotoilutekijän sekä 18-20 tunnin akunkeston. Vau!

Toinen ajatus tästä olisi, jos jotkut ML-kehykset voisivat hyödyntää sekä GPU:ta että Neural Engineä harjoittelussa ja päätelmien tekemisessä.

Apple M1 ja ohjelmistotuki

Puhutaan nyt ohjelmistotuesta. Kysymykseni tässä ovat:

Toimii M1 joidenkin käytetyimpien ohjelmistojen kanssa? (esim. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon käyttää ARM-pohjaista ohjearkkitehtuuria. Python toimii jo monilla muilla alustoilla, kuten ARM, MIPS, PowerPC, i386 ja x86-64. Pythonin kanssa ei pitäisi olla ongelmia.

Juypter Notebook

Juuri nyt on epäselvää, toimivatko Juypter-kannettavat Applen M1-prosessorin kanssa. Olen löytänyt yhden linkin, jossa juypter notebookit toimivat ARM-arkkitehtuurilla dockerin avulla. Aika näyttää tämän osalta. Ehkä VSCode, kun se on tuotantokelpoinen, saa Juypter-laajennuksen, joka toimii.

VSCode

Microsoft ilmoitti 10.11.2020 Twitterissä, että he työskentelevät VSCoden Universal buildin parissa Apple M1:lle. Tätä kirjoitettaessa heillä on ARM:n kokeellinen build heidän sivustollaan, joka sijaitsee täällä.

Microsoft Excel

Microsoft ilmoitti myös 11. marraskuuta 2020, että se julkaisee uuden Universal buildin Mac Office 2019 -beetaversiostaan, joka tukee Applen uutta M1-prosessoria. Itse asiassa Erik Schwiebert ilmoitti Twitterissä, että Microsoft julkaisee beta-version samana päivänä beta-kanavalla. He eivät kuitenkaan ilmoittaneet päivämääriä julkiselle julkaisulle.

Työskenteleekö M1 ML-kehysten kanssa (eli Tensorflow, Scikit-Learn, Keras jne.)?

Applen M1-tapahtumassa Apple mainitsi tuen Tensorflowlle. En ole vielä löytänyt mitään yksityiskohtia tuon väitteen ympäriltä. Tensorflow-kehys on rakennettu x86_64-arkkitehtuurille ja Nvidian näytönohjaimille. ARM- tai Apple M1 -arkkitehtuurille ei ole muita rakennelmia.

Jotkut väittävät, että Tensorflow-malleista voi tehdä päätelmiä hyödyntämällä Apple Converteria. Tässä on linkki artikkeliin, jossa puhutaan TF-mallien muuntamisesta CoreML:ään. Jotkut muut luulevat, että he viittaavat Swift for Tensorflow’hun.

Juuri nyt sitä ei tunneta, enkä löydä mitään siihen viittaavaa.

Scikit-Learn

Toimii Scikit-learn Apple M1:llä? Lyhyt vastaus taitaa olla ehkä???? Tiedämme siis, että Python toimii M1:n ARM-arkkitehtuurilla, eikä Scikit-learn hyödynnä tai käytä GPU-tukea. Joten teoriassa Scikit-learnin pitäisi toimia Apple M1:llä.

Voisin jatkaa, mutta olisimme täällä ikuisesti kaikkien ML:ssä käytettävien kirjastojen kanssa (PyTorch, Keras jne.)

Synopsis

  • Apple M1: 8-ytiminen prosessori, 8-ytiminen grafiikkasuoritin, 16-ytiminen neuraalimoottori integroidulla muistilla sirulla.
  • Apple M1:n suorittimella on yksi korkeimmista yhden ytimen pisteet 1687; ok pisteet monen ytimen pisteet 7433 verrattuna Intel i9-9880H (Macbook Pro 16″): 1029 yhden ytimen, 6012 monen ytimen pisteet.
  • Apple M1 -näytönohjaimella saavutetaan 2,6 TFLOPS verrattuna Nvidia GeForce RTX 2080 Superiin (Razer-kannettavat), jolla on 11,2 TFLOPS.
  • Apple M1 Neural Engine mainostaa 11 biljoonaa operaattoria sekunnissa. Kysymys tässä on, onko se TFLOPS (FP32)? Tätä verrataan Nvidia GeForce RTX 2080 Superiin 11,2.
  • Onko Apple M1:llä ohjelmistotuki?

Vastuulausekkeet: En ole saanut Apple M1:ää vielä käsiini. Olen tilannut sen mutta en ole vielä saanut sitä. Käytän vain tutkimustietoa tehdäkseni väitteitä ohjelmistotuesta. Älkää tehkö ostoksia tuloksieni perusteella, vaan tehkää oma tutkimuksenne ennen ostosten tekemistä.

Heti kun saan Apple M1 MacBook Pron, kirjoitan uuden jutun tuloksistani.

Päivitetty:

Päivityksenä tässä on Dockerin virallinen lehdistötiedote M1-piiristä ja -tuesta.

Tämän artikkelin 2. osa löytyy täältä.

M1-artikkelin 2. osa löytyy täältä.

Jätä kommentti