Spis treści:
W ostatnich latach możemy obserwować stopniową komercjalizację technologii AI. Sztuczna inteligencja przestała być już domeną niezwykle zaawansowanych laboratoriów największych technologicznych korporacji i implementuje się ją, w coraz większej liczbie urządzeń i aplikacji. Przetwarzanie danych w czasie rzeczywistym, rozpoznawanie wzorców, autonomiczne roboty i pojazdy – to tylko niektóre z niezliczonych obszarów, które zyskują na znaczeniu dzięki postępom w dziedzinie AI. Wraz z rosnącym rynkiem sztucznej inteligencji intensyfikuje się również świat płytek i zestawów deweloperskich zoptymalizowanych pod programy i uczące się algorytmy.
Technologii AI na Dłoni: Poznaj Nvidia Jetson Nano
Jednym z kluczowych graczy świata AI jest firma Nvidia, uznawana przez niektórych za jednego z głównych liderów tej branży i nic w tym dziwnego, ponieważ procesory graficzne (GPU) tego amerykańskiego producenta odegrały sporą rolę w rozwoju sztucznej inteligencji. Na tego typu układach z powodzeniem uruchamiane są algorytmy uczenia maszynowego i równoległego przetwarzania danych.
Poza profesjonalnymi konstrukcjami wykorzystywanymi przez przemysł i ośrodki badawczo-rozwojowe, inżynierowie zielonych opracowali też rodzinę urządzeń Nvidia Jetson, które określić możemy jako łącznik między profesjonalnym zastosowaniem AI a światem hobbystów i entuzjastów nowych technologii. W tym materiale przyjrzymy się bliżej bazowej płytce – Nvidia Jetson Nano.
Czym jest Nvidia Jetson Nano?
Nvidia Jetson Nano to kompaktowy mikrokomputer będący częścią większej rodziny modułów Jetson. Zestaw deweloperski dostarczany przez Nvidie składa się w rzeczywistości z dwóch elementów – modułu Jetson Nano oraz płytki bazowej. Mikrokomputer od Nvidi opracowany został z myślą o sztucznej inteligencji. W przeciwieństwie do typowych komputerów osobistych, czy też innych dostępnych na rynku mikrokomputerów, moduł Jetson Nano zoptymalizowany został pod kątem wydajności obliczeniowej algorytmów AI.
Mimo swojego przeznaczenia konstrukcja ta charakteryzuje się niewielkim zużyciem energii, co umożliwia przenoszenie zaawansowanych algorytmów sztucznej inteligencji na mobilne, zasilane akumulatorowo urządzenia.
Mikrokomputer Nvidia Jetson Nano oparto na procesorze z segmentu SoC (System on Chip) dostosowanym do rozwiązań związanych ze sztuczną inteligencją. Układ składa się z czterech rdzeni ARM Cortex A57 taktowanych zegarem o częstotliwości 1,43 GHz oraz 128 rdzeni graficznych CUDA. Poza tym moduł wyposażono w 4 GB pamięci RAM oraz slot kart microSD, na których zapisywany jest system operacyjny uruchamiany przez Jetson Nano. Mikrokomputer od Nvidi instalowany jest w gnieździe SODIMM w nieco większej stacji bazowej.
Dopiero po zainstalowaniu modułu Nvidia Jetson Nano w nieco większej stacji bazowej, możemy korzystać z całości zestawu deweloperskiego. Dzięki całkiem sporej ilości złącz, można bez problemu połączyć mikrokomputer z pozostałymi peryferiami.
W centralnej części modułu bazowego znajdziemy wspomniane już wcześniej gniazdo w standardzie SODIMM, w którym umieszczany jest mikrokomputer Jetson Nano. Nieco wyżej znalazło się zazwyczaj niewidoczne złącze M.2 Key E, w którym można umieścić na przykład zewnętrzną kartę sieciową WIFI. Poza tym płytka bazowa wyposażona została w kilka zbiorów wtyków typu goldpin.
Przy górnej krawędzi umieszczone zostało złącze systemowe, umożliwiające zarządzanie pracą mikrokomputera oraz niewielkie 4-pinowe złącze POE. Dodatkowo na płytce znalazło się 40-pinowe, uniwersalne złącze I/O, podobnie do tych znanych z płytek mikrokomputerów Raspberry Pi.
Przy dolnej krawędzi stacji bazowej umieszczono dwa gniazda HDMI do podłączenia zewnętrznych wyświetlacze, cztery porty USB typu A w standardzie 3.0, do których można podłączyć klasyczne peryferia takie jak myszka i klawiatura, złącze Ethernet, dzięki któremu można połączyć Jetson Nano z siecią.
Warto wiedzieć, że płytka bazowa posiada dwa złącza zasilające – microUSB (5V/2A) oraz DC (5V/4A). Wybór jednego z nich jest dość ważnym zagadnieniem, ponieważ od sposobu zasilania zależy wydajność mikrokomputera oraz stabilność jego pracy. Kwestia dostarczania energii do Nvidia Jetson Nano poruszona zostanie jeszcze w dalszej części tego materiału. Sztuczna inteligencja dość często wykorzystywana jest do zagadnień związanych z analizą obrazu, właśnie dlatego twórcy Jetson Nano wyposażyli moduł bazowy w dwa złącza kamer CSI. Poza tym na płytce znalazło się też niewielkie 4-pinowe złącze, do którego można podłączyć wentylator poprawiający odprowadzanie ciepła przez umieszczony na procesorze radiator.
Zasilanie Nvidia Jetson Nano
Mimo, że Jetson Nano wyposażono w dwa złącza zasilające, to w rzeczywistości istnieją trzy sposoby, na które możemy dostarczyć energii do urządzenia – wspomniane wcześniej złącze microUSB, gniazdo DC oraz 40-pinowe złącze goldpin. Każdy sposób zasilania ma swoje wady i zalety, ale chcąc korzystać z mikrokomputera od Nvidi, należy dobrze przemyśleć tę kwestię. Jetson Nano to dość wrażliwe urządzenie, które przy niepoprawnym zasilaniu potrafi się niespodziewanie wyłączyć, co może mieć katastrofalne skutki. Nieplanowane odcięcie zasilania w pewnych przypadkach może uszkodzić pliki systemowe, co nie raz doprowadza do sytuacji, w której mikrokomputer nie będzie chciał się ponownie uruchomić.
Domyślnie urządzenie potrzebuje 10W mocy (5V x 2A), można by pomyśleć, że zasilanie z portu microUSB będzie wystarczające, ale trzeba pamiętać, że wartość 10W nie uwzględnia podłączonych do płytki peryferiów. Znacznie lepszym rozwiązaniem jest zasilić mikrokomputer poprzez złącze DC, którym może popłynąć prąd rzędu 4A. Zasilanie Jetson Nano poprzez złącze goldpin pominę, ponieważ jest to najmniej wygodne rozwiązanie.
Warto wspomnieć, że mikrokomputer od Nvidi ma softową możliwość ograniczenia mocy do 5W, wówczas dwa z czterech rdzeni procesora zostaną wyłączone. Jednak rozwiązanie to dość mocno ogranicza wydajność urządzenia.
W trakcie mojej zabawy z Nvidia Jetson Nano przetestowałem kilka opcji zasilania i z czystym sumieniem mogę polecić wybór złącza DC i dedykowanego zasilacza o odpowiedniej wydajności. Przy zasilaniu ze złącza microUSB zdarzało się, że mikrokomputer niespodziewanie się wyłączał zwłaszcza przy bardziej wymagających aplikacjach. Mierząc wartość pobieranego prądu (przy podłączonych peryferiach – myszka, klawiatura, karta sieciowa WIFI na USB oraz dwie kamery) uzyskałem wartości około 700mA bez obciążenia, po rozruchu systemu. Po uruchomieniu bardziej wymagającej aplikacji, czyli algorytmu AI, który analizował obraz z kamery, wartość pobieranego prądu osiągała momentami nawet 2,3A.
Nvidia Maxwell, czyli moc i możliwości
Z zewnątrz Nvidia Jetson Nano nie wyróżnia się niczym szczególnym i przypomina inne dostępne na rynku mikrokomputery. Wyjątkowość tego sprzętu ukryta jest pod odprowadzającym nadmiar ciepła radiatorem.
To właśnie w tym miejscu zamontowany został czterordzeniowy procesor ARM ze zintegrowanymi rdzeniami graficznymi CUDA. Jednostka obliczeniowa ARM, choć niezwykle ciekawa jest dość typowym komponentem dla większości mikrokomputerów, na uwagę zasługuje tutaj przede wszystkim 128 rdzeni CUDA opartych na architekturze Nvidia Maxwell.
Jetson Nano swoją wyjątkowość zawdzięcza właśnie rdzeniom służącym zazwyczaj do obliczeń graficznych. Z blokami CUDA i to w znacznie większych ilościach spotkać możemy się w kartach graficznych Nvidia. Pojedynczy rdzeń składa się w rzeczywistości z kilku mniejszych bloków i służy do obliczeń równoległych i zadań związanych z przetwarzaniem danych numerycznych. Poza tym bloki CUDA radzą sobie świetnie z aplikacjami sztucznej inteligencji, takimi jak analizy danych, przetwarzanie obrazów, uczenie maszynowe i symulacje naukowe. Dzięki temu CUDA odegrały kluczową rolę w rozwoju AI, przyczyniając się do powstania wielu platform obliczeniowych bazujących na wydajności i energooszczędności.
Linux dobry na wszystko
Nvidia Jetson Nano wspiera kilka systemów operacyjnych, ale standardowym i oficjalnie wspieranym przez zielonych systemem jest Nvidia JetPack, bazująca na platformie Ubuntu Linux. System można pobrać ze strony producenta, a następnie zapisać go na karcie pamięci, którą należy umieścić w slocie kart modułu Jetson Nano.
Dystrybucja Linuxa przygotowana przez Nvidie zawiera oprogramowanie i zestaw narzędzi opracowanych specjalnie dla platformy Jetson Nano. System przygotowany został do współpracy z procesorem ARM oraz rdzeniami graficznymi CUDA. Dzięki wbudowanym rozwiązaniom, takim jak OpenCV, TensorFlow, PyTorch i TensorRT system jest niemal od razu gotowy do uruchamiania aplikacji sztucznej inteligencji.
Jak zacząć przygodę z Nvidia Jetson Nano?
Kluczem do sukcesu każdego mikrokomputera jest nie tylko hardware, równie ważne jest też wsparcie oprogramowania. Chcąc zacząć swoją przygodę z Nvidia Jetson Nano, można skorzystać z oficjalnych poradników wideo, dostępnych na kanale YouTube – NVIDIA Developer. Poruszono w nich podstawowe aspekty korzystania z modułów Jetson oraz przedstawiono krok po kroku uruchomienie bazowych algorytmów AI.
Miejscem, które warto odwiedzić, jest też profil GitHub Nvidi. Znajdziemy tam mnóstwo gotowych przykładów algorytmów sztucznej inteligencji, które można uruchomić na Jetson Nano.
Przy okazji jakichkolwiek problemów z modułami Jetson pomocy należy szukać na oficjalnym forum Nvidi. Swoją wiedzą dzielą się tam nie tylko inni użytkownicy, ale można też liczyć na wsparcie pracowników Nvidi.
Pozostałe mikrokomputery Nvidia Jetson
Mikrokomputer Nvidia Jetson Nano to tak naprawdę tylko początek. Jest to bazowy model serii Jetson, a w ofercie Nvidi znaleźć można znacznie więcej urządzeń o jeszcze większej wydajności i możliwościach.
- Seria Jetson TX2 – Oferuje wydajność na poziomie 1,33 TFLOPs, co jest wartością 2,5 razy większą w porównaniu do modułów Jetson Nano. Urządzenia te oparto na sześciordzeniowym procesorze (cztery rdzenie ARM, dwa Nvidia Denver) wraz z 256 jednostkami CUDA o architekturze Nvidia Pascal.
- Rodzina Jetson Xavier NX/AGX – Zaprojektowana została z myślą o pojazdach autonomicznych. Bazuje ona na sześciordzeniowym lub ośmiordzeniowym procesorze Nvidia Carmel wraz z 512 lub 384 rdzeniami opartymi na architekturze Nvidia Volta.
- Jetson Orin Nano – To w miarę świeża seria bazowych modułów do implementacji algorytmów AI. Oferują one nawet 80-krotny wzrost wydajności względem Jetson Nano. Mikrokomputery te oparto na sześciordzeniowym procesorze ARM oraz rdzeniach graficznych Nvidia Ampere.
- Seria Jetson AGX Orin – podobnie jak mikrokomputery Xavier przystosowane zostały do implementacji w przemyśle i autonomicznych pojazdach. Bazuje ona na dwunastordzeniowym procesorze ARM, 2048 rdzeniach CUDA o architekturze Nvidia Ampera oraz 64 rdzeniach Tensor.
Źródła:
www.youtube.com/watch?v=QXIwdsyK7Rw&list=RDCMUCBHcMCGaiJhv-ESTcWGJPcw&start_radio=1&rv=QXIwdsyK7Rw&t=199
www.github.com/dusty-nv/jetson-inference
www.developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit
www.developer.nvidia.com/embedded/twodaystoademo
www.automaticaddison.com/how-to-blink-an-led-using-nvidia-jetson-nano/
www.botland.com.pl/moduly-nvidia/16536-nvidia-jetson-nano-b01-arm-cortex-a57-4x-143ghz-nvidia-maxwell-4gb-ram-5903351241519.html
www.developer.nvidia.com/embedded/jetson-modules
www.developer.nvidia.com/blog/maxwell-most-advanced-cuda-gpu-ever-made/
www.developer.nvidia.com/embedded/jetson-tx2-nx
www.www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-xavier-series/
www.forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/70
www.telecomtalk.info/nvidia-tegra-x1-mobile-super-chip/128615/
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.8 / 5. Liczba głosów: 25
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.