Jak Apple M1 wpłynie na uczenie maszynowe? (Część 1)

Apple zaprezentował pierwszy w historii Apple krzemowy procesor desktop/laptop oparty na procesorach Apple serii A w iPad i iPhone lineup. Przedstawili ten nowy procesor wraz z trzema nowymi komputerami Mac, w tym nowym M1 MacBook Air, M1 MacBook Pro i M1 Mac mini.

Te nowe komputery Mac M1 reklamują niesamowite specyfikacje przy użyciu nowego procesora M1, szybkość CPU do 3,5x szybciej. Szybkość GPU do 5x szybciej, a przy użyciu nowego Neural Engine, do 9x szybciej uczenia maszynowego. Jeśli chodzi o żywotność baterii, MacBook Air przychodzi reklamowanie 15 godzin bezprzewodowego surfowania po Internecie i 18 godzin odtwarzania filmów (małe zastrzeżenie mają jest odtwarzanie filmów za pomocą aplikacji Apple TV). Nie jestem pewien, czy to robi różnicę, ale tylko czas pokaże, kiedy ktoś na Youtube testuje go. Co do MacBooka Pro, jego żywotność baterii wchodzi w 17 godzin bezprzewodowego surfowania po sieci i 20 godzin odtwarzania filmów z Apple TV app. Nie wiem jak Wy, ale 20 godzin jest niesamowite. Obecnie korzystam z 16-calowego MacBooka Pro z procesorem i9 i uważam, że 11-godzinny czas pracy na baterii jest godny uwagi.

Architektura M1

Nowa architektura M1 jest wykonana w najnowszej technologii 5nm. Posiada 1 CPU, 1 GPU, 1 Neural Engine, oraz jednostki DRAM wbudowane w procesor. Ponieważ pamięć RAM jest wbudowana w procesor, wszystkie komponenty mają dostęp do tej samej pamięci. Co to oznacza? Cóż, oznacza to koniec z utratą wydajności spowodowaną przenoszeniem i zmianą kształtu pamięci z jednego komponentu do drugiego. Koniec z zastanawianiem się, czy Twój model zmieści się w specyfikacji pamięci GPU.

CPU

Centrala CPU to 8-rdzeniowy procesor, w którym 4 rdzenie to rdzenie o wysokiej wydajności do przetwarzania danych i zadań wymagających wysokiej wydajności, a 4 rdzenie określane jako „e-cores” lub rdzenie o wysokiej wydajności zapewniają przetwarzanie z większą wydajnością i niższym zużyciem energii.

Na stronie internetowej, Apple nie twierdzi żadnych prędkości procesora; jednak zestawienie Geekbench opublikowane na gadgets.ndtv.com umieszcza bazową częstotliwość 3,2 GHz, która jest wyższa niż bazowa częstotliwość procesora Intel Core i9-9880H znajdującego się w 16-calowym Macbooku Pro.

Porównajmy kilka wyników Geekbench na nowym procesorze M1.

Porównując wyniki 4 bardzo popularnych procesorów, Apple M1 przewyższa wszystkie, nawet procesor i9 z 16″ Macbooka Pro komfortowo w wyniku jednordzeniowym. Dopiero gdy dojdziesz do wielordzeniowego, zaczniesz widzieć, jak inni, zwłaszcza procesory AMD, konkurują z M1.

Co to wszystko oznacza dla uczenia maszynowego?

Po pierwsze, pamięć RAM współdzielona przez CPU i GPU powinna zwiększyć wydajność ze względu na brak opóźnień w przesyłaniu danych z pamięci RAM CPU do pamięci RAM GPU.

Jeśli chodzi o wynik jednordzeniowy vs. wynik wielordzeniowy, większość bibliotek do wstępnego przetwarzania danych nie wykorzystuje wielu rdzeni w procesorze; dlatego wynik wielordzeniowy robi bardzo niewiele dla wstępnego przetwarzania danych. Posiadanie lepszego wyniku pojedynczego rdzenia zrobi lepiej w preprocessingu danych.

GPU

Zintegrowany procesor graficzny jest 8-rdzeniowy, który może wykonywać 25 000 wątków jednocześnie. Apple twierdzi, że jest to „najszybszy na świecie zintegrowany układ graficzny w komputerze osobistym” o przepustowości 2,6 TFLOPS (FP32). Z pewnością jest to imponujące jak na zintegrowany procesor graficzny, ale my jako naukowcy zajmujący się danymi jesteśmy zainteresowani ogólną wydajnością.

Spójrzmy na kilka innych dla porównania.

Patrząc na te wartości, prawdopodobnie dobrze sprawdziłby się w przetwarzaniu wideo, przetwarzaniu obrazu, Apple Arcade lub grach. GPU nie sprawdzi się dobrze w uczeniu maszynowym. To może, ale po prostu nie wydajność ja i ty prawdopodobnie szukasz. Coś takiego jak Razer Blade Pro 17 z RTX 2080 Super poradziłoby sobie lepiej z 11,2 TFLOPS. Miałbyś rację z tą myślą. Jednak Apple dodał również w M1 Neural Engine zintegrowany z procesorem specjalnie dla wydajności uczenia maszynowego.

Neural Engine

Procesor M1 przynosi również wiodący w branży Neural Engine firmy Apple, zaprojektowany specjalnie dla procesów uczenia maszynowego. Silnik neuronowy został już wcześniej dodany do procesorów z serii A w iPadzie i iPhonie, ale do tej pory nie było go w komputerach Mac.

Apple twierdzi, że jego nowy 16-rdzeniowy silnik neuronowy ma wydajność 11 TOPS (trylionów operacji na sekundę).

*11 TOPS? Czy oni mają na myśli 11 TFLOPS? Jeśli to 11 TFLOPS, to może to być konkurent w tej przestrzeni.

Gdy połączysz tę prędkość ze zintegrowaną pamięcią (zmniejszone opóźnienia) i 20 godzinami pracy na baterii, to może to być przełom dla naukowców zajmujących się danymi w podróży. Otrzymujesz nie tylko procesor graficzny porównywalny z RTX 2080 Super, procesor, który ma jeden z najlepszych wyników jednordzeniowych w branży, obudowę MacBooka Air, ale także 18-20 godzin pracy na baterii. Wow!

Inną myślą na ten temat byłoby, gdyby niektóre z frameworków ML mogły skorzystać zarówno z GPU, jak i silnika neuronowego w celu trenowania i przeprowadzania wnioskowania.

Apple M1 i wsparcie oprogramowania

Teraz porozmawiajmy o wsparciu oprogramowania. Moje pytania są następujące:

Czy M1 działa z niektórymi z najczęściej używanych programów? (np. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon wykorzystuje architekturę ARM opartą na zestawie instrukcji. Python działa już na wielu innych platformach, w tym ARM, MIPS, PowerPC, i386 i x86-64. Nie powinno być żadnych problemów z Pythonem.

Juypter Notebook

Nie jest w tej chwili jasne, czy notebooki Juypter działają z procesorem Apple M1. Znalazłem jeden link, który uruchamia notebooki Juypter na architekturze ARM przy użyciu dockera. Czas pokaże, co z tego wyjdzie. Może VSCode raz jest gotowy do produkcji będzie miał rozszerzenie Juypter, które będzie działać.

VSCode

Microsoft ogłosił 10 listopada 2020, na Twitterze, pracują nad uniwersalnym buildem VSCode dla Apple M1. W momencie pisania tego, mają ARM eksperymentalny build na swojej stronie zlokalizowanej tutaj.

Microsoft Excel

Microsoft ogłosił również 11 listopada 2020 roku, że uruchomi nowy Uniwersalny build swojego Mac Office 2019 beta, który obsługuje nowy procesor Apple M1. W rzeczywistości Erik Schwiebert ogłosił na Twitterze, że Microsoft wyda wersję beta tego samego dnia na kanale beta. Nie ogłosili jednak żadnych dat wydania publicznego.

Czy M1 działa z frameworkami ML (tj. Tensorflow, Scikit-Learn, Keras itp.)?

Na imprezie Apple M1, Apple wspomniał o wsparciu dla Tensorflow. Nie znalazłem jeszcze żadnych konkretów wokół tego twierdzenia. Szkielet Tensorflow jest zbudowany dla architektury x86_64 i procesorów graficznych Nvidia. Nie ma innych kompilacji dla ARM lub architektury Apple M1.

Niektórzy twierdzą, że możesz wykonywać wnioskowanie z modeli Tensorflow, korzystając z konwertera Apple. Oto link do artykułu mówiącego o konwersji z modeli TF do CoreML. Niektórzy inni myślą, że odnoszą się do Swift dla Tensorflow.

W tej chwili jest to nieznane i nie mogę znaleźć niczego odnoszącego się do tego.

Scikit-Learn

Czy Scikit-learn będzie działał z Apple M1? Myślę, że krótka odpowiedź brzmi: może? Tak więc wiemy, że Python będzie działał na architekturze ARM w M1, a Scikit-learn nie wykorzystuje ani nie używa wsparcia GPU. Więc teoretycznie, Scikit-learn powinien działać dla Apple M1.

Mógłbym kontynuować, ale bylibyśmy tu na zawsze ze wszystkimi bibliotekami używanymi w ML (PyTorch, Keras, etc.)

Synopsis

  • Apple M1: 8 rdzeniowy CPU, 8 rdzeniowy GPU, 16 rdzeniowy Neural Engine ze zintegrowaną pamięcią na chipie.
  • Apple M1 CPU ma jeden z najwyższych wyników w trybie jednordzeniowym na poziomie 1687; ok wynik w trybie wielordzeniowym na poziomie 7433 w porównaniu do Intel i9-9880H (Macbook Pro 16″): 1029 wynik jednordzeniowy, 6012 wynik wielordzeniowy.
  • Apple M1 GPU plasuje się na poziomie 2,6 TFLOPS w porównaniu do Nvidia GeForce RTX 2080 Super (laptopy Razer) na poziomie 11,2 TFLOPS.
  • Apple M1 Neural Engine reklamuje 11 bilionów operatorów na sekundę. Pytanie tutaj brzmi, czy to jest TFLOPS (FP32)? To jest w porównaniu do Nvidia GeForce RTX 2080 Super na 11,2.
  • Czy Apple M1 ma wsparcie oprogramowania?

Zastrzeżenie: Nie dostałem moje ręce na Apple M1 jeszcze. Zamówiłem go, ale jeszcze nie otrzymałem. Jestem tylko za pomocą badań, aby moje roszczenia dotyczące wsparcia oprogramowania. Nie dokonuj zakupów na podstawie moich wyników, proszę przeprowadzić własne badania przed dokonaniem zakupu.

Po otrzymaniu MacBooka Pro Apple M1 napiszę nową historię z moimi ustaleniami.

Uaktualnienie:

Tylko dla aktualizacji, oto oficjalna prasa od Dockera na temat chipu M1 i wsparcia.

Część 2 tego artykułu można znaleźć tutaj.

Dodaj komentarz