Edge-KI-Prozessoren

KI-Leistung in Embedded-Plattformen steigern

21. November 2022, 14:56 Uhr | Von Markus Levy, Vice President Marketing and Business Development bei Kinara
Kinara
Ablauf einer Smart-Kamera-Anwendung
© Kinara

KI hat in Embedded-Computing-Anwendungen längst Einzug gehalten. Auf welcher Hardware die KI ausgeführt wird, sollte wohl überlegt sein, denn Skalierbarkeit und die Möglichkeit zum Upgrade sind keine Selbstverständlichkeit.

Mit der Einführung von KI in Embedded-Computing-Anwendungen wurden zahlreiche Hardware-Plattformen entwickelt, die die hohe Leistung erbringen können, die für das Inferenzieren von Video-Streams mit hohen Datenraten unter Verwendung von neuronalen Netzen notwendig ist. Auch wenn viele Benchmarks wie z. B. ImageNet mit vergleichsweise niedrigen Auflösungen arbeiten und somit für viele Embedded-KI-Anwendungen unproblematisch sind, erfordern reale Anwendungen im Einzelhandel, in der Medizin, im Bereich Security und in industriellen Steuerungen die Fähigkeit, Videoframes und Bilder mit Auflösungen von bis zu 4kp60 und mehr zu verarbeiten.

Skalierbarkeit ist unerlässlich und bei SoC-Plattformen, die aus einer festen Kombination von Host-Prozessor und neuronalem Beschleuniger bestehen, nicht immer eine Option. Sie bieten zwar häufig die Möglichkeit, die Leistung verschiedener neuronaler Netze während des Prototypings zu bewerten, doch fehlt solchen All-in-One-Implementierungen die Granularität und Skalierbarkeit, die reale Systeme meistens benötigen. Hier profitieren industrielle KI-Anwendungen von einer ausgewogeneren Architektur, bei der eine Kombination aus heterogenen Prozessoren (z. B. CPUs, GPUs) und Beschleunigern in einer integrierten Pipeline zusammenarbeiten; so können sie nicht nur ein Inferenzieren auf Basis von Videorohdaten durchführen, sondern auch eine Vor- und Nachbearbeitung nutzen, um die Gesamtergebnisse zu verbessern oder um Formatkonvertierungen durchzuführen, um mit mehreren Kameras und Sensortypen arbeiten zu können.

Typische Einsatzbereiche sind intelligente Kameras und Edge-KI-Geräte. Geht es um intelligente Kameras, muss die Bildverarbeitung und die Unterstützung für die Inferenzierung in die Hauptkameraplatine integriert werden. Die Kamera könnte z. B. die Aufgabe haben, die Anzahl der Personen in einem Raum zu zählen, und sie muss in der Lage sein, dass Leute nicht doppelt gezählt werden, wenn die Personen in den Raum rein- und wieder rausgehen. Die intelligente Kamera muss Personen nicht nur erkennen können, sondern auch in der Lage sein, sie auf der Grundlage von Daten, die die Kamera bereits verarbeitet hat, erneut zu identifizieren, um Doppelzählungen zu vermeiden. Dafür ist eine flexible Bildverarbeitungs- und Inferenzierungs-Pipeline notwendig, in der die Anwendung sowohl die grundlegende Objekterkennung als auch anspruchsvolle Inferenz-basierte Aufgaben wie die Re-Identifizierung übernehmen kann.

Kinara
Ablauf einer Edge-KI-Geräte-Anwendung
© Kinara

Entwicklung von intelligenten Kameras und Edge-KI-Geräten

In einem Smart-Kamera-Design empfängt ein Host-Prozessor typischerweise Sensordaten, die er dann in eine für das Inferenzieren passende Form umwandelt: Größenänderung, Zuschneiden und Normalisierung der Bilddaten in eine für das Inferenzieren mit hohem Durchsatz geeignete Form. Ein ähnlicher, aber höher integrierter Anwendungsfall ist das Edge-KI-Gerät. Dieses übernimmt Eingangsdaten von mehreren vernetzten Sensoren und Kameras, wofür es mehrere komprimierte (oder kodierte) Videoströme gleichzeitig verarbeiten muss. In einem solchen Szenario mit mehreren Kameras muss man die Verarbeitungsleistung so skalieren, dass sie die Format-, Farbraum- und andere Konvertierungen für das Inferenzieren bewältigen und auch mehrere parallele Inferenzen durchführen kann.

Obwohl SoC-basierte Implementierungen auf spezifische Anwendungsfälle zugeschnitten sind, ist Skalierbarkeit trotzdem erforderlich, und zwar dahingehend, dass die Möglichkeit besteht, die Plattform auf Anforderungen abzustimmen, und dass es eine Unterstützung für eine Erweiterung und Upgrades bei sich ändernden Kundenanforderungen gibt. Deshalb ist es wichtig, sich auf Plattformen zu konzentrieren, bei denen eine einfache Skalierung der Hardware-Funktionen möglich ist, ohne dass größere Code-Änderungen erforderlich sind, weil Geräte mit anderen Architekturen spezifiziert werden müssen. Nur wenige können sich den damit verbundenen Portierungs-Overhead leisten.

Viele Entwickler haben sich für die Embedded-Prozessorplattformen von Anbietern wie NXP Semiconductors und Qualcomm entschieden, weil sie eine breite Palette von Leistungs-, Funktions- und Preisoptionen bieten. Die i.MX-Anwendungsprozessoren von NXP etwa decken eine große Bandbreite an Rechenleistungen ab. Anders als bei fixen SoC-Plattformen profitieren die NXP-Prozessorfamilien von der langfristigen Unterstützung und den Liefergarantien des Herstellers - zwei Punkte, die bei vielen Embedded-Computing-Märkten notwendig sind. Bausteine wie der i.MX 8M sind eine hervorragende Basis für die Anforderungen von Edge-KI-Geräten.

Dank ihres integrierten Beschleunigers für die Video-Dekodierung können sie vier komprimierte 1080p-Streams auf einem Prozessor unterstützen. Durch die Kopplung dieses i.MX-Anwendungsprozessors mit den Ara-1-Beschleunigern von Kinara ist es möglich, Inferenzierungen auf mehreren Streams durchzuführen oder anspruchsvolle Modelle zu verarbeiten.


  1. KI-Leistung in Embedded-Plattformen steigern
  2. Voraussetzung für die Ausführung mehrerer Modelle

Das könnte Sie auch interessieren

Verwandte Artikel

elektroniknet