Tensorflow Lite - Vergleich Teensy 4/Maixduino K210/MAX78000

OP #7148884
Lesenswert?

Ich habe erfolgreich Tensorflow Lite für Microcontroller (TFLM) in c++ 
auf meinem Teensy 4.1 zum laufen gebracht und lasse dort ein neuronales 
Netz mit convolutional Layern (CNN) berechnen, int8-quantisiert wie von 
TFLM gefordert. Layer Struktur siehe Anhang.

Es hat sich herausgestellt, dass der Teensy trotz beachtlicher 600MHz 
CPU Frequenz nicht schnell genug ist für meine Anwendung. Hat jemand 
Erfahrungen, ob ein Kendryte K210 oder ein MAX78000 schneller wären?

Die o.g. CPUs sind niedriger getaktet, haben aber einen CNN 
Hardware-Beschleuniger integriert, was der Teensy z.b. nicht hat. 
Inwiefern sich das auf die Performance tatsächlich auswirkt, kann ich 
aber nirgendwo konkret finden.
Hat hier vielleicht jemand eine der o.g. CPUs oder was vergleichbares 
mit TFLM am Start, so dass wir einen Geschwindigkeitsvergleich machen 
könnten?

Ich programmiere in C++ auf dem uC, da das auch der Rest meiner 
Anwendung erfordert. Der Stromverbrauch sollte insgesamt unter 300mA 
liegen, weshalb schnellere Prozessoren, die dann auch z.b. Linux 
erfordern, i.d.R. ausscheiden. Andere CPUs/DevBoards neben den oben 
genannten wären natürlich auch interessant.

Beste Grüße, Thomas
Angehängte Dateien:
#7149236
Lesenswert?

Thomas H. schrieb:

> Hat hier vielleicht jemand eine der o.g. CPUs oder was vergleichbares
> mit TFLM am Start, so dass wir einen Geschwindigkeitsvergleich machen
> könnten?

Ich habe hier ein Haufen Sachen von Sipeed, sowohl Module als auch alle 
Boards.
https://maixduino.sipeed.com/en/hardware/board.html

Ein MAX78000FTHR Board habe ich auch, es gab mal ein "MAX78000 AI Design 
Contest" von Elektor und das Board gab es kostenlos dazu wenn die 
Projektidee angenommen wurde.

Ich kann dir gerne ein K210 Board/Modul abgeben allerdings fahre ich 
heute Abend in den Urlaub und komme erst in der KW34 zurück.

Grüss

-rajko
OP #7149622
Lesenswert?

Vielen dank für eure Antworten und das super nette Angebot @ Rajko!
Wie waren denn so Deine Erfahrungen mit den Boards?
Ich würde gerne wenn möglich vorab raus finden ob es sich 
geschwindigkeitsmäßig "lohnt", TensorflowLite Micro selber auf einem 
anderen Board zu implementieren, Toolchain aufsetzen, etc...
Vielleicht findet sich hier ja jemand, der gerade aktiv an einem 
vergleichbaren Projekt arbeitet, dann könnten wir evtl die ein oder 
andere Netzwerk-Topologie austauschen und ein wenig vergleichen.
#7188353
Lesenswert?

Hallo Thomas,

der Unterschied zwischen ein CNN in Firmware (100MHz ARM-CM4) und dem 
MAX78000 liet bei ca. dem Faktor 1600, wenn man als Netzwerk das MNIST 
zu Grunde legt.

Szenario         Zeit pro Inferenz [ms]   Energie pro Inferenz [µWs]
MAX32630 (96MHz)       574,00               22887,0
MAX78000, normal         1,42                  20,7
MAX78000, optimiert      0,36                   1,1

Wenn du Fragen hast, melde dich einfach.

Schöne Grüße
Ole

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren