Abstract:
In vielen Anwendungsbereichen, wie der Robotik oder im Automobilbereich, in denen eine große Anzahl von Sensoren integriert ist, sind eingebettete Systeme zu finden. Diese erzeugen oft große Datenmengen, die in möglichst kurzer Zeit von den sensornahen Plattformen an die zentrale Steuereinheit übertragen werden müssen. Folglich benötigen solche Plattformen hohe Linkbandbreiten für die Verbindungen zwischen den eingesetzten Komponenten. Der zunehmende Einsatz von Künstlicher Intelligenz (KI) in vielen dieser Anwendungen stellt darüber hinaus weitere Anforderungen an das Gesamtsystem. ... mehrSo erfordern insbesondere sicherheitskritische Anwendungen, wie das autonome Fahren, zur Verarbeitung von rechenintensiven Deep Neural Networks (DNNs) einen hohen Datendurchsatz bei gleichzeitig geringer Latenz. Aus diesem Grund wurden im Laufe des vergangenen Jahrzehnts verschiedenste analoge Processing-In-Memory-Architekturen (PIM) sowie rein digitale Hardwarebeschleuniger entwickelt, welche auf den Datenfluss von DNNs optimiert sind und damit eine bessere Performance und Energieeffizienz bieten als handelsübliche CPUs und GPUs. Modernste DNN-Architekturen bestehen jedoch mitunter aus mehreren Millionen Parametern, die für eine energie- und zeiteffiziente Inferenz möglichst nahe am Prozessor oder dem dedizierten Beschleuniger gespeichert werden müssen. Die verfügbare Fläche, insbesondere von sensornahen Mikroprozessoren, ist allerdings in der Regel stark begrenzt, sodass die internen Speicher dieser Plattformen den Anforderungen ganzer DNNs oft nicht vollständig genügen.
Ein Ansatz zur Lösung dieser Herausforderungen in eingebetteten Systemen mit mehreren zum Teil verteilten Hardwarebeschleunigern ist die Inferenz-Partitionierung von DNNs. Dabei wird die Arbeitslast über verschiedene Beschleuniger im System verteilt, um eine höhere Performance sowie Energieeffizienz zu erzielen und gleichzeitig die benötigte Fläche für die Hardwareressourcen über mehrere Plattformen aufzuteilen. Die Partitionierung von DNNs in eingebetteten Systemen ist allerdings eine komplexe Aufgabe, da hierbei verschiedene Optimierungsziele, wie die benötigte Bandbreite zur Übertragung von Zwischenergebnissen, beachtet werden müssen. Der aktuelle Stand der Technik umfasst unterschiedliche Ansätze, welche allerdings relevante Metriken vernachlässigen oder lediglich auf bestimmte Rechnerarchitekturen zugeschnitten sind.
Die vorliegende Arbeit präsentiert daher mehrere neuartige Methoden zur Optimierung solcher Systeme auf unterschiedlichen Entwurfsebenen. Dazu zählt unter anderem ein generischer Ansatz auf Systemebene für die Inferenz-Partitionierung von DNNs mit dem Fokus auf Convolutional Neural Networks (CNNs), welcher eine Vielzahl an nicht-funktionalen Metriken sowie die Genauigkeit des CNNs als funktionale Metrik für die Optimierung verwendet. Letzteres ist notwendig, da Hardwarebeschleuniger in der Regel keine Fließkommazahlen, sondern meist Festkomma- oder gar Ganzzahlen verarbeiten. Die Quantisierung von Gewichten und Aktivierungen führt dabei üblicherweise zu einer Verschlechterung der Genauigkeit, weshalb auch diese Metrik bei der Suche nach einem optimierten Partitionierungsschema berücksichtigt werden muss. Das Framework CNNParted, das diese Methodik implementiert, exploriert automatisiert den Entwurfsraum der Inferenz-Partitionierung in Systemen mit mehreren Beschleunigern unter Beachtung der verfügbaren Hardwareressourcen. Dabei verwendet es Modellierungen der integrierten analogen PIM- und digitalen Hardwarebeschleuniger sowie der Links zwischen den Plattformen im System, um valide Partitionierungsschemata zu bewerten. Aus den Ergebnissen der Untersuchungen generiert CNNParted schließlich eine Pareto-Front hinsichtlich der Optimierungsziele. Die durchgeführten Experimente belegen, dass eine ressourcenbasierte Inferenz-Partitionierung vorteilhaft gegenüber Methoden des aktuellen Stands der Technik ist. So wurden zum Teil deutliche Verbesserungen verschiedener Metriken für heterogene Systeme, bestehend aus analogen PIM- und digitalen Hardwarebeschleunigern, erzielt. Folglich erreicht die entsprechende Wahl eines Pareto-optimalen Partitionierungsschemas unter anderem eine deutlich höhere Energieeffizienz als für die Ausführung der Inferenz auf einer einzigen Beschleunigerplattform.
Anschließend legt die vorliegende Arbeit aber auch dar, dass eine Inferenz-Partitionierung nicht in jedem Fall ohne zusätzliche Optimierungen sinnvoll ist. So ist die Einhaltung von Systemanforderungen meist nicht gewährleistet, wenn zur Übertragung von Zwischenergebnissen Links mit geringer Bandbreite zum Einsatz kommen. Folglich ist eine Optimierung der Software notwendig, um dennoch eine Inferenz-Partitionierung zu ermöglichen. Gleichzeitig muss aufgrund des begrenzten Energiebudgets in Anwendungsfällen wie dem Internet-of-Things (IoT) jedoch auch die Hardware optimiert werden, um DNNs zu integrieren. Handelsübliche Mikrocontroller verfügen meist nicht über die notwendige Performance und Energieeffizienz für die Ausführung der Inferenz. Da nach aktuellem Stand der Technik nur wenige Methoden existieren, welche ein entsprechendes Hardware/Software Co-Design durchführen, zeigt die vorliegende Arbeit weitere Ansätze zur Lösung dieser Probleme auf. So kann unter anderem durch Implementierung von approximierten Multiplizierern und einer approximierten Aktivierungsfunktion ein sehr kleiner Hardwarebeschleuniger realisiert werden, dessen Architektur bei Anwendung von Quantization-Aware Training (QAT) nur zu einem geringen Verlust der Genauigkeit des DNNs führt. Des Weiteren stellt die vorliegende Arbeit die Beschleunigerarchitektur LOTTA für Temporal Convolutional Networks (TCNs) vor, mit der nachgewiesen wurde, dass auch der Einsatz von Low-Power Field Programmable Gate Arrays (FPGAs) im IoT für die Ausführung von DNNs möglich ist. Dabei ergaben Messungen von LOTTA auf einem Low-Power FPGA mit externen, nicht-flüchtigen Speichern für die Gewichte eines exemplarischen TCNs eine Leistungsaufnahme von lediglich 27.81 mW, womit das System zum Teil deutlich unter dem Energiebedarf handelsüblicher Low-Power Mikrocontroller liegt.
Abstract (englisch):
Embedded systems can be found in many application areas, such as robotics or the automotive industry, in which a large number of sensors are integrated. These systems often generate large amounts of data, which must be transferred from the near-sensor platforms to the central control unit in the shortest possible time. Consequently, such platforms require high link bandwidths for the connections between the components used. The increasing use of artificial intelligence (AI) in many of these applications also places further demands on the overall system. In particular, safety-critical applications such as autonomous driving require high data throughput and low latency to process computationally intensive deep neural networks (DNNs). ... mehrAs a result, various analog processing-in-memory (PIM) architectures and purely digital hardware accelerators have been developed over the past decade, which are optimized for the data flow of DNNs and therefore offer better performance and energy efficiency than standard CPUs and GPUs. However, state-of-the-art DNN architectures might consist of several million parameters, which have to be stored as close as possible to the processing unit or the dedicated accelerator for energy- and time-efficient inference. However, the available area, especially of microprocessors close to the sensor, is usually very limited, which is why the internal memory of these platforms often does not meet the requirements of entire DNNs.
One approach to solving these challenges in embedded systems with several hardware accelerators, some of which are distributed, is the inference partitioning of DNNs. This involves distributing the workload across different accelerators in the system in order to achieve higher performance and energy efficiency while simultaneously distributing the area required for the hardware resources across multiple platforms. However, the partitioning of DNNs in embedded systems is a complex task, as various metrics, such as the bandwidth required to transfer intermediate results, must be taken into account. Different approaches exist in the current state of the art, but these often neglect relevant metrics or are only tailored to specific computer architectures.
This thesis therefore presents several novel methods for optimizing such systems at different design levels. These include a generic system-level approach for the inter-layer inference partitioning of DNNs with a focus on Convolutional Neural Networks (CNNs), which uses a variety of non-functional metrics as well as the accuracy of the CNN as a functional metric for optimization. The latter is necessary because hardware accelerators usually do not process floating point data, but mostly fixed point or even integers. The quantization of weights and activations usually leads to a deterioration in accuracy, which is why this metric must also be considered when searching for an optimized partitioning scheme. The CNNParted framework, which implements this methodology, automatically explores the design space of inference partitioning in systems with multiple accelerators, taking into account the available hardware resources. It uses models of the integrated analog PIM and digital hardware accelerators as well as of the links between the platforms in the system to evaluate valid partitioning schemes. Finally, CNNParted generates a Pareto front regarding the relevant metrics from the results of the explorations. The experiments carried out proved that resource-based inference partitioning is advantageous compared to state-of-the-art methods. In some cases, significant improvements in various metrics were achieved for heterogeneous systems consisting of analog PIM and digital hardware accelerators. Consequently, by choosing a Pareto-optimal partitioning scheme, for example, significantly higher energy efficiency is achieved than for running inference on a single accelerator platform.
However, this work also shows that inference partitioning does not always provide benefits without additional optimizations. For example, fulfilling system requirements is usually not guaranteed if low-bandwidth links are used to transfer intermediate results. Consequently, the software must be optimized to enable inference partitioning. At the same time, however, due to the limited energy budget in applications such as the Internet of Things (IoT), the hardware must also be optimized in order to infer DNNs. Commercially available microcontrollers usually do not have the necessary performance and energy efficiency to perform inference. As there are only a few methods in the current state of the art that carry out a corresponding hardware/software co-design, this thesis shows further approaches to solving these problems. For example, by implementing approximated multipliers and an approximated activation function, a very small hardware accelerator can be realized whose architecture leads to only a small loss in the accuracy of the DNN when using Quantization-Aware Training (QAT). Furthermore, this paper presents the LOTTA accelerator architecture for Temporal Convolutional Networks (TCNs), which proves that the use of low-power FPGAs in the IoT is also possible for the execution of DNNs. Measurements of LOTTA on a low-power FPGA with external non-volatile memories for the weights of an exemplary TCN resulted in a power consumption of only 27.81 mW, which means that the system is significantly below the energy requirements of commercially available low-power microcontrollers.