Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tutorial: Flashowanie płytki deweloperskiej Google Coral TPU

ghost666 25 Paź 2019 10:12 1362 4
  • Tutorial: Flashowanie płytki deweloperskiej Google Coral TPU
    Płytka deweloperska Coral Edge TPU jest bardzo imponującym systemem, ale wymaga trochę pracy, zanim będzie można ją wykorzystać do wykonania użytecznych algorytmów uczenia maszynowego czy sztucznej inteligencji. Dla tych, którzy są dobrze zaznajomieni z operacjami z poziomu wiersza poleceń, dostępne są instrukcje w witrynie Google, które dostępne są tutaj – wystarczą one zaawansowanym użytkownikom do poprawnego zainstalowania nowego oprogramowania w module Google Coral Edge TPU. Ci, którzy mniej biegli są w obsłudze wiersza komend, potrzebować mogą dodatkowych wskazówek.

    Poniższy artykuł nie zastępuje dokumentacji Google, ma jedynie działać jako pomocna wskazówka w procesie Flashowania płytki. Przedstawione zostaną tutaj niektóre typowe błędy, jakie popełnia się podczas Flashowania modułu deweloperskiego Coral TPU, a także proste wskazówki, jak ich uniknąć lub później naprawić ich konsekwencje.

    Materiały potrzebne do Flashowania płytki Coral

    W przeciwieństwie do płytek takich jak Arduino Nano, które wymagają tylko jednego kabla, aby wszystko działało, w tym przypadku potrzebnych ich będzie kilka, wraz z akcesoriami, do poprawnego zestawienia systemu do flashowania. Są to:

    - Kabel USB A do Micro USB
    - Kabel USB C do USB A do przesyłania danych
    - Zasilacz USB C zapewniający 2-3A (udało mi się z powodzeniem użyć drugiego kabla USB A do USB C podłączonego do zasilacza)
    - Komputer z systemem Linux lub Mac OS

    Jeśli używasz tylko i wyłącznie systemu Windows, niestety nie masz szczęścia. Google nie zapewnia wsparcia dla tej platformy. Może być jednak możliwe skonfigurowanie komputera z boot managerem i dwoma systemami operacyjnymi lub też uruchomienie systemu Linux z płyty CD (Live CD) lub dysku USB. Można oczywiście wykorzystać również np. Raspberry Pi – to najprostsze rozwiązanie, aby mieć zawsze pod ręką komputer z systemem operacyjnym Linux.

    Autor tutoriala wykorzystał swój stary laptop – IBM T60 – z systemem operacyjnym Ubuntu. Jak widać więc, do przeprowadzenia poniższych operacji nie jest potrzebna maszyna o wysokiej wydajności obliczeniowej.

    Tutorial: Flashowanie płytki deweloperskiej Google Coral TPU
    Przygotowanie do flashowania: Wstępna konfiguracja modułu

    Aby rozpocząć zadanie, należy najpierw wykonać następujące kroki:

    1. Upewnij się, że przełączniki (DIP-switche) są ustawione prawidłowo (ON, OFF, OFF, OFF). Przełączniki są na tyle małe, że użycie szkła powiększającego może być dobrym pomysłem.
    2. Pobierz narzędzia platformy SDK dla systemu Linux (lub Mac OS) ze
    tej strony. Rozpakuj je od razu w katalogu z pobranymi plikami przed rozpoczęciem Flashowania.
    3. [ub]NIE podłączaj jeszcze niczego[/u]. Najpierw trzeba zainstalować kilka aplikacji, które potrzebne są do Flashowania. Instalujemy je za pomocą poleceń terminala.
    4. Aby zainstalować potrzebne oprogramowanie, korzystamy z linii komend, wpisując w terminalu:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    5. Teraz możemy sprawdzić, czy wszystko, co zostało zainstalowane, poprawnie działa. W tym celu w linii komend wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Powinno to zwrócić informacje na temat zainstalowanej wersji aplikacji fastboot. Jeśli informacje te nie pojawią się, należy w pierwszej kolejności zaktualizować system operacyjny. Autor napotkał ten problem, ponieważ jego stary komputer miał zainstalowane Ubuntu 12, a obecna wersja to już 18. Google nie informuje o minimalnej wymaganej wersji oprogramowania, jednakże pamiętajmy o tym, że w takich sytuacjach najbardziej aktualna, stabilna wersja zawsze jest najlepszym rozwiązaniem.

    Wprowadzanie tekstu i rozwiązywanie problemów tekstowych

    Po zainstalowaniu potrzebnego oprogramowania i aktualizacji systemu, jesteśmy gotowi do dalszych kroków. Zatem po kolei:

    1. Wprowadź następujące dane do terminala:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    2. Następnie w linii komend wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Po wpisaniu pierwszej z komend nie otrzymamy żadnego potwierdzenia, że zrobiliśmy to dobrze, ani informacji o błędzie, gdy wpiszemy coś niepoprawnie. Dlatego też, aby sprawdzić, że dobrze zrealizowaliśmy ten krok, wpisać w terminalu musimy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Jeśli polecenia nie są dokładnie poprawne (pamiętać trzeba, że Linux rozróżnia małe i duże litery), spowoduje to później problemy. Jeśli ponownie wpiszemy pierwsze polecenie w tej sekcji, system po prostu doda ten tekst do pliku reguł. Można go też otworzyć za pomocą edytora tekstu (np. vi lub nano):

    - wpisując jedną z poniższych komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Następnie można usunąć problematyczną linię i dodać nową, jeśli to konieczne. Po wprowadzeniu zmian zapisujemy plik i wychodzimy z edytora tekstu.

    Tutorial: Flashowanie płytki deweloperskiej Google Coral TPU
    Tutorial: Flashowanie płytki deweloperskiej Google Coral TPU
    Konfigurowanie połączeń

    Po wykonaniu tych powyższych kroków instrukcje Google przeprowadza nas przez sposób fizycznego połączenia modułu do komputera. Jest to dość proste, jeśli masz prawidłowo ułożone kable przed sobą. Biorąc pod uwagę liczbę wykorzystywanych połączeń i konieczność dołączenia każdego z nich w innym czasie, należy zachować daleko idącą ostrożność.

    Dodatkowym problemem może być sytuacja, w której nasz laptop nie jest wyposażony w dwa porty USB obok siebie. Należy upewnić się, że kable USB, które chcemy wykorzystać, są odpowiednio długie, aby sięgnąć od odpowiednich portów do modułu Coral.

    Uwaga: nie należy zasilać modułu Google Coral zasilaczem komputera poprzez port USB, ponieważ zapewnienie potrzebnych płytce 2-3 amperów prawdopodobnie będzie dużym wyzwaniem, co potencjalnie może zagrozić nawet uszkodzeniem porty USB komputera.

    Uruchamianie Fastboot i potencjalne problemy

    Po przygotowaniu systemu możemy przejść do uruchamiania fastboot-a. W tym celu w linii komend wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    a następnie, zgodnie z instrukcją, podłączamy linię danych USB do modułu Google Coral. Teraz możemy uruchomić nowy terminal i wpisać w nim:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    co powinno zaowocować wydrukowaniem pewnej ilości znaków, a następnie tekstu fastboot. Jeśli natomiast program zgłosi np. problem z uprawnieniami czy dostępem, to znaczy, że na początkowym etapie prac coś źle wpisaliśmy w konfiguracji. Ponówmy kroki tam opisane.

    Inny problem pojawić może się, jeżeli spróbujemy uruchomić fastboot z katalogu ~/.local/$bin. Nie uruchomi się on, ale zamiast tego poprosi o zainstalowanie. Możemy zrealizować to wpisując:4

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Nie jest to poważny problem, ale nie został on opisany w oficjalnych instrukcjach od Google, więc dla amatorów może być pewnym zaskoczeniem.

    Ostatni krok: Flashowanie płyty deweloperskiej Coral TPU

    Instrukcja Flashowania od Google nakazuje pobrać teraz plik z pomocą polecenia curl, jednakże, jeśli się to nam nie uda, można wykorzystać zarówno graficzną przeglądarkę internetową, jak i graficzny menedżer plików, do pobrania plików. Po ich ściągnięciu na dysk komputera, należy wejść w folder, w którym znajduje się skrypt Flashujący. Uruchamiamy go wpisując w linii poleceń:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Wszystko powinno pójść sprawnie, Flashując płytę Coral TPU jako urządzenie Linux ML / AI. Podczas tego procesu, na ekranie komputera zobaczyć można wiele tekstu, jednakże nie jest on krytyczny i nie trzeba zwracać nań uwagi. Proces Flashowania potrwa do kilku minut. Po zakończeniu można zalogować się do nowo sflashowanego systemu przy użyciu domyślnej nazwy użytkownika i hasła - „mendel” dla tych elementów.

    Według jednego raportu zwiększone bezpieczeństwo interfejsu SSH oznaczać może, że konieczne będzie wykonanie kilku dodatkowych kroków, aby zalogować się do systemu, ale nie jest to częstym problemem.

    Dalsze instrukcje Google wskazują, jak zalogować się do Internetu i uruchomić przykładowy skrypt klasyfikacji obrazów. Mając aktywowaną i sflashowaną płytkę deweloperską Coral TPU, mamy wiele możliwości tworzenia ciekawych systemów AI.

    Źródło: https://www.arrow.com/en/research-and-events/articles/google-coral-demo-flashing-the-google-coral-tpu-dev-board?mi_u=CARRE000002759947

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9485 postów o ocenie 7286, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • PCBway
  • #2
    CC_PL
    Poziom 9  
    Sorry za OT, trochę odbiegnę od tematu... Mam kilka propozycji...

    Tych płytek i modułów wspomagających obliczenia ML/DL nie ma (jeszcze) tak wiele. Najciekawsze są od Google, NVIDIA, Intel, no i ...jest jeszcze kilka innych małych firm. Może udało by się je "redakcji" elektroda.pl zakupić i zrobić: testy każdej z nich + na koniec podsumowanie w formie porównania (najlepiej w formie tabeli) wszystkich wad, zalet i różnych niuansów praktycznych związanych z tymi płytkami / modułami. Takie testy / porównania i zestawienia myślę, że spodobałyby się wielu czytelnikom elektroda.pl.

    "Oczywiście wszystko już w Internecie, użyj Google" - ale po co wtedy elektroda.pl ?!?! Byłby to spory wysiłek, ale temat jest b. ciekawy i tego wart. Myślę, że nie tylko ja jestem zainteresowany, a znacznie więcej osób skorzystałoby z takiego opracowania.
    W "polskim" Internecie raczej mało jest informacji tego typu (poza materiałami markitingowymi), ponadto taki test ma szanse być bardziej obiektywny (niż na sprzęcie wypożyczonym od producenta) ;)
  • PCBway
  • #3
    zgierzman
    Poziom 22  
    ghost666 napisał:
    można ją wykorzystać do wykonania użytecznych algorytmów uczenia maszynowego czy sztucznej inteligencji.
    (...)
    Ci, którzy mniej biegli są w obsłudze wiersza komend, potrzebować mogą dodatkowych wskazówek.


    Nie bardzo to rozumiem. Jeżeli ktoś jest wystarczająco zaawansowany, żeby pracować nad sztuczną inteligencją, to jak może mieć problem z wpisaniem kilku komend w linii poleceń?
  • #4
    ambor
    Poziom 12  
    zgierzman napisał:
    ghost666 napisał:
    można ją wykorzystać do wykonania użytecznych algorytmów uczenia maszynowego czy sztucznej inteligencji.
    (...)
    Ci, którzy mniej biegli są w obsłudze wiersza komend, potrzebować mogą dodatkowych wskazówek.


    Nie bardzo to rozumiem. Jeżeli ktoś jest wystarczająco zaawansowany, żeby pracować nad sztuczną inteligencją, to jak może mieć problem z wpisaniem kilku komend w linii poleceń?


    Dokumentacja do tego sprzętu i oprogramowania zwykle jest słaba i ma pełno błędów, przez to zamiast zająć się tematem tracisz godziny albo dni na przygotowanie narzędzi, więc jak ktoś przebrnie przez ten proces i rozwiąże wszystkie problemy niezgodności itp. to wszyscy inni będą mu bardzo wdzięczni jeśli podzieli się wiedzą
  • #5
    aadeer
    Poziom 13  
    zgierzman napisał:
    Nie bardzo to rozumiem. Jeżeli ktoś jest wystarczająco zaawansowany, żeby pracować nad sztuczną inteligencją, to jak może mieć problem z wpisaniem kilku komend w linii poleceń?


    Popracuj na Uczelni to zrozumiesz ;)

    Może tak się zdarzyć również w innych miejscach, obecnie ze względu na brak odpowiednio wykwalifikowanych ludzi zatrudnia się np. matematyków, którzy po "przyuczeniu" czują bardzo dobrze temat AI/ML, potrafią zaproponować daną topologię sieci/funkcję aktywacji/ jak ma wyglądać wektor/tensor wejściowy/wyjściowy, nawet czasami wiedzą dlaczego tak jest i potrafią to udowodnić, ale żeby dane rozwiązanie zadziałało w praktyce potrzebują asysty dobrego programisty lub elektronika - zależnie czego dotyczy ich model lub opracowanie.