Convolutional Neural Networks, kurz CNNs, sind eine Art Deep-Learning-Algorithmen, welche
heutzutage häufig für die Bewältigung von Aufgaben wie beispielsweise der Bildklassifizierung,
Objekterkennung oder der Sprachverarbeitung verwendet werden. Da CNNs rechenintensiv sind,
werden häufig FPGA-SoCs eingesetzt, um diese mittels paralleler Verarbeitung zu beschleunigen.
Das Hauptziel dieser Arbeit ist demnach die Entwicklung und Implementierung eines flexiblen CNNBeschleunigungsframeworks BinAccel für die effiziente, proprietäre BinArray-Methode, welche in
vorangehender Forschungsarbeit entwickelt wurde.
Das vorgestellte Beschleunigungsframework umfasst Anwendungen zur Optimierung, Konvertierung,
Quantisierung und Kompilierung eines CNN in ein ausführbares Modellformat sowie die Schritte zum
Aufbau einer FPGA-SoC-Plattform mit einem integrierten Beschleuniger.
Die Hauptbestandteile des Frameworks werden implementiert und in einer Beispielanwendung
eingesetzt: Eine Deep-Learning-Anwendung, welche Verkehrszeichen in einem live Videostream
identifizieren kann. Die Konfigurierbarkeit des Beschleunigungsframeworks wird demonstriert, indem
die Designschritte für mehrere Punkte des Entwurfsraums durchlaufen werden. Insbesondere wird
das CNN-Modell für verschiedene Konfigurationen des Beschleunigers quantisiert und kompiliert.
Um die Performance zu steigern, werden verschiedene Optionen evaluiert, um die Parallelität im
Beschleuniger zu erhöhen. Dies ist insbesondere für rechenintensive CNNs entscheidend.
Die Ergebnisse des Anwendungsbeispiels zeigen, wie die Genauigkeit, der Durchsatz und die
Ressourcennutzung auf der Zielplattform vom Benutzer durch die Konfigurationsoptionen des
Frameworks beeinflusst werden können. Ein Vergleich der Performance mit einer nichtbeschleunigten Version der Anwendung zeigt, dass der Durchsatz der Modellinferenz durch die
Beschleunigung der Convolutional Layer um den Faktor 1,4 erhöht werden kann. Es werden
Vorschläge gemacht, wie die Gesamtleistung der Anwendung weiter gesteigert werden kann. Es wird
aufgezeigt, dass die Erweiterung des Beschleunigers durch Input-Channel-Parallelisierung die
BinArray-Methode konkurrenzfähig mit kommerziellen Frameworks macht.
Convolutional Neural Networks (CNNs) are a type of deep learning algorithm that are state-of-the-art
to perform tasks such as image classification, object detection, and natural language processing.
Because CNNs are computationally intensive, FPGA-SoCs are widely used to accelerate CNNs by
providing parallel processing capabilities. Therefore, the main objective of this study is to design and
implement a flexible CNN acceleration framework BinAccel for the efficient proprietary BinArray
method, which has been developed in previous work.
The presented acceleration framework concept includes tools to optimize, convert, quantize and
compile a CNN into a deployable model format, as well as the steps to build an FPGA-SoC platform
with an integrated accelerator for binary approximated CNNs.
Main parts of the framework are implemented and applied on an example use-case: A deep-learning
based traffic sign recognition application on live input data. The configurability of the acceleration
framework is demonstrated by going through the design steps for multiple points of the design
space. Specifically, the CNN model is quantized and compiled for different hardware accelerator
configurations.
To improve processing performance, different options are analyzed and evaluated to increase
parallelism in the accelerator, which is crucial for large CNN models that require more computational
power.
The results on the example use-case show how the accuracy, throughput, and resource utilization
can be influenced by the user through the configuration options of the framework. A comparison of
the processing performance with a non-accelerated version of the application shows that by only
accelerating the convolutional layers of the model, the inference can be speeded up by a factor of
1.4. Suggestions are provided to further enhance the overall performance of the application.
Furthermore, it is shown that extending the accelerator using input channel parallelization makes the
BinArray method competitive with commercial frameworks.
Convolutional Neural Networks, kurz CNNs, sind eine Art Deep-Learning-Algorithmen, welche
heutzutage häufig für die Bewältigung von Aufgaben wie beispielsweise der Bildklassifizierung,
Objekterkennung oder der Sprachverarbeitung verwendet werden. Da CNNs rechenintensiv sind,
werden häufig FPGA-SoCs eingesetzt, um diese mittels paralleler Verarbeitung zu beschleunigen.
Das Hauptziel dieser Arbeit ist demnach die Entwicklung und Implementierung eines flexiblen CNNBeschleunigungsframeworks BinAccel für die effiziente, proprietäre BinArray-Methode, welche in
vorangehender Forschungsarbeit entwickelt wurde.
Das vorgestellte Beschleunigungsframework umfasst Anwendungen zur Optimierung, Konvertierung,
Quantisierung und Kompilierung eines CNN in ein ausführbares Modellformat sowie die Schritte zum
Aufbau einer FPGA-SoC-Plattform mit einem integrierten Beschleuniger.
Die Hauptbestandteile des Frameworks werden implementiert und in einer Beispielanwendung
eingesetzt: Eine Deep-Learning-Anwendung, welche Verkehrszeichen in einem live Videostream
identifizieren kann. Die Konfigurierbarkeit des Beschleunigungsframeworks wird demonstriert, indem
die Designschritte für mehrere Punkte des Entwurfsraums durchlaufen werden. Insbesondere wird
das CNN-Modell für verschiedene Konfigurationen des Beschleunigers quantisiert und kompiliert.
Um die Performance zu steigern, werden verschiedene Optionen evaluiert, um die Parallelität im
Beschleuniger zu erhöhen. Dies ist insbesondere für rechenintensive CNNs entscheidend.
Die Ergebnisse des Anwendungsbeispiels zeigen, wie die Genauigkeit, der Durchsatz und die
Ressourcennutzung auf der Zielplattform vom Benutzer durch die Konfigurationsoptionen des
Frameworks beeinflusst werden können. Ein Vergleich der Performance mit einer nichtbeschleunigten Version der Anwendung zeigt, dass der Durchsatz der Modellinferenz durch die
Beschleunigung der Convolutional Layer um den Faktor 1,4 erhöht werden kann. Es werden
Vorschläge gemacht, wie die Gesamtleistung der Anwendung weiter gesteigert werden kann. Es wird
aufgezeigt, dass die Erweiterung des Beschleunigers durch Input-Channel-Parallelisierung die
BinArray-Methode konkurrenzfähig mit kommerziellen Frameworks macht.
Convolutional Neural Networks (CNNs) are a type of deep learning algorithm that are state-of-the-art
to perform tasks such as image classification, object detection, and natural language processing.
Because CNNs are computationally intensive, FPGA-SoCs are widely used to accelerate CNNs by
providing parallel processing capabilities. Therefore, the main objective of this study is to design and
implement a flexible CNN acceleration framework BinAccel for the efficient proprietary BinArray
method, which has been developed in previous work.
The presented acceleration framework concept includes tools to optimize, convert, quantize and
compile a CNN into a deployable model format, as well as the steps to build an FPGA-SoC platform
with an integrated accelerator for binary approximated CNNs.
Main parts of the framework are implemented and applied on an example use-case: A deep-learning
based traffic sign recognition application on live input data. The configurability of the acceleration
framework is demonstrated by going through the design steps for multiple points of the design
space. Specifically, the CNN model is quantized and compiled for different hardware accelerator
configurations.
To improve processing performance, different options are analyzed and evaluated to increase
parallelism in the accelerator, which is crucial for large CNN models that require more computational
power.
The results on the example use-case show how the accuracy, throughput, and resource utilization
can be influenced by the user through the configuration options of the framework. A comparison of
the processing performance with a non-accelerated version of the application shows that by only
accelerating the convolutional layers of the model, the inference can be speeded up by a factor of
1.4. Suggestions are provided to further enhance the overall performance of the application.
Furthermore, it is shown that extending the accelerator using input channel parallelization makes the
BinArray method competitive with commercial frameworks.