Der Trend, Intelligenz an der Edge aufzubauen, hat drei wesentliche Treiber: Die Entscheidungsfindung an der Edge reduziert die mit der Cloud-Konnektivität verbundenen Latenzzeiten und Kosten und ermöglicht einen Echtzeitbetrieb. Mangelnde Bandbreite zur Cloud führt dazu, dass Datenverarbeitung und Entscheidungsfindung auf Edge-Devices stattfinden. Security ist ein wichtiger Aspekt: Anforderungen an Datenschutz und Vertraulichkeit machen die Verarbeitung und Speicherung von Daten auf dem Gerät selbst erforderlich.
KI an der Edge bietet daher Vorteile wie Autonomie, kürzere Latenzzeiten, weniger Stromverbrauch, geringere Bandbreitenanforderungen, niedrigere Kosten und höhere Sicherheit. Das macht sie für viele neue Anwendungen und Anwendungsfälle attraktiv. Das AIoT hat neue Märkte für MCUs eröffnet und ermöglicht eine wachsende Anzahl neuer Anwendungen und Anwendungsfälle. Diese können MCUs in Kombination mit KI-Beschleunigern nutzen, um die intelligente Steuerung von Edge- und Endpoint-Anwendungen zu erleichtern. Diese KI-fähigen MCUs bieten eine einzigartige Mischung aus DSP-Fähigkeit für Rechenoperationen und maschinellem Lernen (ML) für Inferenzen. Sie werden in so unterschiedlichen Anwendungen wie Sprachsteuerung, Sensorfusion und Vibrationsanalyse eingesetzt. MCUs mit höherer Leistung ermöglichen komplexere Anwendungen in der Bildverarbeitung wie Gesichtserkennung, Fingerabdruckanalyse und Objekterkennung.
Neuronale Netze kommen in KI-/ML-Anwendungen wie Bildklassifizierung, Personenerkennung und Spracherkennung zum Einsatz. Sie sind grundlegende Bausteine für die Implementierung von Machine-Learning-Algorithmen. Diese erfordern umfangreiche lineare Algebra-Operationen wie Skalarprodukte und Matrixmultiplikationen für die Inferenzverarbeitung, Training der Netzwerke und Anpassungen der Gewichtungen. Die Integration von KI in Edge-Anwendungen erfordert erhebliche Rechenkapazitäten auf den Prozessoren. Entwickler dieser neuesten KI-Anwendungen müssen die Anforderungen an höhere Leistung, größeren Speicher und geringerer Leistungsaufnahme erfüllen und gleichzeitig die Kosten niedrig halten. In der Vergangenheit war dies die Aufgabe von GPUs und MPUs mit leistungsstarken CPU-Kernen, großen Speicherressourcen und Cloud-Konnektivität für Analysen. Seit kurzem gibt es KI-Beschleuniger, die diese Aufgabe der Haupt-CPU abnehmen können. Andere Edge-Computing-Anwendungen wie Audio- oder Bildverarbeitung erfordern Unterstützung für schnelle Multiplikations- und Akkumulationsoperationen. Oft haben sich Entwickler dafür entschieden, einen DSP in das System einzubauen, der die Signalverarbeitung und die Rechenaufgaben übernimmt. All diese Optionen bieten die erforderliche hohe Leistung, verursachen aber erhebliche zusätzliche Kosten für das System und verbrauchen in der Regel erheblich mehr Strom. Aus diesem Grund eignen sie sich nicht für stromsparende und preisgünstige Endgeräte.
Wie können MCUs diese Lücke schließen?
Die Verfügbarkeit leistungsfähigerer MCUs lässt AIoT an der Edge zu niedrigen Kosten und mit geringer Leistungsaufnahme Realität werden. AIoT wird durch die höhere Rechenleistung aktueller MCUs sowie durch schlanke neuronale Netzwerkmodelle realisiert, die für ressourcenbeschränkte MCUs in diesen Endpunkt-Anwendungen besser geeignet sind. KI auf MCU-basierten IoT-Geräten ermöglicht die Entscheidungsfindung in Echtzeit sowie eine schnellere Reaktion auf Ereignisse. Darüber hinaus bietet sie Vorteile wie geringere Bandbreitenanforderungen, niedrigere Leistungsaufnahme, geringere Latenz, niedrigere Kosten und höhere Security gegenüber MPUs oder DSPs. MCUs gewährleisten auch schnellere Aufwachzeiten, die eine schnellere Inferenzzeit und eine geringere Leistungsaufnahme ermöglichen. Sie zeichnen sich zudem durch höhere Integration mit Speicher und Peripherie aus, um die Gesamtsystemkosten für kostensensitive Anwendungen zu senken. Die Cortex-M4/M33-basierten MCUs können die Anforderungen einfacherer KI-Anwendungsfälle wie Sprachsteuerung und vorausschauende Wartungserkennung mit geringeren Leistungsanforderungen erfüllen. Für komplexere Anwendungsfälle wie Bildverarbeitung (Objekterkennung, Positionsbestimmung, Bildklassifizierung) oder Sprachverarbeitung (Spracherkennung, NLP) ist jedoch ein leistungsstärkerer Prozessor erforderlich. Der Cortex-M7-Kern kann einige dieser Aufgaben bewältigen, aber die Inferenzleistung ist gering und liegt in der Regel nur im Bereich von 2 bis 4 fps. Erforderlich ist ein leistungsfähigerer Mikrocontroller mit KI-Beschleuniger.
Die High-Performance-KI-MCUs der RA8-Serie
Die neuen MCUs der Renesas-RA8-Serie basieren auf dem Arm-Cortex-M85-Kern (CM85), der auf der Arm-v8.1M-Architektur aufbaut. Sie verfügen über eine siebenstufige superskalare Pipeline und bieten einen zusätzlichen Beschleuniger, die für rechenintensive Aufgaben der neuronalen Netzwerkverarbeitung oder Signalverarbeitung benötigt werden. Der Cortex-M85 ist der leistungsstärkste Cortex-M-Kern und ist mit der Helium-Technologie ausgestattet. Hierbei handelt es sich um die Arm-M-Profile Vector Extension (MVE), die mit der Arm-v8.1M-Architektur eingeführt wurde. Helium ist eine SIMD-Befehlssatzerweiterung (Single Instruction Multiple Data) für die Vektorverarbeitung, die eine Leistungssteigerung durch die Verarbeitung mehrerer Datenelemente mit einem Befehl ermöglicht. Ein Beispiel hierfür ist die wiederholte Multiplikation von mehreren Daten. Helium beschleunigt die Signalverarbeitung und die maschinellen Lernfähigkeiten in ressourcenbeschränkten MCU-Bausteinen erheblich. Die Technologie ermöglicht eine beispiellose vierfache Beschleunigung bei ML-Aufgaben und eine dreifache Beschleunigung bei DSP-Aufgaben im Vergleich zum Cortex-M7-Kern. In Kombination mit einem großen Speicher, hochentwickelter Security und umfangreicher Peripherie sowie externen Schnittstellen eignen sich die RA8-MCUs gut für folgende KI-Anwendungen: Sprach- und Bildverarbeitung sowie rechenintensive Anwendungen, die eine Unterstützung der Signalverarbeitung erfordern, wie Audioverarbeitung, JPEG-Decodierung und Motorsteuerung.
Umfassende Möglichkeiten der RA8-MCUs mit Helium
Die Leistungssteigerung dank Helium wird durch die Verarbeitung von 128 Bit breiten Vektorregistern ermöglicht, die mehrere Datenelemente (SIMD) mit einem Befehl erfassen können. Mehrere Befehle können sich in der Pipeline-Ausführungsphase überschneiden. Der Cortex-M85 ist ein Dual-Beat-CPU-Kern und kann zwei 32-Bit-Datenwörter in einem Taktzyklus verarbeiten, wie Bild 1 zeigt. Eine Multiplikations-Akkumulations-Operation erfordert ein Laden aus dem Speicher in ein Vektorregister, gefolgt von einer Multiplikations-Akkumulation, die gleichzeitig mit dem Laden der nächsten Daten aus dem Speicher erfolgen kann. Durch die Überlappung der Lade- und Multipliziervorgänge kann die CPU die doppelte Leistung eines äquivalenten skalaren Prozessors erbringen, ohne Einschränkungen bei der Bestückungsfläche und der Leistungsaufnahme.
Was bietet die Helium-Technologie von Arm im Detail?
Die Helium-Technologie führt 150 neue Skalar- und Vektorbefehle zur Beschleunigung von Signalverarbeitung und maschinellem Lernen ein:
- Low Overhead Branch Extension (LOBE) für optimierte Branch- und Loop-Operationen sowie reduzierte Branch Penalty.
- Lane Predication ermöglicht die bedingte Ausführung jeder Lane in einem Vektor, was eine effiziente Vektorisierung von komplexem bedingtem Code erlaubt.
- Vektor-Gather-Load- und Scatter-Store-Befehle für Lese- und Schreibvorgänge an nicht zusammenhängenden Speicherplätzen, die bei der Implementierung von zirkulären Puffern nützlich sind; diese kommen häufig bei der Implementierung von FIR-Filtern in DSP-Anwendungen zum Einsatz.
- Arithmetische Operationen mit komplexen Zahlen wie Addieren, Multiplizieren, Rotation (Drehung), die in DSP-Algorithmen verwendet werden.
- DSP-Funktionen wie zirkuläre Puffer für die Implementierung von FIR-Filtern, bitumgekehrte Adressierung für FFT-Implementierungen und Formatkonvertierung bei der Bild- und Videoverarbeitung mit Interleaving- und De-Interleaving-Befehlen.
- Polynomialmathematik, die Finite-Feld-Arithmetik unterstützt, die in kryptografischen Algorithmen und bei der Fehlerkorrektur verwendet wird.
- Native Unterstützung für 8-, 16- und 32-Bit-Festkomma-Ganzzahldaten, die bei der Audio-/Bildverarbeitung und im maschinellen Lernen zum Einsatz kommen, sowie für Gleitkommadaten mit halber, einfacher und doppelter Genauigkeit, die in der Signalverarbeitung genutzt werden.
- Erhöhter MAC-Durchsatz (Multiply-Accumulate), der zwei 32 Bit × 32 Bit MACs/Zyklus, vier 16 Bit × 16 Bit MACs/Zyklus und acht 8 Bit × 8 Bit MACs pro Taktzyklus unterstützt.
Dank dieser Eigenschaften eignet sich eine Helium-fähige MCU besonders für KI/ML- und DSP-ähnliche Aufgaben, ohne dass ein zusätzlicher DSP oder Hardware-KI-Beschleuniger im System erforderlich ist. Das senkt die Applikationskosten und die Leistungsaufnahme.
Bildverarbeitende KI- und Grafikanwendungen mit RA8D1-MCUs
Renesas hat diese Leistungssteigerung mit Helium in einigen KI-/ML-Anwendungsfällen erfolgreich demonstriert und dabei eine deutliche Verbesserung gegenüber einer Cortex-M7-MCU gezeigt – in einigen Fällen um mehr als das 3,6-fache.
Eine dieser Anwendungen ist eine KI-Anwendung zur Personenerkennung, die in Zusammenarbeit mit Plumerai entwickelt wurde, einem führenden Anbieter von bildverarbeitenden KI-Lösungen. Die kamerabasierte KI-Lösung zur Personenerkennung basiert auf der RA8D1-MCU und wurde für den Helium-fähigen Arm Cortex-M85-Kern optimiert und portiert. Diese Lösung stellt sowohl die Leistung des CM85-Kerns und der Helium-Technologie als auch die Grafikfähigkeiten der RA8D1-Bausteine erfolgreich unter Beweis.
Dank der Helium-Technologie erreicht die Anwendung einen 3,6-fachen Leistungsanstieg im Vergleich zu einem Cortex-M7-Kern sowie eine Bildrate von 13,6 fps, was für eine MCU ohne Hardware-Beschleunigung eine starke Performance darstellt. Die Demoplattform erfasst Live-Bilder von einer bildsensorbasierten Kamera OV7740 mit einer Auflösung von 640 × 480 Pixel und zeigt die Erkennungsergebnisse auf einem angeschlossenen 800 × 480 Pixel großen LCD-Display an. Die Personenerkennungssoftware erfasst und verfolgt jede Person innerhalb des Kamerabildes, selbst wenn sie teilweise verdeckt ist. Sie zeigt Begrenzungsrahmen (Bounding Boxes) an, die um jede erkannte Person herum gezeichnet und auf dem Live-Kameradisplay abgebildet werden (Bild 2).
Die Plumerai „People Detection Software“ verwendet ein Convolutional Neural Network mit mehreren Schichten, das mit über 32 Millionen gelabelten Bildern trainiert wurde. Die Schichten, die den Großteil der Gesamtlatenz ausmachen, werden durch Helium beschleunigt. Beispiele hierfür sind die Conv2D- und vollständig verbundenen Schichten sowie die Schichten für die Tiefenfaltung und transponierte Faltung.
Das Kameramodul liefert Bilder im YUV422-Format, die zur Anzeige auf dem LCD-Display in das RGB565-Format konvertiert werden. Die integrierte 2D-Grafik-Engine auf dem RA8D1 ändert dann die Größe und konvertiert das RGB565-Format in das ABGR8888-Format mit einer Auflösung von 256 × 192 Pixel für die Eingabe in das neuronale Netz. Die Personenerkennungssoftware, die auf dem Cortex-M85-Kern ausgeführt wird, konvertiert dann das ARBG8888-Format in das Eingabeformat des neuronalen Netzes und führt die Inferenzfunktion zur Personenerkennung aus. Grafikfunktionen, die die 2D-Drawing-Engine des RA8D1 nutzen, kommen zum Einsatz, um die Kameraeingaben auf das LCD-Display zu übertragen und um Begrenzungsrahmen (Bounding Boxes) um die erkannten Personen zu zeichnen und die Bildrate anzuzeigen. Die Personenerkennungssoftware belegt etwa 1,2 MB Flash und 320 KB SRAM, einschließlich des Speichers für das ABGR8888-Eingabebild mit einer Auflösung von 256 × 192 Pixel.
Es wurde ein Benchmarking durchgeführt, um die Latenz der Personenerkennungslösung von Plumerai mit dem gleichen neuronalen Netzwerk im Betrieb mit TensorFlow Micro und dem CMSIS-NN-Kernel von Arm zu vergleichen. Zusätzlich wurde für den Cortex-M85 die Leistung beider Lösungen auch ohne Helium (MVE) verglichen. Diese Benchmarkdaten zeigen die reine Inferenzleistung ohne die Latenz für Grafikfunktionen wie Bildformatkonvertierungen (Bild 3).
Diese Anwendung nutzt alle auf dem RA8D1 verfügbaren Ressourcen optimal: die hohe Leistung von 480 MHz, Helium zur Beschleunigung des neuronalen Netzes, den großen Flash- und SRAM-Speicher zur Speicherung von Modellgewichten und Eingabeaktivierungen sowie die Kamera zur Erfassung von Eingabebildern/Videos und das Display zur Anzeige der Erkennungsergebnisse (Bild 4).
KI-Sprachanwendung mit RA8M1-MCUs
Eine weitere Anwendung ist eine Sprachbefehlserkennung, die auf dem RA8M1 läuft. Sie implementiert ein Deep Neural Network (DNN), das mit Tausenden von verschiedenen Stimmen trainiert wurde und über 40 Sprachen unterstützt. Diese Sprachanwendung stellt eine Verbesserung gegenüber der einfachen Erkennung von Schlüsselwörtern dar. Sie unterstützt eine modifizierte Form des natürlichen Sprachverständnisses (Natural Language Understanding, NLU). Bei dieser ist nicht nur das Befehlswort oder die Phrase ausschlaggebend, sondern es wird nach der Absicht gesucht. Damit kann eine natürlichere Sprache genutzt werden, ohne dass genaue Schlüsselwörter oder Formulierungen gemerkt werden müssen.
Die Sprachimplementierung nutzt die auf dem Cortex-M85-Kern mit Helium verfügbaren SIMD-Befehle. Der RA8M1 ist eine ideale Lösung für diese Art von KI-Sprachanwendungen. Er verfügt über einen großen Speicher, unterstützt die Audioerfassung und bietet vor allem die hohe Leistung und ML-Beschleunigung, die durch den Cortex-M85-Kern und Helium ermöglicht wird. Die Implementierung dieser Lösung mit und ohne Helium weist eine mehr als zweifache Verbesserung der Inferenzleistung gegenüber der Cortex-M7-basierten MCU auf, wie Bild 5 zeigt.
Es ist offensichtlich, dass die RA8-MCUs mit Helium die Leistung neuronaler Netze ohne zusätzliche Hardwarebeschleunigung erheblich verbessern können. Damit bieten sie eine kostengünstige Low-Power-Option für die Implementierung von einfacheren KI- und Machine-Learning-Anwendungsfällen. (na)