logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak działa sztuczna inteligencja na mikrokontrolerach?

gulson 09 Lip 2025 12:51 510 3

TL;DR

  • Tekst wyjaśnia, jak uruchamiać modele AI na mikrokontrolerach, gdzie ograniczają je moc obliczeniowa, pamięć i przepustowość sieci.
  • Kluczowe są nie tylko wagi modelu, ale też operatory i jądra; TensorFlow Lite for Microcontrollers trzyma je w plikach .tflite razem z grafem obliczeniowym.
  • Przykład dodawania pokazuje trzy poziomy wykonania: prosty C, rozszerzenia ARM Cortex-M z DSP Extension i MVE (Helium) oraz akcelerację NPU Ethos-U.
  • CMSIS-NN automatycznie dobiera najlepszą implementację dla danego sprzętu, a optymalizacje mogą działać bez zmiany modelu.
  • Pełna akceleracja przez NPU wymaga jednak specjalnej kompilacji, a na ESP32 wygodne bywa nawet użycie tf-lite micro z językiem Berry.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA
📢 Słuchaj (AI):
  • Jak działa sztuczna inteligencja na mikrokontrolerach?
    Znalazłem ciekawy artykuł obrazujący technicznie uruchamianie modeli AI na tak ograniczonych sprzętach, jak mikrokontrolery. Mikrokontrolery są najbardziej ograniczonymi platformami do uruchamiania AI pod względem mocy obliczeniowej, pamięci i przepustowości sieci.

    W skrócie do działania modeli AI potrzebne są nie tylko wagi, ale także operatory - instrukcje podobne do tych w procesorach. Najpopularniejsze środowisko TensorFlow Lite for Microcontrollers używa plików .tflite, które zawierają zarówno wagi modelu, jak i graf obliczeniowy określający, jakich operacji użyć.
    Jądra (kernels) to implementacje operatorów w oprogramowaniu. Mogą być wykonywane jako prosty kod C lub wykorzystywać specjalne funkcje sprzętowe dla lepszej wydajności.

    Autor pokazuje, jak operator dodawania działa na różnych poziomach optymalizacji. Podstawowa implementacja wykonuje sekwencyjne dodawanie element po elemencie, co jest wolne ale działa na każdym sprzęcie.

    Nowoczesne mikrokontrolery z rdzeniami ARM Cortex-M mogą wykorzystywać rozszerzenia:
    DSP Extension - pozwala na równoległe obliczenia, przetwarzając 4 elementy naraz
    MVE (Helium) - jeszcze bardziej zaawansowane instrukcje wektorowe
    NPU Ethos-U - dedykowane procesory AI

    Biblioteka CMSIS-NN automatycznie wybiera najlepszą implementację dostępną dla danego sprzętu.

    Artykuł przedstawia pełne spektrum: od prostych implementacji w C, przez wykorzystanie instrukcji sprzętowych, aż po przenoszenie obliczeń na specjalizowane procesory AI. Optymalizacje mogą być stosowane bez modyfikacji modelu, choć niektóre zaawansowane funkcje (jak NPU) wymagają specjalnej kompilacji.

    Z tej krótki notki, chciałbym, abyście wiedzieli, że AI na mikrokontrolerach to nie proste kopiowanie algorytmów z komputerów - wymaga sprytnych optymalizacji i głębokiego zrozumienia ograniczeń sprzętowych, aby osiągnąć zadowalającą wydajność przy absolutnie minimalnych zasobach. Jednak ostatnio sporo się dzieje w tej dziedzinie i jeśli będziecie zainteresowani, mogę co jakiś czas informować o nowych rozwiązaniach.

    Cały artykuł:
    https://danielmangum.com/posts/ai-microcontrollers-operators-kernels/


    Jeden ciekawy komentarz z Hacker News:
    Biblioteka tf-lite micro ma wiele zalet, a pierwszą z nich jest sam framework TensorFlow. Możesz łatwo wytrenować model, a następnie zaimplementować taką samą lub podobną architekturę na ESP-32 bez większego wysiłku. Kolejną zaletą jest jej optymalizacja - możesz łatwo ingerować w różne optymalizacje pamięci.
    Poza tym, na przykład, autor zaimplementował model tradycyjnie używając C, ale wygodniej jest używać tf-lite micro na ESP32 z językiem skryptowym Berry.
    https://news.ycombinator.com/item?id=44422662

    Fajne? Ranking DIY
    O autorze
    gulson
    Administrator Systemowy
    Offline 
    Twórca portalu elektroda.pl od roku 1999. Zajmuje się opieką portalu, od czasu do czasu publikując tutaj ciekawostki i felietony. Interesuje się wszystkim, co jest związane z nowymi technologiami - obecnie najbardziej AI. Z wykształcenia technik elektronik, inżynier i magister informatyki po Politechnice Łódzkiej.
    gulson napisał 29411 postów o ocenie 6078, pomógł 150 razy. Mieszka w mieście Kielce. Jest z nami od 2001 roku.
  • REKLAMA
  • #2 21601719
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 21601790
    gregor124
    Poziom 29  
    Posty: 1592
    Pomógł: 99
    Ocena: 845
    Używanie DSP w Cortex-M do dodawania liczb ze znakiem to najlepszy sposób na wsadzenie się na minę.
    Rozkazy SAAD16 czy SAAD8 nie ustawiają żadnych flag, więc po dokonaniu dodawania nigdy nie dowiemy się, czy nasz wynik jest poprawny i np. nie przekroczył zakresu.
    Np. dodając dwie liczby 64 + 65 = 129, tyle że w arytmetyce ze znakiem 129 to -127, a skoro nie mamy znacznika V, to nie będziemy wiedzieć, czy wynik to -127, czy jednak nastąpiło przekroczenie zakresu liczb, czyli błąd.
    Zresztą generalnie wszystkie rozkazy DSP w cortexach nie ustawiają żadnego znacznika, więc jeśli chce się je używać w arytmetyce, trzeba to robić z głową i ostrożnie.
    Co prawda istnieją rozkazy w DSP dodawania ze znakiem, ale nie działają równolegle i też nie dowiemy się z nich, czy np. nasz wynik nie przekroczył granicy 8 czy 16 bitów (brak flagi C).
    Pomogłem? Kup mi kawę.
  • #4 21602715
    pikarel
    Poziom 39  
    Posty: 5010
    Pomógł: 409
    Ocena: 1831
    No proszę; ejaj pod strzechę, a Łindołs - odwrotnie.
    Wygląda, że na głupotę i zachłanność pewnych grup ludzi nie ma lekarstwa.
    I o Pan zrobisz?
    Nic Pan nie zrobisz.
📢 Słuchaj (AI):
REKLAMA