Alles über AIScale, den universellen CNN-Hardwarebeschleuniger

| Autor / Redakteur: Rastislav Struharik, Michaël Uyttersprot * / Margit Kuther

Erkennen, was man sieht: Hardware-Beschleuniger AIScale für faltende neuronale Netzwerke.
Erkennen, was man sieht: Hardware-Beschleuniger AIScale für faltende neuronale Netzwerke. (Bild: Kortiq)

Deep Learning und insbesondere Deep Neural Networks (DNN) zählen zu den meist verbreiteten Vorhersagemodellen beim Maschinenlernen. Details zu diesen aktuellen Technologien lesen Sie in diesem Beitrag.

Das Konzept der Deep Neural Network (DNN) ist nicht neu, doch nach den jüngsten Durchbrüchen bei Anwendungen zur Sprach- und Bilderkennung sind sie wieder in den Fokus sowohl der Forschung als auch der Industrie gerückt.

Mittlerweile kommen unterschiedliche Arten von DNN in einem breiten Anwendungsspektrum zum Einsatz – vom autonomen Fahren über medizinische und industrielle Anwendungen bis hin zu komplexen Spielen. In vielen dieser Anwendungsbereiche übertreffen DNN mittlerweile die menschliche Leistung. Die außergewöhnliche Leistungsfähigkeit von DNN und insbesondere von faltenden neuronalen Netzwerken (Convolutional Neural Networks, CNN) resultiert in erster Linie aus deren Fähigkeit, bereits während der Trainingsphase automatisch High-Level-Funktionen aus den Sensor-Rohdaten abzuleiten. Dabei werden große Datenmengen ausgewertet, um den Datenraum repräsentativ abzubilden.

Faltende neuronale Netzwerke sind sehr leistungsstark

Dieser Ansatz unterscheidet sich von früheren Ansätzen des Maschinenlernens. Damals verwendete man von Experten erstellte Funktionen und Regeln. Aus diesem Grunde liefern CNN im Vergleich zu anderen Objekterkennungs- oder Bildauswertungsalgorithmen derzeit die besten Ergebnisse.

“Wir sehen eine starke und weiter zunehmende Nachfrage nach Objekterkennungs- und Bildauswertungs-Anwendungen“, sagt Michaël Uyttersprot, Technical Marketing Manager bei Avnet Silica. „In zahlreichen Embedded-Vision-Anwendungen unterschiedlichster Branchen sind CNN mittlerweile integriert – unter anderem Anwendungen für die Industrie, die Medizin, IoT und die Automobilbranche.“

Faltende neuronale Netzwerke sind eine Art künstlicher Feed-forward-Netzwerke, deren Verbindungsmuster zwischen den einzelnen Neuronen sich an die neuralen Verbindungen im visuellen Kortex von Tieren anlehnt. Einzelne Neuronen innerhalb des visuellen Kortex reagieren nur auf Reize ihrer begrenzten Umgebung – dem rezeptiven Feld. Die rezeptiven Felder benachbarter Neuronen überschneiden sich und decken damit das gesamte Sichtfeld ab.

Es ließ sich zeigen, dass sich die Reaktion eines einzelnen Neurons auf die Reize innerhalb seines rezeptiven Feldes mathematisch näherungsweise durch eine dreidimensionale Faltung ausdrücken lässt, wie sie auch in CNN häufig verwendet wird. Die Architektur der CNN wird durch das Stapeln vieler Schichten differenzierbarer Funktionen gebildet, die den Eingangszustand in eine entsprechende Antwort am Ausgang (beispielsweise Speichern der Klassenwerte) transformiert. Beim Aufbau eines CNN werden üblicherweise eine Reihe unterschiedlicher Schichten verwendet: Filter (Convolutional Layer), Aggregations-Schichten (Pooling Layer), nichtlineare Schichten, Adding-Schichten, Verkettungsschichten und vollständig verbundene Ebenen (Fully Connected Layer).

Der überlegenen Präzision der CNN steht jedoch die hohe Rechenkomplexität entgegen. CNN-Netzwerke erfordern generell einen hohen Rechenaufwand, wobei Milliarden von Berechnungen nötig sind, um ein einziges Eingangsmuster zu verarbeiten. Die größten CNN (der VGG-Netzwerk-Modelle) benötigen mehr als 30 Milliarden Berechnungen, um ein Bild zu verarbeiten. Dies schränkt die möglichen Anwendungen der CNN in Embedded- oder Edge-Hardware deutlich ein. Kommt beispielsweise ein VGG-16-CNN zum Einsatz, um einen Video-Stream mit 25 Bildern pro Sekunde zu verarbeiten, muss das System in der Lage sein, 750 GOP/s zu verarbeiten, um diese Bildrate zu bewältigen.

Zudem sind die CNN sehr speicherhungrig, da sie viele Megabyte an Speicherplatz benötigen, um die Netzwerkparameter zu speichern. Ein VGG-16-CNN verfügt beispielsweise über mehr als 138 Millionen Netzwerkparameter. Bei einer 16-Bit-Festkommadarstellung müssen bereits mehr als 276 MB Speicher reserviert werden, nur um alle Netzwerkparameter zu speichern. Weiterhin kann der für Zwischenergebnisse, die bei der Bearbeitung eines Bildes vom CNN generiert werden, benötigte Speicherplatz sehr groß sein. Auch dies erfordert entsprechende Hardware-Ressourcen.

Die größte Eingangs-Feature-Map des VGG-16-CNN ist beispielsweise 6 MB groß. Obwohl sie damit deutlich kleiner ist als der Speicher für die Netzwerkparameter, kann selbst dieser Speicherbedarf für Embedded-Anwendungen zu hoch sein. Und was noch wichtiger ist, da die VGG-16-CNN aus 21 Schichten besteht, müssen für die Verarbeitung eines Eingangsbildes über 60 MB Daten bewegt werden. Das Bewegen solcher Datenmengen zwischen dem Speicher und der Rechnereinheit kann einen sehr hohen Stromverbrauch mit sich bringen.

Voraussichtlich werden CNN in Zukunft größer und tiefer sein und noch umfangreichere Eingangsdaten verarbeiten. Sie werden noch komplexere Klassifizierungsaufgaben bei noch höheren Geschwindigkeiten in Echtzeit ausführen und dabei einen geringeren Energieverbrauch haben müssen. Während allgemeine Rechensysteme wie beispielsweise GPUs bisher die Eckpfeiler der CNN-Hardware sind, sucht man zur Beschleunigung der Netzwerke zunehmend nach geeigneterer Rechenhardware. Aus den obigen Ausführungen ergibt sich, dass für den Einsatz von CNN in Embedded- und Edge-Systemen eine spezielle Hardware-Architektur entworfen werden muss, die ausreichende Rechenleistung unter strengen Beschränkungen der Leistungsaufnahme bietet.

Hardware-Beschleuniger AIScale für CNN

Die Münchner Kortiq GmbH hat einen neuen Hardware-Beschleuniger für CNN entwickelt, den AIScale. Dieser mit FPGA-Technologie implementierte IP-Core bietet modernste Performance im Hinblick auf Geschwindigkeit und Leistungsaufnahme im Vergleich zu existierenden CNN-Beschleunigern.

Beim Entwurf eines CNN-Hardwarebeschleunigers muss die zugrunde liegende Architektur, insbesondere wenn sie für den Einsatz in Embedded- und Edge-Systmen ausgelegt ist, Optimierungen in den folgenden Punkten leisten:

1.Verarbeitungsgeschwindigkeit: möglichst hohe Rechenleistung bei möglichst geringer Auslastung der Hardware-Ressourcen. Auf diese Weise lässt sich die angestrebte performance (die gewünschte Anzahl Bilder pro Sekunde) und Leistungsreduzierung erreichen. Dadurch reduziert sich die Prozessorfläche und damit die Kosten.

2. Reduktion der benötigten Speicherkapazität: Dies ermöglicht die Integration von CNN-Systemen selbst in räumlich sehr beengten Embedded-Systemen und reduziert ebenfalls die Gesamtkosten. Zudem senkt geringerer Speicherbedarf wiederum die Leistungsaufnahme, da weniger Daten zwischen dem Speicher und dem CNN-Beschleuniger zu verschieben sind.

3. Universalität: Das System sollte von vornherein unterschiedliche CNN-Architekturen unterstützen. Dies sichert die leichte Handhabung für Software-Entwickler

4. Skalierbarkeit: Die Architektur muss die einfache und reibungslose Skalierung der Rechenleistung erlauben, um die Entwicklung in Anwendungen zu ermöglichen, die unterschiedliche Rechenleistung erfordern.

Der AIScale-Beschleuniger von Kortiq erfüllt all die genannten Anforderungen: So sieht der Entwurf bereits vor, reduzierte und komprimierte CNN sowie komprimierte Feature Maps zu verarbeiten. Dadurch erhöht sich die Verarbeitungsgeschwindigkeit, indem überflüssige Berechnungen umgangen werden, der für die CNN-Parameter benötigte Speicherplatz reduziert sich ebenso wie die Feature Maps. All diese Eigenschaften tragen gleichzeitig dazu bei, die Leistungsaufnahme zu reduzieren.

Der Beschleuniger unterstützt alle Typen von Schichten, die in aktuellen CNN-Architekturen verwendet werden (Filter, Aggregations-Schichten, Adding-Schichten, Verkettungsschichten, vollständig verbundene Ebenen). Das garantiert ein hoch flexibles und universelles System, das verschiedene CNN-Architekturen unterstützt, ohne dass die Hardware-Architektur geändert werden muss. Zudem ist die Hardware hoch skalierbar, indem einfach Rechenkerne – die zentralen Verarbeitungsblöcke der AIScale-Architektur - hinzugefügt oder weggelassen werden. Durch Verwendung der jeweils erforderlichen Anzahl an Prozessorkernen lässt sich die benötigte Rechenleistung leicht anpassen.

AIScale ist als soft-IP-Core konzipiert, implementierbar mit jedem Xilinx Zynq SoC und MPSoC (Multi-Processing System on Chip) und bietet alle Funktionen, die zur Beschleunigung einer modernen CNN-Architektur benötigt werden. Soll nun die Architektur des CNN geändert werden, sind keine Veränderungen an der darunter liegenden Hardware-Struktur nötig. AIScale nutzt ein eigenes binäres Beschreibungsformat, in dem die Topologie des zu beschleunigende CNN charakterisiert wird. Die Beschreibung erfolgt in Form einer verknüpften Liste, wobei jeder Knoten der Liste die Eigenschaften einer Schicht des CNN beschreibt. AIScale verarbeitet diese verknüpfte Liste seriell und rekonfiguriert sich dementsprechend automatisch, um die jeweilige CNN-Schicht optimal zu verarbeiten. Anschließend verarbeitet er alle in der Schicht definierten Operationen und springt dann zur nächsten Schicht. Dieser Vorgang wird solange wiederholt, bis alle CNN-Schichten verarbeitet sind, was der kompletten Verarbeitung eines Bildes entspricht.

Mit diesem Ansatz lassen sich zu beschleunigende CNN besonders einfach modifizieren. Der Nutzer muss nur einen Verweis auf die entsprechende CNN-Bescheibungsdatei setzen. Dabei können gleichzeitig Beschreibungsdateien für andere CNN im Speicher verbleiben, um bei Bedarf aufgerufen zu werden. Das Umschalten zwischen verschiedenen CNN erfolgt extrem schnell -fast verzögerungsfrei. Das ermöglicht ein dynamisches Umschalten zwischen unterschiedlichen CNN während des Betriebes. Die meisten anderen Lösungen unterstützen dies nicht.

Die Architektur von AIScale sieht vier AIX-Schnittstellen vor, um mit den On-Chip-Modulen zu kommunizieren. Dies vereinfacht die Integration in ARM-basierte SoCs deutlich. Der Einsatz eines AIScale IP innerhalb des Vivado-IP-Integrators ist ebenso unkompliziert wie mit jedem beliebigen Standard-Xilinx-IP-Core. Der Anwender muss nur den AIScale-IP-Core in ein IP-Integrator-Blockdiagramm eines vollständigen Systems einfügen und den Connection Automation Wizard starten, um ihn in das Gesamtsystem einzufügen. Danach ist das System bereit für die Integration in das entsprechende FPGA.

“Kortiq hat einen sehr kompakten und effizienten Beschleuniger für das Maschinenlernen entwickelt, der für Xilinx Zynq SoCs und MPSoCs optimiert ist“, fasst Uyttersprot zusammen. „Die Systeme von Xilinx Zynq sind extrem flexibel und frei konfigurierbar. Die AIScale IP Cores lassen sich dynamisch konfigurieren, um den Beschleuniger während des Betriebs an die jeweilige Aufgabe oder Deep-Learning-Topologie anzupassen. Diese einzigartige Funktionalität eignet sich für viele Anwendungen im Bereich des Maschinenlernens.“

* Dr. Rastislav Struharik ist Associate Professor bei UNS, CTO von Kortiq in Forstern

* Michaël Uyttersprot ist Mitarbeiter von Avnet Silica in Poing

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45400681 / Embedded Boards & PCs)