LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

[WARSZTATY] AI oraz ML w praktyce na i.MX8M Plus

Firma NXP jest jednym z liderów na rynku przemysłowych, heterogenicznych układów dla aplikacji embedded, także przeznaczonych do stosowania w systemach AI/ML. O ile programowe implementacje sieci neuronowych są obecne na rynku od wielu lat, to nowością są układy wyposażone w zintegrowane koprocesory służące do sprzętowego wspomagania obliczeń w aplikacjach AI/ML. Jedną z takich gorących nowości – heterogeniczny mikroprocesor i.MX8M Plus– przedstawiamy w artykule.

W pierwszej połowie 2020 roku została wprowadzona na rynek przez firmę NXP nowa podrodzina mikroprocesorów nazwanych i.MX8 Plus, które jako pierwsze w ofercie tej firmy i jedne z pierwszych na rynku układów przemysłowych wyposażono w zintegrowane koprocesory Neural Processing Unit (NPU).

 

Zapraszamy do udziału w warsztatach z cyklu Hands-on Linux Academy:

 

NPU – co to jest i po co?

NPU to wyspecjalizowany koprocesor AI/ML opracowany przez firmę Verisilicon, należący do rodziny VIP8000. Zadaniem NPU zastosowanych w i.MX8MPlus jest wydajna realizacja obliczeń charakterystycznych dla sieci neuronowych. Dzięki temu realne czasy klasyfikacji obiektów poddawanych analizie AI/ML są na tyle krótkie, że jest możliwe jednoczesne monitorowanie i klasyfikowanie cech kilku poruszających się obiektów. Firma NXP podaje prędkość wykonywania obliczeń przez NPU na ok. 2,3 TOPS (Trillion Operation Per Second – bilion operacji na sekundę), co potwierdzają liczne benchmarki dostępne w Internecie (np. https://ai-benchmark.com/ranking_IoT.html).

Koprocesory NPU zastosowane w mikroprocesorach i.MX8MPlus są przystosowane do wykonywania operacji na danych w formacie INT8, co zapewnia ich kompatybilność z najpopularniejszymi środowiskami i bibliotekami AI/ML: arm NN, ONNX Runtime, TensorFlow Lite oraz DeepViewRT.

W przypadku zmiennoprzecinkowych modeli sieci neuronowych konieczna jest ich kwantyzacja do postaci stałoprzecinkowej, co z jednej strony upraszcza i przyspiesza obliczenia, z drugiej może mieć wpływ na dokładność rozpoznawania obiektów.

Rys. 1. Stos sprzętowo-programowy, z którego mogą korzystać programiści przygotowujący aplikacje na platformy z wbudowanymi mikroprocesorami i.MX8MPlus

Na rysunku 1 pokazano stos sprzętowo-programowy, z którego mogą korzystać programiści przygotowujący aplikacje na platformy z wbudowanymi mikroprocesorami i.MX8MPlus. Jak widać NPU jest zgodny z API frameworka OpenCL 1.2 FP oraz standardu OpenVX 1.2.

Rys. 2. Przykładowe aplikacje systemu AI/ML z wymaganymi zakresem wydajności systemu obliczeniowego

Warto wspomnieć, że w procesorach rodziny i.MX8 algorytmy AI/ML z wykorzystaniem tych (i innych bibliotek i środowisk) mogą być wykonywane zarówno przez CPU, w niektórych modelach także przez GPU. Na rysunku 2 pokazano przykładowe aplikacje systemu AI/ML z wymaganymi zakresem wydajności systemu obliczeniowego oraz zaznaczonymi zakresami wydajności obliczeniowej, jakie można osiągnąć przy implementacji algorytmów obliczeniowych w CPU, GPU i NPU.

 

GPU nie tylko do AI/ML

Wewnętrzne wyposażenie mikroprocesora i.MX8MPlus predestynuje go do użycia także w zaawansowanych aplikacjach graficznych. Wynika to z faktu zintegrowania w strukturze układu dwóch koprocesorów graficznych: GPU2D i GPU3D – obydwa pozwalają na obróbkę obrazów FullHD. Integralną częścią wyposażenia MPU są także oraz transceivery analogowe, służące do dołączenia wyświetlaczy: HDMI, MIPI-DSI oraz LVDS. Rozwiązania sprzętowe zaimplementowane przez firmę NXP pozwalają korzystać z 3 wyświetlaczy niezależnie.

 

Szybkie peryferia

Spektakularną domeną aplikacyjną mikroprocesorów i.MX8MPlus są ozwiązania wymagające szybkich interfejsów komunikacyjnych. Za ich pomocą do MPU można dołączyć m.in. dysk SSD lub inne urządzenie wyposażone w interfejs PCIe 3.0. Interesującym wyposażeniem jest także kompletny interfejs USB 3.0.

Obydwa interfejsy mają zintegrowane warstwy fizyczne, dzięki czemu BOM projektu jest skromny: sprowadza się do odpowiednich złącz i kondensatorów separujących.

 

Od teorii do praktyki

Możliwości NPU wbudowanego w mikroprocesor i.MX8MPlus oraz pozostałych bloków mikroprocesora najlepiej jest zweryfikować w praktyce. Do tego celu może posłużyć zestaw ewaluacyjny opracowany i produkowany przez polską markę SoMLabs. Widok płyty bazowej SpaceCB-8MPlus-ADV oraz modułu SpaceSOM-8MPlus z mikroprocesorem i.MX8MPlus pokazano na fotografii 3.

Fot. 3. Wygląd zestawu SpaceSOM-8Mplus i SpaceCB-8Mplus-ADV

Zestaw umożliwia zweryfikowanie wszystkich cech i możliwości mikroprocesora i.MX8MPlus. Płytę bazową wyposażono w trzy interfejsy graficzne: HDMI, MIPI-DSI oraz LVDS. Dodatkowe interfejsy komunikacyjne: dwa MIPI-CSI, dwa kanały ethernetowe 1Gb/s, złącza interfejsów USB3.0 i USB-C oraz kodek audio. Standardowym wyposązeniem jest także złącze pozwalające zamontować moduły PCIe 3.0 w formacie mechanicznym M.2 z kluczem M. Na złącza szpilkowe w rastrze 2,54 mm wyprowadzono także linie GPIO mikroprocesora, dwa interfejsy CAN (warstwy fizyczne) oraz RS485. Diagnostykę systemu ułatwią zintegrowany na płycie bazowej, licencjonowany debugger J-Link (JTAG). DO celów diagnostycznych służy także konwerter UART/USB, spełniający rolę interfejsu terminala.

Moduł SpaceSOM-8Mplus został zaprojektowany w formacie mechanicznym SODIM260. Mikroprocesor zainstalowany w module może współpracować z pamięcią RAM typu LPDDR4 (1 do 4 GB) i Flash eMMC (do 32GB). Wyposązeniem modułu jest także dwuzakresowy moduł radiowy WiFi 2,4/5GHz firmy Murata. Standardowym wyposażeniem modułu Space SOM-8Mplus jest wyspecjalizowany, wielokanałowy układ zasilający PMIC. Jego pracą może zarządzać system operacyjny, minimalizując straty energii w strukturach półprzewodnikowych elementów modułu.

Domyślnym systemem operacyjnym rekomendowanym przez SoMLabs dla modułu SpaceSOM-8MPlus – także dla aplikacji AI/ML – jest Linux (w wersji Yocto Project). Jego natywną wersję producent udostępnił na githubie. Projektantów systemów multimedialnych zainteresuje zapewne także możliwość użycia Androida jako systemu operacyjnego.

Polski portal branżowy dedykowany zagadnieniom elektroniki. Przeznaczony jest dla inżynierów i konstruktorów, projektantów hardware i programistów oraz dla studentów uczelni technicznych i miłośników elektroniki. Zaglądają tu właściciele startupów, dyrektorzy działów R&D, zarządzający średniego szczebla i prezesi dużych przedsiębiorstw. Oprócz artykułów technicznych, czytelnik znajdzie tu porady i pełne kursy przedmiotowe, informacje o trendach w elektronice, a także oferty pracy. Przeczyta wywiady, przejrzy aktualności z branży w kraju i na świecie oraz zadeklaruje swój udział w wydarzeniach, szkoleniach i konferencjach. Mikrokontroler.pl pełni również rolę patrona medialnego imprez targowych, konkursów, hackathonów i seminariów. Zapraszamy do współpracy!