Jak Apple M1 ovlivní strojové učení? (1. část)

Apple představil vůbec první křemíkový procesor Apple pro stolní počítače/notebooky založený na procesorech Apple řady A v řadách iPad a iPhone. Tento nový procesor představil spolu se třemi novými Macy, včetně nových MacBooků Air M1, MacBooků Pro M1 a Maců mini M1.

Tyto nové Macy M1 inzerují neuvěřitelné specifikace využívající nový procesor M1, rychlost CPU až 3,5× vyšší. Rychlost GPU až 5x vyšší a při použití nového Neural Engine až 9x rychlejší strojové učení. Co se týče výdrže baterie, MacBook Air přichází s reklamou na 15 hodin bezdrátového surfování po webu a 18 hodin přehrávání filmů (malou výhradu mají k přehrávání filmů pomocí aplikace Apple TV). Nejsem si jistý, jestli je to nějaký rozdíl, ale to ukáže až čas, až to někdo na Youtube otestuje. Pokud jde o MacBook Pro, jeho výdrž baterie činí 17 hodin bezdrátového surfování po webu a 20 hodin přehrávání filmů pomocí aplikace Apple TV. Nevím jak vy, ale 20 hodin je neuvěřitelných . V současné době používám 16″ MacBook Pro s procesorem i9 a jeho výdrž na baterii 11 hodin mi přišla pozoruhodná.

Architektura M1

Nová architektura M1 je vyrobena nejnovější 5nm technologií. Má 1 CPU, 1 GPU, 1 Neural Engine a jednotky DRAM integrované v procesoru. Protože je paměť RAM zabudovaná v procesoru, všechny komponenty přistupují ke stejné paměti. Co to znamená? Inu, znamená to, že už nedochází ke ztrátě výkonu kvůli přesouvání a přetváření paměti z jedné komponenty na druhou. Už žádné zjišťování, zda se váš model vejde do paměťových specifikací GPU.

CPU

Procesor je osmijádrový, přičemž 4 jádra jsou vysoce výkonná jádra pro zpracování dat a úlohy vyžadující vysoký výkon a 4 jádra přezdívaná „e-jádra“ neboli vysoce účinná jádra zajišťující zpracování s vyšší efektivitou a nižší spotřebou energie.

Na webových stránkách Apple neuvádí žádné rychlosti procesoru, nicméně výpis Geekbench zveřejněný na gadgets.ndtv.com je zveřejněna základní frekvence 3,2 GHz, což je vyšší než základní frekvence procesoru Intel Core i9-9880H, který se nachází v 16″ Macbooku Pro.

Podívejme se na porovnání některých výsledků v Geekbench u nového procesoru M1.

Při porovnání výsledků 4 velmi populárních procesorů překonává Apple M1 všechny, dokonce i procesor i9 v 16″ Macbooku Pro pohodlně ve skóre jednoho jádra. Až ve vícejádrovém skóre začnou M1 konkurovat ostatní, zejména procesory AMD.

Co to všechno znamená pro strojové učení?

V první řadě by sdílení paměti RAM mezi CPU a GPU mělo zvýšit výkon díky absenci latence při přenosu dat z RAM CPU do RAM GPU.

Co se týče jednojádrového skóre oproti vícejádrovému skóre, většina knihoven pro předzpracování dat nevyužívá více jader v procesoru; vícejádrové skóre tedy pro předzpracování dat dělá jen velmi málo. Pokud máte lepší jednojádrové skóre, budete si při předzpracování dat počínat lépe.

GPU

Integrovaný GPU je osmijádrový GPU, který dokáže souběžně vykonávat 25 000 vláken. Apple tvrdí, že jde o „nejrychlejší integrovanou grafiku na světě v osobním počítači“ s propustností 2,6 TFLOPS (FP32). Na integrovaný GPU je to jistě působivé, ale nás jako datové vědce zajímá celkový výkon.

Podívejme se pro srovnání na některé další.

Podíváme-li se na tyto hodnoty, pravděpodobně by se dobře hodil pro zpracování videa, obrázků, Apple Arcade nebo hry. GPU nebude dobře fungovat pro strojové učení. Mohl by, ale jen ne takový výkon, jaký já i vy pravděpodobně hledáte. Něco jako Razer Blade Pro 17 s RTX 2080 Super by si s 11,2 TFLOPS vedlo lépe. S touto myšlenkou bys měl pravdu. Apple však do M1 přidal také Neural Engine integrovaný do procesoru speciálně pro efektivitu strojového učení.

Neural Engine

Procesor M1 přináší také špičkový Neural Engine společnosti Apple speciálně navržený pro procesy strojového učení. Neuronový engine byl již dříve přidán do procesoru řady A v iPadu a iPhonu, ale v Macu dosud chyběl.

Apple u nového 16jádrového neuronového enginu uvádí 11 TOPS (bilion operací za sekundu).

*11 TOPS? Myslí se tím 11 TFLOPS? Pokud je to 11 TFLOPS, pak by to mohl být konkurent v této oblasti.

Když se tato rychlost spojí s integrovanou pamětí (snížená latence) a 20hodinovou výdrží baterie, mohlo by to pro datové vědce na cestách změnit pravidla hry. Získáte nejen grafický procesor srovnatelný s RTX 2080 Super, procesor, který má jedno z nejlepších jednojádrových skóre v oboru, provedení MacBooku Air, ale také 18-20hodinovou výdrž baterie. Páni!

Další myšlenkou na toto téma by bylo, kdyby některý z ML frameworků mohl využívat GPU i Neural Engine k trénování a provádění inference.

Apple M1 a softwarová podpora

Teď si povíme něco o softwarové podpoře. Moje otázky zde jsou:

Funguje M1 s některým z nejpoužívanějších softwarů? (např. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon používá architekturu instrukční sady ARM. Python již běží na mnoha dalších platformách, včetně ARM, MIPS, PowerPC, i386 a x86-64. S Pythonem by neměly být žádné problémy.

Juypter Notebook

V tuto chvíli není jasné, zda notebooky Juypter fungují s procesorem Apple M1. Našel jsem jeden odkaz, který provozuje notebooky Juypter na architektuře ARM pomocí dockeru. To ukáže až čas. Možná, že VSCode, až bude připraven k výrobě, bude mít rozšíření Juypter, které bude fungovat.

VSCode

Microsoft 10. listopadu 2020 na Twitteru oznámil, že pracuje na univerzálním sestavení VSCode pro Apple M1. V době psaní tohoto článku mají na svých stránkách umístěných zde experimentální sestavení pro ARM.

Microsoft Excel

Microsoft také 11. listopadu 2020 oznámil, že uvede nové univerzální sestavení své beta verze sady Mac Office 2019, které podporuje nový procesor Apple M1. Erik Schwiebert ostatně na Twitteru oznámil, že Microsoft téhož dne vydává beta verzi na kanálu beta. Žádný termín veřejného vydání však neoznámil.

Funguje M1 s ML frameworky (tj. Tensorflow, Scikit-Learn, Keras atd.)?

Na akci Apple M1 se Apple zmínil o podpoře Tensorflow. Zatím jsem kolem tohoto tvrzení nenašel žádné podrobnosti. Framework Tensorflow je vytvořen pro architekturu x86_64 a grafické procesory Nvidia. Žádné další sestavení pro architekturu ARM nebo Apple M1 neexistuje.

Někteří tvrdí, že můžete provádět inferenci z modelů Tensorflow s využitím převodníku Apple. Zde je odkaz na článek pojednávající o převodu z modelů TF do CoreML. Někteří jiní si myslí, že odkazují na Swift pro Tensorflow.

Právě teď je to neznámé a nemůžu najít nic, co by na to odkazovalo.

Scikit-Learn

Bude Scikit-learn fungovat s Apple M1? Myslím, že krátká odpověď je možná??? Takže víme, že Python bude fungovat pro architekturu ARM na M1 a Scikit-learn nevyužívá ani nepoužívá podporu GPU. Teoreticky by tedy Scikit-learn měl pro Apple M1 fungovat.

Mohl bych pokračovat, ale byli bychom tu věčně se všemi knihovnami používanými v ML (PyTorch, Keras atd.)

Synopse

  • Apple M1: 8jádrový CPU, 8jádrový GPU, 16jádrový Neural Engine s integrovanou pamětí na čipu.
  • Procesor Apple M1 má jedno z nejvyšších skóre u jednoho jádra 1687; ok skóre u více jader 7433 ve srovnání s Intel i9-9880H (Macbook Pro 16″): 1029 u jednoho jádra, 6012 u více jader.
  • GPU Apple M1 dosahuje výkonu 2,6 TFLOPS ve srovnání s Nvidia GeForce RTX 2080 Super (notebooky Razer): 11,2 TFLOPS.
  • Apple M1 Neural Engine inzeruje 11 bilionů operací za sekundu. Otázkou je, zda se jedná o TFLOPS (FP32). To je v porovnání s Nvidia GeForce RTX 2080 Super 11,2.
  • Má Apple M1 softwarovou podporu?“

Odmítnutí odpovědnosti: Apple M1 se mi ještě nedostal do rukou. Mám ho objednaný, ale ještě jsem ho neobdržel. Své tvrzení o softwarové podpoře opírám pouze o průzkum. Nenakupujte na základě mých výsledků, před nákupem si prosím proveďte vlastní průzkum.

Jakmile obdržím svůj MacBook Pro Apple M1, napíšu nový článek se svými zjištěními.

Aktualizováno:

Jen pro doplnění, zde je oficiální tisk společnosti Docker k čipu M1 a jeho podpoře.

Druhou část tohoto článku najdete zde.

Napsat komentář