Hogyan befolyásolja az Apple M1 a gépi tanulást? (1. rész)

Az Apple bemutatta az első olyan Apple szilícium asztali/laptop processzort, amely az Apple A-sorozatú processzorain alapul az iPad és az iPhone termékcsaládban. Az új processzorral együtt három új Mac-et is bemutattak, köztük az új M1 MacBook Air-t, az M1 MacBook Pro-t és az M1 Mac mini-t.

Az új M1 Mac-ek hihetetlen specifikációkat reklámoznak az új M1 processzor használatával, akár 3,5-szer gyorsabb CPU sebességgel. A GPU sebessége akár 5x gyorsabb, az új Neural Engine használatával pedig akár 9x gyorsabb gépi tanulás. Ami az akkumulátor élettartamát illeti, a MacBook Air 15 órányi vezeték nélküli webes szörfözést és 18 órányi filmlejátszást hirdet (egy kis kikötés, hogy a filmlejátszás az Apple TV alkalmazással történik). Nem biztos, hogy ez számít, de ezt csak az idő fogja megmondani, ha valaki a Youtube-on kipróbálja. Ami a MacBook Pro-t illeti, az akkumulátor élettartama 17 óra vezeték nélküli internetezéssel és 20 óra Apple TV alkalmazással történő filmlejátszással. Nem tudom, te hogy vagy vele, de 20 óra hihetetlen. Jelenleg a 16″-os i9-es MacBook Pro-t használom, és úgy gondoltam, hogy annak 11 órás akkumulátor-üzemideje figyelemre méltó.

M1 architektúra

Az új M1 architektúra a legújabb 5 nm-es technológiával készül. A processzorba 1 CPU, 1 GPU, 1 Neural Engine és DRAM egységek vannak beépítve. Mivel a RAM a processzorba van beépítve, minden komponens ugyanahhoz a memóriához fér hozzá. Mit jelent ez? Nos, azt jelenti, hogy nincs többé teljesítményveszteség a memória egyik komponensről a másikra történő áthelyezése és átformálása miatt. Nem kell többé próbálgatni, hogy a modellje belefér-e a GPU memória specifikációiba.

CPU

A CPU egy 8 magos CPU, amelyből 4 mag a nagy teljesítményű magok az adatfeldolgozáshoz és a nagy teljesítményt igénylő feladatokhoz, 4 mag pedig az “e-core”-nak vagy nagy hatékonyságú magoknak nevezett magok, amelyek nagyobb hatékonyságú és alacsonyabb energiafogyasztású feldolgozást biztosítanak.

A weboldalon az Apple nem állítja a CPU sebességét; azonban egy Geekbench listán közzétett gadgets.ndtv.com 3,2 GHz-es alapfrekvenciát ír ki, ami magasabb, mint a 16″-es Macbook Pro-ban található Intel Core i9-9880H processzor alapfrekvenciája.

Hasonlítsunk össze néhány Geekbench pontszámot az új M1 processzorral kapcsolatban.

A 4 nagyon népszerű CPU eredményeit összehasonlítva az Apple M1 mindegyiket, még a 16″-os Macbook Pro-ban lévő i9-es processzort is kényelmesen lekörözi az egymagos pontszámban. Csak a többmagos értékeknél kezdjük látni, hogy a többiek, különösen az AMD processzorok versenyeznek az M1-gyel.

Mit jelent mindez a gépi tanulás szempontjából?

Nos, először is, a CPU és a GPU által megosztott RAM-nak növelnie kell a teljesítményt, mivel nincs késleltetés az adatok CPU RAM-ból GPU RAM-ba történő átvitelében.

Az egymagos pontszám vs. a többmagos pontszám tekintetében a legtöbb adatelőfeldolgozó könyvtár nem használja ki a processzor több magját; ezért a többmagos pontszám nagyon keveset segít az adatelőfeldolgozásban. Egy jobb egymagos pontszámmal jobban teljesít az adatelőfeldolgozásban.

GPU

A beépített GPU egy 8-magos GPU, amely 25 000 szál egyidejű végrehajtására képes. Az Apple állítása szerint ez a “világ leggyorsabb integrált grafikus processzora személyi számítógépben” 2,6 TFLOPS (FP32) teljesítményével. Az biztos, hogy ez egy integrált GPU esetében lenyűgöző, de minket, adattudósokat az általános teljesítmény érdekel.

Nézzünk meg néhány másikat az összehasonlításhoz.

Az értékeket elnézve valószínűleg jól működne videófeldolgozásra, képfeldolgozásra, Apple Arcade-ra vagy játékra. A GPU nem fog jól működni gépi tanuláshoz. Lehetne, de csak nem az a teljesítmény, amit én és te valószínűleg keresünk. Valami, mint például a Razer Blade Pro 17 az RTX 2080 Superrel 11,2 TFLOPS-mal jobban teljesítene. Ezzel a gondolattal igazad lenne. Az Apple azonban az M1-ben egy, a processzorba integrált Neural Engine-t is beépített, kifejezetten a gépi tanulás hatékonysága érdekében.

Neural Engine

Az M1 processzor az Apple iparágvezető Neural Engine-jét is hozza, amelyet kifejezetten a gépi tanulási folyamatokhoz terveztek. A neurális motor már korábban bekerült az A-sorozatú processzorba az iPadben és az iPhone-ban, de a Macben eddig még nem volt.

Az Apple 11 TOPS-t (Trillion Operations Per Second) állít az új 16 magos neurális motorral.

*11 TOPS? Úgy értik, hogy 11 TFLOPS? Ha ez 11 TFLOPS, akkor ez egy versenytárs lehet a térben.

Ha ezt a sebességet integrált memóriával (csökkentett késleltetés) és 20 órás akkumulátor-üzemidővel kombináljuk, akkor ez megváltoztathatja a játékot az úton lévő adattudósok számára. Nemcsak egy RTX 2080 Superhez hasonló GPU-t, egy CPU-t, amely az iparág egyik legjobb egymagos pontszámával rendelkezik, egy MacBook Air formát, hanem 18-20 órás akkumulátor-üzemidőt is kapunk. Wow!

Egy másik gondolat ezzel kapcsolatban az lenne, ha néhány ML-keretrendszer a GPU-t és a Neural Engine-t is kihasználná a tréning és a következtetés elvégzése érdekében.

Apple M1 és a szoftveres támogatás

Most beszéljünk a szoftveres támogatásról. A kérdéseim itt a következők:

Működik az M1 a leggyakrabban használt szoftverekkel? (pl. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Az Apple Silicon ARM-alapú utasításkészlet architektúrát használ. A Python már számos más platformon is fut, beleértve az ARM, MIPS, PowerPC, i386 és x86-64 platformokat. A Pythonnal nem lehet gond.

Juypter notebook

Előre nem világos, hogy a Juypter notebookok működnek-e az Apple M1 processzorral. Találtam egy linket, ami juypter notebookokat futtat ARM architektúrán docker segítségével. Ezt majd az idő eldönti. Talán a VSCode-nak, ha egyszer gyártásra kész lesz, lesz egy Juypter-bővítménye, ami működni fog.

VSCode

A Microsoft 2020. november 10-én, a Twitteren jelentette be, hogy dolgoznak a VSCode univerzális buildjén az Apple M1-re. E sorok írásakor az ARM kísérleti buildje az itt található oldalukon található.

Microsoft Excel

A Microsoft 2020. november 11-én azt is bejelentette, hogy 2020. november 11-én elindítja a Mac Office 2019 béta verziójának új univerzális buildjét, amely támogatja az új Apple M1 processzort. Ami azt illeti, Erik Schwiebert a Twitteren jelentette be, hogy a Microsoft még aznap kiadja a bétaverziót a bétacsatornán. A nyilvános kiadás dátumát azonban nem jelentették be.

Működik az M1 az ML keretrendszerekkel (pl. Tensorflow, Scikit-Learn, Keras stb.)?

Az Apple M1-es eseményen az Apple megemlítette a Tensorflow támogatását. Még nem találtam semmilyen konkrétumot ezzel az állítással kapcsolatban. A Tensorflow keretrendszer x86_64 architektúrára és Nvidia GPU-kra épül. ARM vagy Apple M1 architektúrára nincsenek más buildek.

Néhányan azt állítják, hogy a Tensorflow modellekből következtetéseket lehet levonni az Apple Converter előnyeit kihasználva. Itt egy link egy cikkre, amely a TF modellekből CoreML-be való konvertálásról szól. Néhányan mások szerint a Swift for Tensorflow-ra utalnak.

Ez jelenleg ismeretlen, és nem találok rá utalást.

Scikit-Learn

A Scikit-learn működni fog az Apple M1-gyel? Szerintem a rövid válasz az, hogy talán???? Tehát, amit tudunk, hogy a Python működni fog az M1 ARM architektúráján, és a Scikit-learn nem használja ki és nem használ GPU támogatást. Tehát elméletileg a Scikit-learn-nek működnie kellene az Apple M1-en.

Még folytathatnám, de örökké itt tartanánk az ML-ben használt összes könyvtárral (PyTorch, Keras, stb.)

Synopsis

  • Apple M1: 8 magos CPU, 8 magos GPU, 16 magos Neural Engine integrált memóriával a chipen.
  • Az Apple M1 CPU az egyik legmagasabb egymagos pontszámmal rendelkezik: 1687; rendben van a többmagos pontszám 7433, szemben az Intel i9-9880H-val (Macbook Pro 16″): 1029 egymagos, 6012 többmagos pontszám.
  • Az Apple M1 GPU 2,6 TFLOPS-ra jön be, szemben az Nvidia GeForce RTX 2080 Super (Razer laptopok) 11,2 TFLOPS-ával.
  • Az Apple M1 Neural Engine másodpercenként 11 billió operátort hirdet. A kérdés itt az, hogy ez TFLOPS (FP32)? Ezt az Nvidia GeForce RTX 2080 Super 11,2.
  • Az Apple M1 rendelkezik szoftveres támogatással?

Disclaimer: Még nem került a kezembe egy Apple M1. Már megrendeltem, de még nem kaptam meg. Csak kutatást használok a szoftveres támogatással kapcsolatos állításaimhoz. Ne vásároljon az eredményeim alapján, kérem, végezze el saját kutatását, mielőtt vásárol.

Mihelyt megkapom az Apple M1 MacBook Pro-t, új történetet fogok írni az eredményeimről.

Frissítve:

Csak frissítésként itt a Docker hivatalos sajtóközleménye az M1 chipről és a támogatásról.

A cikk második része itt található.

A cikk második része itt található.

Szólj hozzá!