Directly to content
  1. Publishing |
  2. Search |
  3. Browse |
  4. Recent items rss |
  5. Open Access |
  6. Jur. Issues |
  7. DeutschClear Cookie - decide language by browser settings

Deployment of Deep Neural Networks on Dedicated Hardware Accelerators

Rieber, Dennis Sebastian

[thumbnail of dissertationPDFA.pdf]
Preview
PDF, English
Download (3MB) | Terms of use

Citation of documents: Please do not cite the URL that is displayed in your browser location input, instead use the DOI, URN or the persistent URL below, as we can guarantee their long-time accessibility.

Abstract

Deep Neural Networks (DNNs) have established themselves as powerful tools for a wide range of complex tasks, for example computer vision or natural language processing. DNNs are notoriously demanding on compute resources and as a result, dedicated hardware accelerators for all use cases are developed. Different accelerators provide solutions from hyper scaling cloud environments for the training of DNNs to inference devices in embedded systems. They implement intrinsics for complex operations directly in hardware. A common example are intrinsics for matrix multiplication. However, there exists a gap between the ecosystems of applications for deep learning practitioners and hardware accelerators. HowDNNs can efficiently utilize the specialized hardware intrinsics is still mainly defined by human hardware and software experts. Methods to automatically utilize hardware intrinsics in DNN operators are a subject of active research. Existing literature often works with transformationdriven approaches, which aim to establish a sequence of program rewrites and data-layout transformations such that the hardware intrinsic can be used to compute the operator. However, the complexity this of task has not yet been explored, especially for less frequently used operators like Capsule Routing. And not only the implementation of DNN operators with intrinsics is challenging, also their optimization on the target device is difficult. Hardware-in-the-loop tools are often used for this problem. They use latency measurements of implementations candidates to find the fastest one. However, specialized accelerators can have memory and programming limitations, so that not every arithmetically correct implementation is a valid program for the accelerator. These invalid implementations can lead to unnecessary long the optimization time. This work investigates the complexity of transformation-driven processes to automatically embed hardware intrinsics into DNN operators. It is explored with a custom, graph-based intermediate representation (IR). While operators like Fully Connected Layers can be handled with reasonable effort, increasing operator complexity or advanced data-layout transformation can lead to scaling issues. Building on these insights, this work proposes a novel method to embed hardware intrinsics into DNN operators. It is based on a dataflow analysis. The dataflow embedding method allows the exploration of how intrinsics and operators match without explicit transformations. From the results it can derive the data layout and program structure necessary to compute the operator with the intrinsic. A prototype implementation for a dedicated hardware accelerator demonstrates state-of-the art performance for a wide range of convolutions, while being agnostic to the data layout. For some operators in the benchmark, the presented method can also generate alternative implementation strategies to improve hardware utilization, resulting in a geo-mean speed-up of ×2.813 while reducing the memory footprint. Lastly, by curating the initial set of possible implementations for the hardware-in-the-loop optimization, the median timeto- solution is reduced by a factor of ×2.40. At the same time, the possibility to have prolonged searches due a bad initial set of implementations is reduced, improving the optimization’s robustness by ×2.35.

Translation of abstract (German)

Tiefe Neuronale Netzwerke (Deep Neural Networks, DNNs) haben sich als mächtigesWerkzeug für eine Vielzahl an komplexen Aufgaben, wie Objekterkennung oder Sprachverarbeitung etabliert. Ihr Bedarf an Rechenressourcen ist enorm, weshalb dedizierte Beschleuniger für alle Einsatzzwecke entwickelt werden, von ultrahoch skalierenden Rechenzentren bis zu eingebetteten Systemen. Die Beschleuniger implementieren Instruktionen für komplexe Operationen direkt in der Hardware. Ein verbreitetes Beispiel sind Instruktionen für Matrixmultiplikationen. Aber es gibt eine Lücke zwischen dem Ökosystemen für die Anwender von Deep Learning und Hardwarebeschleunigern. Die effektive Nutzung von spezialisierter Hardware wird immer noch von Hardware- und Softwareexperten definiert. Methoden, um solche Instruktionen in die Berechnung von DNNs einzubetten werden aktiv erforscht. Bisherige Veröffentlichungen setzen oft auf Transformationsgetriebene Ansätze, mit dem Ziel eine Transformationssequenz zu finden, die es ermöglicht einen Teil der DNN Berechnung mit der spezialisierten Instruktion zu ersetzen. Allerdings wurde die Komplexität dieser Aufgabe noch nicht erforscht, insbesondere für weniger übliche DNN Operatoren, wie zum Beispiel Capsule Routing. Nicht nur das Implementieren von DNN Operatoren mit spezialisierten Instruktionen ist eine Herausforderung, auch deren Optimierung auf der Zielhardware ist schwierig. Systeme, die mit Hardwarefeedback arbeiten werden hier oft genutzt. Die Latenz von verschiedenen Implementierungskandidaten wird gemessen, um den schnellsten Kandidaten zu finden. Aber da Hardwarebeschleuniger oft Programmierungs- und Speicherlimitierungen haben kann nicht jede arithmetisch korrekte Implementierung auch auf dem Beschleuniger genutzt werden. Diese ungültigen Implementierungen können den Optimierungsprozess unnötig Verlängern. Diese Arbeit untersucht die Komplexität von Transformationsgetriebenen Prozessen, um spezialisierte Instruktionen in DNN Operationen einzubetten. Dabei wird eine eigens Implementierte Zwischendarstellung (Intermediate Representation, IR) verwendet, welche auf Graphen basiert. Während sich Operationen wie Fully Connected Layer mit annehmabarem Aufwand verarbeiten lassen, führen komplexere Operatoren und Transformationen zu Skalierungsproblemen. Basierend auf diesen Erkenntnissen wird eine neue Methode zum Einbetten von spezialisierten Instruktionen vorstellt. Diese basiert auf Dataflussgraphen. Die Dataflow Embedding Methode erlaubt das Erforschen von Abbildungen zwischen DNN Operatoren und Hardware ohne explizite Transformationen. Aus den Ergebnissen können die Transformationen für die Datenanordnung und die Programmstruktur abgleitet werden. Eine Prototypenimplementierung für einen dedizierten Hardwarebeschleuniger kann alternative Implementierungsstrategien erzeugen, welche die Auslastung der Hardware verbessern. Diese sind um einen Faktor 2.813 schneller, während sie weniger Speicher belegen. Zu guter Letzt wird durch das sorgfältige Auswählen von Implementierungen für den Ausgangspunkt der Optimierung mit Hardwarefeedback die mittlere Zeit zur Lösungsfindung um den Faktor 2.40 reduziert. Zur selben Zeit wird die Wahrscheinlichkeit eines langen Optimierungsprozesses wegen eines schlechten Ausganspunkts reduziert, was die Robustheit der Optimierung um den Faktor 2.35 erhöht.

Document type: Dissertation
Supervisor: Fröning, Prof. Dr. Holger
Place of Publication: Heidelberg
Date of thesis defense: 3 March 2023
Date Deposited: 14 Mar 2023 08:01
Date: 2023
Faculties / Institutes: The Faculty of Mathematics and Computer Science > Department of Computer Science
DDC-classification: 004 Data processing Computer science
About | FAQ | Contact | Imprint |
OA-LogoDINI certificate 2013Logo der Open-Archives-Initiative