Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller für KI


von Christoph M. (mchris)


Lesenswert?

Mittlerweile gibt es ja schon einige Mikrocontroller mit 
KI-Beschleuniger.
Es gibt den ESP32-S3 mit SIMD-Befehlen zur Beschleunigung der 
Neuronenberechnung.
Es gibt auch die STM32N6 Serie, die wohl auch einen Beschleuniger 
drinnen hat. Mich interessiert die konkrete Struktur, aber im Netz 
findet man vorwiegend nur Marketinggelaber.
Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.

Es gibt von STM einen Modellzoo, aber ob das die Hauptanwendungen sind?

https://stm32ai.st.com/model-zoo/

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Es gibt den ESP32-S3 mit SIMD-Befehlen zur Beschleunigung der
> Neuronenberechnung.

> Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.

Die Frage ist, was ist überhaupt "KI" in diesem Fall?
Machine Learning" -ML- ist im embedded der passendere Begriff und da 
gibt es seit Jahrzehnten etliches, bspw. auch NPC-Spiele-Algorithmen. 
Oder wenigsten mit edge-AI.

Nur nach KI gefragt wird's doch nur wieder "Bullshit-Bingo".

Da mal ein Paper zu einer praktischen  "AI-Anwendung" auf STM32:

"... integrating a machine learning–based In-
trusion Detection System (IDS) on the STM32F407-DISCO
platform. ... A lightweight
deep learning model was optimized for embedded deployment,
achieving reliable classification accuracy with low memory
and computational overhead ... "

https://openreview.net/pdf?id=Y6SAZDGWtl

Da eine (?) AI-library für STM32:
https://wiki.st.com/stm32mcu/wiki/AI:NanoEdge_AI_Library_for_anomaly_detection_(AD)

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Welcher der beiden Mikrocontroller hatte ein höhere KI-Rechenleistung?

1. Der ESP32-S3
2. Ein STM32N6

von Michael B. (laberkopp)


Lesenswert?

Christoph M. schrieb:
> Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.

Nichts, ausser Marketing.

Mit ach und krach bekommt man eine einzelne Logikfunktion hin. Bekannt 
ist das NOT abgebildet mit einem Neuronennetz.

von Christoph M. (mchris)


Lesenswert?

Michael B. schrieb:
> Christoph M. schrieb:
>> Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.
>
> Nichts, ausser Marketing.
>
> Mit ach und krach bekommt man eine einzelne Logikfunktion hin.

[ ] Du hast dir die Seite im ersten Post angeschaut: 
https://stm32ai.st.com/model-zoo/
[ ] Du kennst dich mit der Thematik aus

von Vanye R. (vanye_rijan)


Lesenswert?

> Welcher der beiden Mikrocontroller hatte ein höhere KI-Rechenleistung?

Bei Embedded solltet man eher fragen: hoehere KI-Rechenleistung pro mA!

Zumindest ich kann keine Kuehlkoerper auf die MCUs nageln bloss weil BI 
zu faul zum selber denken war...

Vanye

von Christoph M. (mchris)


Lesenswert?

Vanye R. schrieb:
> Bei Embedded solltet man eher fragen: hoehere KI-Rechenleistung pro mA!

Das könnte bei Rechnern mit großer Graphikkarte auch eine Rolle spielen. 
Wenn die 300W hat laufen die Stromkosten bei längerem Betrieb auch ins 
Geld.

Bei den Embedded-Systemen würde ich die Neuro-Architektur als sehr 
relevant einschätzen. Während der ESP32-S3 die SIMD Befehle mit 
load/store hat, könnte der ST32N6 schon eine Art NPU haben, mit der man 
Matrixmultiplikaitonen in einem Rutsch durchführen kann (das wäre 
wichtig für die CNN um die Bilder zu klasifizieren). Welche 
Rechengenauigkeit möglich ist und ob die Aktivierungsfunktionen gleich 
mitgerechnet werden können, wird sicherlich auch ein große Rolle 
spielen.

von Christoph M. (mchris)


Lesenswert?

Wie kann man einen einfache Schrifterkennung auf das Unhiker K10 
bringen?

Es gibt den MNIST Datensatz (handschriftliche Ziffern von 0-9) mit dem 
Modelle trainieren kann:
https://www.geeksforgeeks.org/machine-learning/mnist-dataset/

Welche Toolchain kann man nutzen, um ein funktionierendes Beispiel zu 
erzeugen?

Eigentlich gäbe es Tensorflow-Lite:
https://www.unihiker.com/new-17372.html

Weil das flashen mit der Arduino-Umgebung relativ lange geht, wäre mir 
ein Micropython Bibliothek lieber.

von Alexander (alecxs)


Lesenswert?

Christoph M. schrieb:
> Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.

Gib Bescheid wenn Du eine Antwort gefunden hast.

von Markus K. (markus-)


Lesenswert?

Christoph M. schrieb:
> Welcher der beiden Mikrocontroller hatte ein höhere KI-Rechenleistung?
>
> 1. Der ESP32-S3
> 2. Ein STM32N6

Der S3 sollte 16 MAC pro Kern und Takt können. Das sind bei 2 Kernen und 
240MHz 2x2x16x240MHz = 15,4 GOPS.

Der N6 hat 300 MAC-Einheiten bei 1GHz Takt und da 1 MAC=2 Operationen 
sind, sind das 600GOPS. .

Der N6 ist also der klare Sieger, aber er ist auch etwas teurer. Der 
öffentliche 10.000er Preis bei ST ist um die 9€ (nur der Chip), während 
man den S3 auch in Deutschland für um die 6€ als fertiges Board bekommt.

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Christoph M. schrieb:
> Die Frage ist, was kann man mit KI auf dem Mikrocontroller machen.

Zum Beispiel Erkennung von Personen auf Bildern. Also z.B. eine 
Überwachungskamera, die meldet, wenn sich jemand ums Haus schleicht. 
Dazu müsste der Controller natürlich noch ein Interface für einen 
Bildsensor haben (heutzutage meist CSI-2), eine ISP (Image Signal 
Processor, weil die meisten Sensoren heutzutage RAW-Bilder schicken) und 
hinterher noch einen Videoencoder, der H264 kann.

Ganz zufällig hat der STM32N6 genau das alles.

von Christoph M. (mchris)


Lesenswert?

Markus K. schrieb:
> Der S3 sollte 16 MAC pro Kern und Takt können. Das sind bei 2 Kernen und
> 240MHz 2x2x16x240MHz = 15,4 GOPS.

Die Rechnung klingt interessant, aber ich melde mal deutliche Zweifel 
an.

Der S3 müsste den 128Bit (8*8Bit)SIMD Befehl inclusive Befehl lesen, 
Daten lesen und Rückschreiben in einem Zyklus und das mit zwei Kernen, 
können. Da könnte der Speicher eine Bremse sein, der den Durchsatz gar 
nicht erlaubt oder sich die zwei Kerne den Zugriff gegenseitig 
blockieren. Außerdem besteht die Berechnung eines neueronalen Netzes aus 
mehren Befehlen als der MAC/Load/Store Befehl und die dürften dann die 
durchschnittliche Performance deutlich senken. Ich glaube für ein 
zuverlässiges Ergebnis bräuchte man einen konkreten Benchmark.

von Thorsten S. (whitejack)


Lesenswert?

Markus K. schrieb:
> sich jemand -v- ums Haus

v - "bestimmtes!"

Sonst: Bewegungsmelder mit IR-KI für 7,95€ nutzen.

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Christoph M. schrieb:
> Markus K. schrieb:
>> Der S3 sollte 16 MAC pro Kern und Takt können. Das sind bei 2 Kernen und
>> 240MHz 2x2x16x240MHz = 15,4 GOPS.
>
> Die Rechnung klingt interessant, aber ich melde mal deutliche Zweifel
> an.
>
> Der S3 müsste den 128Bit (8*8Bit)SIMD Befehl inclusive Befehl lesen,
> Daten lesen und Rückschreiben in einem Zyklus und das mit zwei Kernen,
> können.

Du schreibst oben "der ESP32-S3 die SIMD Befehle mit load/store hat". 
Das habe ich so interpretiert, dass die SIMD-Befehle das selber können. 
Wenn das nicht so ist, macht das natürlich einen großen Unterschied.

Prinzipiell haben Befehle und Daten getrennte Busse und sollten daher 
parallel gehen.

> Da könnte der Speicher eine Bremse sein, der den Durchsatz gar
> nicht erlaubt oder sich die zwei Kerne den Zugriff gegenseitig
> blockieren.

Ich bin davon ausgegangen, das eine Dual-Kern CPU unabhängige Caches für 
die beiden Cores hat. Ich habe aber gerade ins TRM geschaut und da 
steht, dass es bei gleichzeitigen Zugriffen einen Arbiter gibt. Das 
finde ich jetzt enttäuschend.

> Außerdem besteht die Berechnung eines neueronalen Netzes aus
> mehren Befehlen als der MAC/Load/Store Befehl und die dürften dann die
> durchschnittliche Performance deutlich senken. Ich glaube für ein
> zuverlässiges Ergebnis bräuchte man einen konkreten Benchmark.

Klar, aber das ist ja immer so. Auch die NPUs können nicht alles in 
Hardware und wenn die 300 MACs parallel kann, dann muss man die ja auch 
erstmal vollbekommen, also das Netz muss so beschaffen sein, dass das 
geht.

Insgesamt scheint der S3 aber deutlich weiter vom theoretischen Maximum 
entfernt zu sein, als ich gedacht hatte.

von Markus K. (markus-)


Lesenswert?

Thorsten S. schrieb:
> Markus K. schrieb:
>> sich jemand -v- ums Haus
>
> v - "bestimmtes!"
>
> Sonst: Bewegungsmelder mit IR-KI für 7,95€ nutzen.

Personen identifizieren können die kleinen Netze idR nicht.

Die Idee ist zum einen, dass die KI Menschen von Tieren unterscheiden 
kann, ohne dass man das Gerät so montieren muss, dass es den Boden nicht 
trifft.
Zum anderen ist das damit halt schon in der Kamera integriert. Mit dem 
IR-Melder hast Du ja zwei Geräte und müsstest das auch noch irgendwie in 
das Videosystem integrieren.  Es gibt durchaus Videolösungen, bei denen 
man in der Aufzeichnung z.B. nach allen Leuten mit einer roten Mütze 
suchen kann.

Ansonsten gibts ja z.B. Rückfahrkameras für Baumaschinen, die sowas 
können. Ultraschall z.B. reagiert ja auch auf Gras oder Hügel, aber die 
Kamera eben nicht.

von Ein T. (ein_typ)


Lesenswert?

Christoph M. schrieb:
> Michael B. schrieb:
>> Nichts, ausser Marketing.
>>
>> Mit ach und krach bekommt man eine einzelne Logikfunktion hin.
>
> [ ] Du hast dir die Seite im ersten Post angeschaut:
> https://stm32ai.st.com/model-zoo/
> [ ] Du kennst dich mit der Thematik aus

Er ist halt kein Lese- oder Auskennkopf. :-)

von Michael K. (michael_k511)


Lesenswert?

Christoph M. schrieb:
> die Hauptanwendungen

Naja, ein 32N6 ist immer noch eine MCU.
Gesten, Keyword Spotting, Präsenzerkennung.
Viel mehr wird das nicht sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.