Edge AI

Künstliche Intelligenz an der Edge braucht auch entsprechende Rechenleistung. Daher sollten Entwickler hier auf Lösungen mit KI-Beschleunigern setzen, die auch skalierbar sind. (Bild: AdobeStock 596397154, whatsap+994515941183)

Seit ihrem Erscheinen vor etwas mehr als zehn Jahren hat künstliche Intelligenz die akademischen Schranken überwunden und sich hin zum kommerziellen Mainstream entwickelt. Weil sich Anwender erweiterte KI-Kapazitäten auf Edge-Geräten wünschen – beispielsweise für Sicherheits- oder Medizinapplikationen, aber auch im Einzelhandel oder in der Robotik – nimmt KI nun auch Einfluss auf das Embedded Computing.

KI in Anwendungen zu integrieren wird jedoch für Entwickler zum Problem, sobald es sich um Embedded-Systeme handelt: Denn die naheliegende Umstellung auf eine neue Hostplattform kann die Markteinführung deutlich verzögern. Zudem birgt sie das Risiko, dass die neue Plattform nicht den langfristigen Support erhält, wie ihn NXP und andere Hersteller etablierter Hardwareplattformen anbieten – und der in vielen Embedded-Computing-Märkten notwendig ist.

Um KI-Modelle in Echtzeit auszuführen, benötigt man eine äußerst energieeffiziente Verarbeitung. Zwar ist diese weit weniger rechenintensiv als die Trainingsphase, die für jedes neue Trainingsmuster mehrere Durchläufe durch den gesamten Parametersatz erfordert. Dennoch bedingt auch die Inferenzierung im Einsatz Millionen an Berechnungen, um etwa jedes einzelne Bild einer Videosequenz zu analysieren. Bei vielen aktuellen Embedded-KI-Implementierungen verlagert man die Inferenz in die Cloud. Um aber unter Echtzeitanforderungen die Latenz zu verringern, ist es unerlässlich, die Daten lokal vom Edge-Appliance oder vom Sensor selbst, also beispielsweise von der Kamera, inferenzieren zu lassen.

Diese Aufgabe können Embedded-KI-Plattformen mit Systems-on-Chip lösen: Auf dem SoC beherbergen sie neben einem Universalprozessor einen oder mehrere IP-Blöcke für die Inferenzbeschleunigung; Beispiele sind der i.MX 8M Plus von NXP oder der QCS610 von Qualcomm. Derartigen All-in-One-Implementierungen fehlt es aber an Granularität und Skalierbarkeit. In realen Anwendungsfällen mit wachsenden Ansprüchen an die Verarbeitung hoher Bildraten und hochaufgelöster Eingangsdaten sind diese unerlässlich.

High-Level-Blockdiagramm sowie Bildverarbeitungs- und Inferenz-Pipeline für das Beispiel einer intelligenten Kamera.
High-Level-Blockdiagramm sowie Bildverarbeitungs- und Inferenz-Pipeline für das Beispiel einer intelligenten Kamera. (Bild: Kinara)

Systemerweiterung mit KI-Beschleunigern

Eine Alternative ist es, bestehende Systeme um einen dedizierten Edge-KI-Beschleuniger zu erweitern. Das bietet Embedded-Entwicklern einige Vorteile: Sie können zum einen den Prozessor oder die Prozessoren ihrer Wahl beibehalten und zum anderen schrittweise die Leistung erhöhen, die für immer anspruchsvollere KI-Workloads erforderlich ist.

Der Ara-1 von Kinara ist ein solcher Beschleuniger. Jeder Ara-1 kann mehrere KI-Modelle ohne Overhead und ohne zusätzliche Belastung des Host-Prozessors ausführen; außerdem kann er parallele Aufgaben übernehmen. Ist eine höhere Systemleistung oder Bildrate erforderlich, so kann man mehrere Ara-1-Beschleuniger parallel einsetzen. Diese kommunizieren dann über eine Hochgeschwindigkeits-PCIe-Verbindung oder eine USB-3.2-Schnittstelle mit dem Hostprozessor. In diesem Szenario lassen sich verschiedene eingehende Daten zur Inferenz auf die Ara-1-Komponenten im System verteilen und diesen dynamisch neu zuweisen. Dies kann für Anwendungen wie das Tracking von Personen oder Objekten wichtig sein. Dabei kann sich ein Objekt von Interesse, das in einem früheren Schritt identifiziert wurde, aus dem Bild bewegen. Verlässt ein anderes Objekt diesen Bereich, muss das System gegebenenfalls feststellen, ob es sich dabei um das zuvor gesehene Objekt handelt und eine erneute Identifizierung vornehmen, um es korrekt zuzuordnen.

Überlegungen zur Applikation

Bei der Überwachung von Menschenmengen oder in Sicherheitsanwendungen werden intelligente Kameras oft an ungünstigen Orten platziert: etwa in der Eingangshalle einer Bank, wo Kunden außerhalb der Öffnungszeiten auf automatisierte Einrichtungen zugreifen. Die Kamera wird dabei eventuell so angebracht, dass sie den betreffenden Bereich in einem sehr spitzen Winkel sieht. Das verstärkt die Auswirkung optischer Verzerrungen im Objektiv. Auch das am frühen Morgen oder am Abend durch Glastüren einfallende Licht kann das Video beeinträchtigen. Unter derartigen Bedingungen ist es sinnvoll, die Quellbilder umfangreich zu bearbeiten, bevor man sie zur Inferenzierung an das neuronale Netz weitergibt.

Diese zusätzliche Verarbeitung, die auch vor oder nach der Inferenzphase nötig sein kann, erfordert eine Ausführungsplattform, die einen ausgewogenen Kompromiss aus Leistungsfähigkeit, Energiebedarf und Kosten darstellt. Eine solche Plattform muss dem Entwickler die Möglichkeit geben, die Leistung von Universal-, Grafikverarbeitungs- und neuronalen Netzen individuell so einzustellen, wie es die Bildverarbeitungs-Pipeline in der Summe erfordert. Um ein solches ausgewogenes System zu erreichen, ist ein flexibles Software-Framework für die Inferenz-Pipeline wichtig. So unterstützt die Software-Infrastruktur für Ara-1-Beschleuniger zusammen mit den i.MX-Verarbeitungsplattformen von NXP in vollem Umfang die komplexe, dynamische Struktur realer KI-Anwendungen.

Das Kinara-SDK (Software Development Kit) ist eine Umgebung zum Optimieren der Inferenzierungs-Performance, die mithilfe eines integrierten Profilers potenzielle Engpässe und Leistungsstatistiken für jede einzelne Schicht aufzeigt. Das SDK bietet direkte Unterstützung für häufig verwendete Modelle wie ResNet und MobileNet sowie für neuere komplexe Modelle wie DenseNet, EfficientNet und Transformers. Nach der Kompilierung mit Kinaras SDK lassen sich die Modelle auf jedem NXP-i.MX-Anwendungsprozessor zur Laufzeit über C++- oder Python-Programmierschnittstellen oder die GStreamer-Umgebung bereitstellen und verwalten.

GStreamer ist eine Bibliothek, die für den Aufbau von Berechnungsgrafen von Medienverarbeitungskomponenten, wie der Inferenz-Pipeline, entwickelt wurde. Bild 1 zeigt links ein High-Level-Blockdiagramm und eine Bildverarbeitungs- und Inferenz-Pipeline für das Beispiel einer intelligenten Kamera. Daten und Ergebnisse fließen zwischen mehreren Verarbeitungselementen – etwa den CPUs oder GPUs der NXP i.MX 8M Plus – und Beschleunigern wie Ara-1, Bild 2, in einem Compute Graph. Damit bietet GStreamer gewissermaßen einen Plug-and-Play-Ansatz, da sich die zugrundeliegenden Hardwaredetails verbergen lassen. Dies erleichtert den Wechsel zwischen Prozessoren und den dazugehörigen Verarbeitungselementen. So kann ein Entwickler beispielsweise von der Nutzung der CPUs für die Skalierung zum Einsatz der GPU wechseln.

Hostplattformen wie die NXP-i.MX-Anwendungsprozessoren bilden, ergänzt um den Ara-1-Beschleuniger, eine solide Grundlage für die Embedded-KI-Anwendungsentwicklung
Hostplattformen wie die NXP-i.MX-Anwendungsprozessoren bilden, ergänzt um den Ara-1-Beschleuniger, eine solide Grundlage für die Embedded-KI-Anwendungsentwicklung (Bild: Kinara)

Skalierbare Hardware, variable Ausführung

Die Flexibilität lässt sich noch erweitern, wie der vergleich der Designs einer intelligenten Kamera und eines Edge-KI-Appliance zeigt, Bild 3. Als Beispiel soll hier ein intelligentes Einzelhandelsgeschäft dienen, etwa ein Supermarkt. Er würde 200 Kameras benötigen, aber es wäre vielleicht nicht sinnvoll, alle Geräte des Geschäfts zu intelligenten Kameras aufzurüsten. Anstatt sie in der Kamera verarbeiten zu lassen, speist man die Videobilder deshalb in ein Edge-KI-Appliance, das beispielsweise einen i.MX 8M und mehrere Ara-1 Beschleuniger enthalten könnte. Dieses Appliance wäre in der Lage, acht Videoströme aus acht Kameras mit einer Auflösung von 1080p und einer Rate von 30 Bildern pro Sekunde zu verarbeiten. Der wesentliche Punkt ist jedoch, dass die Inferenz-Pipeline derjenigen des Kamerabeispiels ähneln würde. Der Einsatz von GStreamer würde es erlauben, die verschiedenen Vor- und Nachverarbeitungskomponenten, wie ISP-Verarbeitung und Bilddekodierung, einfach einzubinden.

Zusammengenommen erfordert dies sowohl eine Hardwareplattform, die Ausführungsflexibilität bietet, als auch die Unterstützung für Software-Frameworks, welche das Erstellen und Bearbeiten komplexer verteilter Berechnungsgrafen ermöglichen.

Alternative Implementierung in einem Edge-KI-Appliance; die Inferenz-Pipeline ist mit der einer Kameraimplementierung vergleichbar.
Alternative Implementierung in einem Edge-KI-Appliance; die Inferenz-Pipeline ist mit der einer Kameraimplementierung vergleichbar. (Bild: Kinara)

Mit Embedded-KI kundennah entwickeln

Skalierbare Hardwareleistung, Modell-Tuning und ein flexibles Ausführungsmodell ergeben zusammen eine solide Grundlage, um Embedded-KI-Anwendungen zu entwickeln – auf Hostplattformen wie den NXP-i.MX-Anwendungsprozessoren mit dem zusätzlichen Ara-1-Beschleuniger. Embedded-Entwickler müssen also nicht auf unbekannte Prozessorarchitekturen umsteigen, um die Vorteile der KI zu nutzen.

Beschleuniger wie der Ara-1 ermöglichen die einfache Integration anspruchsvoller KI-Modelle in Systeme, aber auch deren Einsatz in komplexen Berechnungsgrafen. So entstehen Systeme, die den realen Anforderungen der Kunden entsprechen.

Die Rechenleistung des Ara-1-Beschleunigers von Kinara beseitigt eines der letzten vermeintlichen Risiken für die Markteinführung: Sie ermöglicht einen raschen und risikoarmen Übergang zu einer neueren, schnelleren und letztlich profitableren Hostplattform mit etablierter, in der Praxis bewährter Technologie.

Markus Levy

Business Development und Marketing bei Kinara

Sie möchten gerne weiterlesen?