Schwerpunkte

Workflow hilft Entwicklern

Neuronale Netze auf FPGAs umsetzen

09. August 2021, 15:00 Uhr   |  Von Dimitri Hamidi, Jack Ericson und Wang Chen, The MathWorks

Neuronale Netze auf  FPGAs umsetzen
© Pdusit | shutterstock.com

In Embedded-Systemen spielt Deep Learning auf FPGAs eine immer größere Rolle. Jedoch sind für für die Umsetzung tiefe Kenntnisse der Hardware nötig. Ein Workflow von MathWorks hilft Entwicklern dabei, neuronale Netze auf FPGAs zu implementieren.

Künstliche Intelligenz (KI) treibt einen Technikwandel in nahezu allen Branchen und Anwendungsbereichen voran. In der Welt der KI gilt Deep Learning als Schlüsseltechnologie für verschiedene Bereiche wie autonome Systeme, Industrie 4.0 oder die »intelligente« Produktion. Aufgrund der besonderen Kombination von Eigenschaften wie Parallelität, Rekonfigurierbarkeit, geringer Latenzzeit, flexibler Schnittstellen sowie der Leistung pro Watt eignet sich die Inferenz von Deep Learning auf FPGAs hervorragend für viele eingebettete Anwendungen. Allerdings ist das Implementieren tiefer neuronaler Netze auf FPGAs sehr herausfordernd. So enthält beispielsweise AlexNet 61 Millionen Modellparameter und benötigt 230 MB Speicherplatz auf einem Off-Chip-RAM.

The MathWorks
© Bilder: The MathWorks

Bild 1: Anforderungen an eine FPGA-Implementierung für AlexNet

Ein naives Implementieren würde es zudem nötig machen, 3,1 Millionen Aktivierungen im Block-RAM (BRAM) sowie 720 Millionen DSP-Slices für die Multiplikations- und Additionsoperationen (MAC) zu speichern, wie in Bild 1 dargestellt. Eine derartige Register-Transfer-Level- (RTL)-Beschreibung per Hand zu schreiben ist zeitaufwendig und fehleranfällig. Ohne sorgfältiges Implementieren und Maximieren von Ressourcen-Sharing ist ein Design aufgrund der begrenzten Logikressourcen auf einem FPGA nicht direkt zu implementieren. Unabhängig hiervon muss die Architektur so generisch sein, dass sie mit verschiedenen tiefen neuronalen Netzen wiederzuverwen­-den ist und die Abwägung von Trade-offs im Entwurfsraum erlaubt. Ingenieure aus dem Bereich Deep Learning verfügen in der Regel nicht über die erforderlichen Kenntnisse im Hardware-Design und sind daher auf eine enge Zusammenarbeit sowohl mit Hardware- als auch mit Systemingenieuren angewiesen, um das angestrebte Systemdesign zu erzielen. Darüber hinaus erfordert der Entwicklungsprozess üblicherweise eine Vielzahl von Design-Iterationen sowohl für die Netzwerkarchitektur als auch für die FPGA-Implementierung.

Der Artikel stellt einen integrierten Workflow für das Design, Prototyping und Bereitstellen tiefer neuronaler Netze zur Inferenz auf FPGA- und SoC-basierten Edge-Geräten vor. Der inte­grierte Workflow bindet Algorithmen-, System- und Hardware-Teams gemeinsam ein. So ermöglicht er eine frühzeitige Zusammenarbeit und ein Beschleunigen des Entwicklungsprozesses – sowohl in der Konzept- als auch in der Implementierungsphase.

The MathWorks
© The MathWorks

Bild 2: KI-gestütztes Framework zum Entwickeln eines Systems

KI-gestützte Systementwicklung

Die vorgeschlagene Möglichkeit für das Deep Learning auf FPGAs ist Teil eines kompletten Frameworks für die KI-gestützte Systementwicklung mit Deep Learning als einer der tragenden Säulen. Mit Matlab und Simulink arbeitenden Ingenieuren und Wissenschaftlern bietet das Framework die nötigen Funktionen und Tools. So ist es ihnen möglich, KI-gestützte Systeme für ihre jeweiligen Spezialgebiete zu entwickeln. Bild 2 veranschaulicht den KI-gestützten Workflow für das Systemdesign. Im Folgenden sind die Phasen beschrieben.

1. Aufbereiten der Daten

Mit Matlab lässt sich der Zeitaufwand für ein Vorverarbeiten von Daten auf ein Minimum reduzieren. High-Level-Funktionen bieten auf spezifische Disziplinen zugeschnittene Transformationen sowie Funktionen zur Merkmalsextraktion. Weiterhin enthält die Software Tools zum Synchronisieren heterogener Zeitreihen, zum Filtern von Rauschen und Ausreißern sowie zum Visualisieren von Daten. So lassen sich etwa Trends erkennen und die Datenqualität beurteilen. Matlab-Apps erleichtern das automatische Ground Truth Labeling von Bild-, Video-, Lidar- und Signaldaten. Zum Vortraining und Testen von Algorithmen, noch bevor Daten von Sensoren oder anderen Geräten verfügbar sind, lassen sich mit Matlab und Simulink zudem synthetische Daten erzeugen.

2. Modellieren des KI-Modells

Matlab gestattet es, tiefe neuronale Netze grafisch zu erzeugen, zu trainieren und auszu­werten sowie eine große Anzahl an Deep-Learning-Experimenten effizient und systematisch zu verwalten. Anwender können ferner mit »TensorFlow« und »PyTorch« Modelle im Open-Neural-Network-Exchange- (ONNX)-Format austauschen sowie Modelle aus TensorFlow-Keras und Caffe direkt importieren.

3. Systemdesign

Komplexe KI-gestützte Systeme erfordern die Integration weiterer Algorithmen. Ein Modellieren und Simulieren des Modells ist hierzu unerlässlich, da die Effektivität der KI-Modelle vom Gesamtsystem abhängt.

Zum Erzeugen und Analysieren von System­architekturen eignet sich »System Composer« von MathWorks. Für schnelle Design-Iterationen und Closed-Loop-Tests können Ingeni­eure auf Simulink zurückgreifen. So wird Simulink beispielsweise in Systemen für das autonome Fahren zum Modellieren der Fahrzeugdynamik, zum Entwickeln der Fahrzeugsteuerung sowie zur Fusion verschiedener Sensorsignale ein­gesetzt. Außerdem lässt sich das KI-Modell zur System-Level-Simulation in Simulink einbinden.

4. Bereitstellung

Entwickler können KI-Modelle zusammen mit anderen in Matlab und Simulink entworfenen Algorithmen über automatische Codegenerierung auf CPUs, GPUs oder FPGAs im späteren System bereitstellen und integrieren.

Seite 1 von 2

1. Neuronale Netze auf FPGAs umsetzen
2. Workflow für das Deep Learning auf FPGAs

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Das könnte Sie auch interessieren

Verwandte Artikel

MathWorks GmbH