Lista przedmiotów z materiałami udostępnionymi dla studentów

Dla_studentów
  • Increase font size
  • Default font size
  • Decrease font size

Weronika Danecka

Implementacja filtrów splotowych w układzie FPGA na potrzeby sprzętowej realizacji sieci neuronowych głębokiego uczenia


Implementation of convolutional filters in a FPGA device for the hardware realization of deep neural networks


Opiekun pracy dyplomowej: dr hab. inż. Artur Klepaczko
Praca dyplomowa inżynierska obroniona 2019-07-19
Streszczenie pracy dyplomowej:
W ostatnich latach nastąpił znaczący postęp w rozwoju algorytmów uczenia maszynowego i uczenia głębokiego, takich jak konwolucyjne sieci neuronowe. Dzięki temu są one coraz częściej stosowane w wielu obszarach takich jak rozpoznawanie mowy, rozpoznawaniu obrazów, tłumaczenie maszynowe, a także diagnostyka medyczna. Problem stanowi jednak duża złożoność obliczeniowa tych rozwiązań oraz konieczność stosowania szybkich procesorów i kart graficznych dla osiągnięcia pożądanej wydajności. Układy FPGA (ang. field-programmable gate array – bezpośrednio programowalna macierz bramek) mogą stanowić efektywne i wydajne rozwiązanie tego problemu dzięki niskiemu zużyciu energii, coraz niższym kosztom produkcji i łatwości implementacji operacji równoległych. Rozwiązanie zaproponowane w tym projekcie wykorzystuje układ FPGA do sprzętowej akceleracji operacji splotu oraz zapewnia narzędzia do przekazywania danych wejściowych oraz parametrów splotu podczas działania urządzenia, a także do przesyłania wyników z powrotem do komputera. Zastosowanie dwukierunkowej komunikacji pomiędzy komputerem a układem FPGA opartej o Ethernet pozwala na integrację tak zaprogramowanego układu do skryptów Pythona, na przykład jako część konwolucyjnej sieci neuronowej. Dodatkowo rozwiązanie zostało przetestowane z zastosowaniem różnych reprezentacji liczb rzeczywistych, w celu zapewnienia wymaganej dokładności wartości wynikowych oraz minimalizacji wykorzystania zasobów układu FPGA. Na podstawie otrzymanych wyników można stwierdzić, że zastosowanie 32-bitowych liczb stałoprzecinkowych pozwala na uzyskanie dokładności porównywalnej z liczbami zmiennoprzecinkowymi pojedynczej precyzji przy znacznie mniejszym zużyciu zasobów, co może pozwolić na implementację tego rozwiązania również w mniejszych układach FPGA. Słowa kluczowe: układy programowalne FPGA, konwolucyjne sieci neuronowe, akceleracja sprzętowa, uczenie głębokie, obliczenia heterogeniczne.
Abstract:
In recent years there has been significant progress in the development of machine learning and deep learning algorithms, including convolutional neural networks (CNNs). This resulted in increased adoption of those methods in many areas such as speech recognition, computer vision, machine translation and medical diagnosis. However, CNNs are a computationally intensive method, which requires fast processors and graphics cards with relatively high energy consumption to achieve satisfactory performance. Field-programmable gate arrays (FPGAs) may offer efficient, low-power solution to this problem thanks to their inherent parallelism, low energy consumption and decreasing production costs of such devices. The solution proposed in this project utilizes FPGA devices for hardware acceleration of convolution operation and provides tools for updating the input images and convolution parameters at runtime, as well as for sending the results back to the PC. Thanks to implementation of bidirectional communication between PC and FPGA over Ethernet protocol, this solution can be easily integrated into Python scripts for example as part of deep neural networks workflow. Additionally, four different representations of real numbers were tested to achieve the best possible accuracy of results combined with low complexity and limited usage of FPGA resources. Based on the obtained results it was decided that 32-bit fixed-point representation provides satisfactory accuracy similar to that of single-precision floating-point numbers but utilizes much less of the FPGA resources and might be suitable for implementation even in modern low-end devices. Keywords: field-programmable gate arrays, convolutional neural networks, hardware acceleration, deep learning, heterogeneous computing.