MCU, MPU oder FPGA: Was ist das Beste für KI an der Edge?

Redakteur: Margit Kuther

Komplexe Anwendungen der Künstlichen Intelligenz (KI) wie Autonomes Fahren müssen sicherheitskritische Entscheidungen innerhalb von Nanosekunden treffen. Doch der schnellste Prozessor ist nicht immer der beste. Lesen Sie, warum.

Anbieter zum Thema

Autonom fahrendes Auto von Uber: Komplexe Algorithmen sind erforderlich.
Autonom fahrendes Auto von Uber: Komplexe Algorithmen sind erforderlich.

Das Leben der Insassen autonomer Fahrzeuge und anderer Verkehrsteilnehmer hängt etwa von der Leistungsfähigkeit der Grafikverarbeitungseinheit (GPU; Graphics Processing Unit) und komplexer Algorithmen für neuronale Netze ab, die in Echtzeit Objekte wie Fußgänger, Radfahrer, Verkehrsampeln und -schilder erkennen müssen. Doch nicht nur autonome Fahrzeuge nutzen Hardware zur Ausführung mathematisch komplexer Modelle für neuronale Netze. Beispiele für KI in der Praxis – etwa automatisierte Systeme für Online-Kundendienste mit Chatbots, die auf der IBM-Plattform Watson laufen – benötigen ganze Batterien von Servern mit einer Vielzahl extrem leistungsfähiger Prozessoren.

Das bedeutet jedoch nicht, dass alle Implementierungen der KI die schnellsten und leistungsfähigsten Prozessoren erfordern. Tatsächlich sollten die Hardwarespezifikationen durch die funktionalen Anforderungen bestimmt werden und nicht umgekehrt. Eine überspezifizierte Hardware ist auf dem Gebiet der KI ebenso wenig sinnvoll, wie in jedem anderen Bereich des Embedded Computings. Es ist überraschend zu sehen, wie viele KI-Systeme an der Edge, völlig unabhängig von Cloud-Diensten, auf kostengünstigen Hardwareplattformen wie 32-Bit-Mikrocontrollern oder FPGA mittlerer Dichte laufen können.

Die Vorteile des Edge Computings

Natürlich können die Entwickler von KI-Anwendungen sich dafür entscheiden, die Inferenz (oder Zuordnung) in der Cloud auszuführen, wo die Hardwareressourcen nahezu unbegrenzt sind. Dies ist die Architektur, die etwa beim Alexa-Sprachdienst von Amazon eingesetzt wird. Dabei hört ein Gerät, etwa ein intelligenter Lautsprecher, wenn der Benutzer das Aktivierungswort „Alexa“ sagt, und stellt dann zum Spracherkennungs-Cloud-Dienst von Amazon durch, um den gesprochenen Befehl zu interpretieren.

Häufig gibt es aber gute Gründe, Embedded-Systeme vorzuziehen und die Inferenz lokal an der Edge durchzuführen: Eine langsame Netzwerkverbindung kann eine hohe Latenz verursachen. Bei einem Ausfall der Netzwerkverbindung kommt die Inferenzfunktion völlig zum Erliegen. Die lokale Inferenz beseitigt die möglichen Ursachen von Unzuverlässigkeit. Die Inferenz ist eine datenintensive Aktivität, und einige Provider von Netzwerkdiensten verlangen hohe Preise für die Übertragung großer Datenmengen. Eine Netzwerkverbindung ist ein möglicher Angriffspunkt für Schadsoftware, Hacker oder andere Bedrohungen.

Ein Standalone-Gerät für die Inferenz an der Edge ist vor Angriffen über das Netzwerk sicher. Die Inferenz in der Cloud erfordert eine bedeutende Infrastruktur, einschließlich der Netzwerkhardware sowie der Bereitstellung von Netzwerk- und Cloud-Diensten. Ein OEM kann die Notwendigkeit zur Spezifizierung und Wartung dieser Infrastruktur umgehen, indem er die Inferenz an der Edge durchführt.

Es gibt also gute Gründe dafür, die lokale Inferenz auf Bauteilen wie Mikrocontrollern, Anwendungsprozessoren und FPGA zu bevorzugen. Aber wirkt sich die Hardwareplattform des Entwicklers darauf aus, welche Art von KI-Anwendung er oder sie erfolgreich implementieren kann?

Geschwindigkeit und Genauigkeit sind entscheidend

Es gibt zwei wichtige Parameter, die die Hardwareanforderungen bei einer Embedded-KI-Entwicklung bestimmen: die Geschwindigkeit (oder Latenz) und die Genauigkeit. Grob gesagt gilt, dass je mehr Zeit Ihr System hat, um zu einer Eingabe eine Entscheidung zu treffen, und je höher Ihre Toleranz für Fehler ist, desto weniger Leistung wird auf der Seite der Hardware benötigt. Das System zur Erkennung von Objekten in einem autonomen Fahrzeug liegt an einem Ende des Spektrums der Anwendungsfälle. Bei ihm geht es um Latenzen im Nanosekundenbereich und eine Genauigkeit von nahezu 100%.

Das Gegenteil hiervon wäre eine intelligente Katzenklappe, die sich für die Katze des Besitzers öffnet und alle anderen Tiere, ob Katze oder nicht, aussperrt. Bei diesem Gerät wäre eine Verarbeitungszeit von bis zu 500 ms für das Signal der außen an der Katzenklappe montierten Kamera hinnehmbar. Und die Tierhalter könnten eine Genauigkeit von 98% akzeptieren, bei der das Tier in jedem 50. Fall nicht beim ersten Versuch erkannt wird und die Gesichtserkennung ein zweites Mal wiederholt werden muss.

Sicher wäre es möglich, die Latenz der Katzenklappe auf 10 ms zu verringern und ihre Genauigkeit auf 99% zu erhöhen. Aber die zusätzlichen Materialkosten dafür wären erheblich. Der Entwickler muss sich fragen: Steigert die höhere Leistung den Wert, den der Verbraucher dem Gerät zumisst?

Künstliche Intelligenz erfordert nicht immer komlexe Hardware

Es ist bemerkenswert, wie viel in der Künstlichen Intelligenz mit nur wenig Hardware möglich ist. Tatsächlich hat STMicroelectronics einen Weg gefunden, KI völlig ohne eine MCU zu implementieren. ST hat eine kleine Recheneinheit, bezeichnet als Machine Learning Core (MLC), in einige MEMS-Bewegungssensoren, etwa den Beschleunigungsmesser/Gyroskop LSM6DSOX eingebettet. Dieser Sensor kann dazu eingesetzt werden, Klassen von Bewegungsdaten wie Joggen, Gehen, Sitzen und Fahren zu erfassen.

Merkmale dieser Daten wie Mittelwert, Varianz, Energie und Spitze-Spitze-Werte werden offline analysiert, um einen Typ von Erkennungs-Algorithmus zu erzeugen, der als Entscheidungsbaum bezeichnet wird. Wenn der LSM6DSOX beispielsweise in ein Sportarmband integriert wird, kann der MLC den Entscheidungsbaum in Echtzeit auf die Bewegungsmessungen des Sensors und die Klassifizierung der Aktivität des Trägers anwenden.

QuickLogic, Hersteller von programmierbaren System-on-Chip (SoC), nutzt einen ähnlichen Ansatz, um anspruchsvolle Anwendungen zur prädiktiven Wartung auf preisgünstiger Hardware wie seiner Plattform QuickAI oder einer Arm-Cortex-M4-basierenden MCU auszuführen. Die prädiktive Wartung arbeitet mit der Erkennung verschiedener Arten zeitlich aufeinanderfolgender Daten wie Vibrationen und Schall. Deep Learning und neuronale Netze werden verbreitet eingesetzt, um Anzeichen von Störungen in den Mustern dieser zeitlich aufeinanderfolgenden Daten zu erkennen.

Diese Algorithmen gehören zu einer größeren Gruppe von Algorithmen, die als Klassifizierer bekannt sind. Klassifizierer verarbeiten verfügbare Eingaben zu den gewünschten diskreten Ausgangsklassifizierungen in einem Prozess, der als Inferenz bezeichnet wird. Dieser Begriff deckt eine Reihe verschiedener Methoden, von klassischen Techniken zum Maschinenlernen wie Bayes und Support Vector Machine (SVM), bis zu einfachen Formen neuronaler Netze, wie radiale Basisfunktionen (RBF) und k-Nearest-Neighbours (kNN), ab. Diese können mit Feature Engineering kombiniert werden. Am komplexen Ende der Skala finden sich Deep-Learning-Netzwerke, bei denen die Features über große Datensets und einen Prozess trainiert werden, der als Rückpropagierung (engl. backpropagation) bezeichnet wird.

SensiML unterstützt beim Maschinenlernen

Entwicklungsfluss zum Maschinenlernen: mit dem KI-Toolkit SensiML von QuickLogic.
Entwicklungsfluss zum Maschinenlernen: mit dem KI-Toolkit SensiML von QuickLogic.
(Bild: SensiML)

Das KI-Entwicklungstoolkit SensiML von QuickLogic stellt eine komplette Umgebung zur Erstellung intelligenter IoT-Sensoren mit den geeignetsten Techniken zum Maschinenlernen bereit. Dazu gehören Erfassung und Labelling der rohen Sensordaten, die Analyse des Datensatzes für den effizientesten Algorithmus, unter Berücksichtigung der Beschränkungen der Entwicklung, und die automatische Erzeugung von Code von der Signalerfassung bis zur Ausgabe des Klassifizierers. Dieser Prozess wird für die Zielhardware, etwa QuickAI oder andere unterstützte Plattformen, optimiert. Einige KI-Anwendungen können somit auf äußerst einfacher Hardware laufen. Das gilt aber nicht für alle. Die Bild- und die Objekterkennung erfordern zum Beispiel neuronale Netze, und die lokale Inferenz eines trainierten neuronalen Netzwerkmodells ist eine rechenintensivere Angelegenheit als ein Entscheidungsbaum.

Das PolarFire FPGA bietet umfangreiche DSP-Kapazitäten

Microchip Technology, mit ihrer Hochleistungs-FPGA-Familie PolarFire mit mittlerer Dichte, nimmt für sich in Anspruch, dass ihre FPGAs grundsätzlich effizienter und schneller bei der Ausführung lokaler Inferenz von Algorithmen für neuronale Netze sind, als andere digitale Bauteile. Wie jedes FPGA unterstützen die Bauteile der PolarFire-Familie eine parallele Verarbeitung im Gegensatz zur sequentiellen Verarbeitung durch die CPU in einer MCU oder einem Anwendungsprozessor.

Das PolarFire FPGA bietet außerdem umfangreiche DSP-Kapazitäten in Form von 8-Bit-Mathematikblöcken. Das PolarFire FPGA MPF500T enthält beispielsweise 1480 Mathematikblöcke. Die Inferenz eines neuronalen Netzes besteht im Wesentlichen aus einer großen Anzahl von Berechnungen, die parallel ausgeführt werden.

Tests bei Microchip haben gezeigt, dass ein PolarFire FPGA MPF300 die offenen TinyYolo-v2-Algorithmen zur Bilderkennung ausführen kann, um Tiere wie Kühe und Pferde mit einer Bildrate von 43 B/s zu erkennen, und dabei eine Leistung von nur 3 W aufnimmt. Dies ist ein beeindruckendes Beispiel für die Effizienz, mit denen Algorithmen für neuronale Netze auf einem PolarFire FPGA lokal implementiert werden können. Für die anspruchsvollsten Formen eingebetteter KI, etwa Sprachsteuerung, Gesichtserkennung und Überwachung des Maschinenzustands, haben sowohl NXP als auch ST Microelectronics ein umfassendes Hardware- und Softwareangebot, das von Arm-Cortex-M-basierenden Mikrocontrollern bis zu Anwendungsprozessoren reicht. Der STM32MP1 von ST enthält zwei Arm-Cortex-A7-Prozessorkerne, und NXP bietet eine große Auswahl von i.MX Anwendungsprozessoren an, die auf Arm-Cortex-A-Kernen aufbauen.

Beide Hersteller unterstützen dieses Hardware-Angebot mit KI-Enablement- und Entwicklungswerkzeugen. NXP liefert sogar fertige Referenzentwicklungen als Beleg dafür, dass Anwendungen wie die lokale Sprachsteuerung, die Erkennung von Anomalien und die Gesichtserkennung auf ihren Crossover-Prozessoren der Serie i.MX RT möglich sind. Diese Bauteile enthalten statt des Cortex-A-Prozessorkerns einen High-End-Mikrocontroller Arm Cortex-M7.

Die Firma Lattice Semiconductor bietet mit den Produktfamilien ice40 und ECP5 ebenfalls KI-Lösungen auf FPGA-Basis an. Beispielsweise ist auf dem Bildsensormodul HM01B0 mit dem ice40 eine Gestensteuerung und Anwesenheitserkennung implementiert. Diese Detektion benötigt lediglich 1 mW Leistung und ist in einem sehr kleinen, günstigen FPGA implementiert. Das Referenzdesign bringt alles Notwendige mit, um ein fertiges Produkt bis hin zum Bitstream zu generieren, also Quellcode und Trainingsdaten. Wer darauf aufbauend eine leistungsfähigere aber dennoch stromsparende Implementierung benötigt, kann den Code auf Basis des ECP5 nahtlos nach oben skalieren.

Auswahl kostengünstiger Hardware

Für viele Anwendungen besteht die richtige Wahl darin, die KI-Inferenz an der Edge statt in der Cloud auszuführen. Wie die Beispiele oben zeigen, ist die Hardware hierfür bereits heute verfügbar, und es ist dieselbe Hardware, mit der Entwickler von Embedded-Systemen bereits vertraut sind. Es trifft zu, dass FPGA, wie die Bauteile der Microchip-Familie PolarFire für die Inferenz neuronaler Netze mit hoher Geschwindigkeit gewisse Geschwindigkeits- und Leistungsvorteile bieten, aber einige Anwendungen erfordern nicht einmal ein neuronales Netz. Und wo ein einfacherer Algorithmus ausreicht, kann auch eine einfachere Hardware eingesetzt werden.

(ID:46210195)