Allein im Bereich der KI prognostiziert das Marktforschungsunternehmen Statista, dass bis 2025 der globale Markt 126 Milliarden US-Dollar erreichen wird [1]. Aufgrund des gestiegenen Interesses an Deep Learning und der Anforderung, immer mehr Daten verarbeiten zu können, verlagert sich die Rechenleistung an den Rand des Netzes, den sogenannten Edge [2]. Klar können Unternehmen ihre Anwendungen und die Verarbeitung der enormen Datenmengen in einer Cloud ausführen lassen, jedoch ist die Umsetzung der Anforderungen wie z. B. das Training und die Echtzeitfähigkeit mit hohen Kosten verbunden.
Eingebettete Systeme, die vor einer Dekade entwickelt wurden, müssen nun an die neue Landschaft angepasst werden. Diese neue Landschaft erfordert die Verarbeitung riesiger Datenmengen in Echtzeit. Dabei variieren je nach Anwendungsfall die Hardwarelösungen. Eine wichtige Kerntechnologie auf dem Gebiet des Deep Learning stellt hierbei die Graphics Processing Unit (GPU) dar.
GPUs können aufgrund ihrer Bandbreitenoptimierung Matrixmultiplikationen und Faltungsaufgaben effizient ausführen. Das bedeutet, dass sie im Gegensatz zu beispielsweise CPUs große Mengen an Speicher aufrufen können. Zudem ist die mathematische Grundlage zur Berechnung von neuronalen Netzen ähnlich wie die Berechnung von Grafikpipelines. Die Berechnung der Netze erfolgt schichtweise anhand von Matrixmultiplikationen, die auf dem GPU parallel ausgeführt werden können. Aufgrund der parallelen Berechnung kann die Geschwindigkeit der Abläufe beschleunigt werden. Jedoch verbrauchen GPUs besonders viel Strom und erzeugen dementsprechend auch viel Wärme, wodurch eine Kühleinheit benötigt wird. Der hohe Stromverbrauch ist beispielsweise in Smart-City-Umgebungen eher von Nachteil.
An dieser Stelle kann der Einsatz von Field Programmable Gate Arrays (FPGAs) vorteilhaft sein. FPGAs bestehen aus vielen Logikgattern, die rekonfigurierbar sind und ähnlich wie GPUs Berechnungen parallel ausführen können. Mit FPGAs können maßgeschneiderte digitale Schaltungen entwickelt werden, die einen geringeren Stromverbrauch haben. Ein zusätzlicher Vorteil besteht darin, dass benutzerdefinierte Datentypen genutzt werden können. Somit sind Entwickler nicht an bestimmte Datentypen gebunden. Stattdessen kann das gesamte Spektrum an Datentypen und Arithmetiken von Fixed Point bis hin zu Floating Point 32 und binär genutzt werden. Im Vergleich dazu müssten GPU-Benutzer die Entwicklung anhalten und warten, bis eine neue Architektur verfügbar ist. Dagegen kann die Flexibilität von FPGAs ausgenutzt und die Architektur an die Anforderungen angepasst werden.
Was in diesem Fall einen Vorteil darstellt, ist jedoch auch gleichzeitig ein Nachteil. Das Problem bei FPGAs liegt darin, dass sie schwer zu konfigurieren sind. Die Konfiguration erfordert Expertise in Hardwarebeschreibungssprachen. Zudem sind aktuell die Programme für Deep Learning in Hochsprachen geschrieben, deren Umsetzung in Hardwarebeschreibungssprachen einen hohen Aufwand zur Folge hat.
Zusammenfassend lässt sich sagen, dass der Einsatz von FPGAs hinsichtlich des Stromverbrauches und der Flexibilität durchaus vorteilhaft ist. Jedoch können die Kosten wegen der zeitintensiveren und arbeitsaufwendigen Konfiguration und Implementierung schnell ansteigen.
Quellen
- [1] Statista, Artificial intelligence software market revenue worldwide 2018-2025, 10.09.2021
- [2] Gartner, What Edge Computing Means for Infrastructure and Operations Leaders, 03.10.2018