title: Σχεδιασμός και υλοποίηση ενός επιταχυντή για CNN βασισμένο σε τεχνολογία FPGA
title: Design and implementation of an FPGA-based convolutional neural network accelerator
Creators: name: Πιτσης Αντωνιος-Γεωργιος
Publisher: name: Technical University of Crete
Year: 2018

description: Τα τελευταία χρόνια, τα Convolutional Neural Networks (CNNs) παρουσιάζουν εξαιρετική ανάπτυξη λόγω της αποτελεσματικότητάς τους σε σύνθετα προβλήματα αναγνώρισης εικόνων. Τα CNNs οδηγούνται στην επίλυση ενός συνεχώς μεγαλύτερου αριθμού προβλημάτων, από την αναγνώριση ομιλίας έως την κατάτμηση και την ταξινόμηση της εικόνας. Η συνεχώς αυξανόμενη ανάγκη για μεγαλύτερη υπολογιστική ισχύ που απαιτείται από τα CNN δίνει την δυνατότητα σε hardware υλοποιήσεις. Επιπλέον, το φόρτο εργασίας των CNN έχει ροή δεδομένων, κατάλληλη για αρχιτεκτονική σε επαναπρογραμματιζόμενο hardware, όπως οι FPGAs. O αριθμός των ερευνών για την Μηχανική Μάθηση και ειδικά για τα CNN (που υλοποιείται σε πλατφόρμες FPGA) μέσα στα τελευταία 4 χρόνια καταδεικνύει το τεράστιο βιομηχανικό και ακαδημαϊκό ενδιαφέρον. Αυτή η μελέτη παρουσιάζει έναν (Inference) επιταχυντή CNN βασισμένο σε τεχνολογίες FPGA. Το δίκτυο που επιδιώκουμε να επιταχύνουμε αναπτύχθηκε από τον Δρ. Τσαγκατάκη στο πλαίσιο του έργου DEDALE (Horizon 2020) για θέματα αστροφυσικής. Αφού πραγματοποιήθηκε Robustness Analysis, διαστασιολογήθηκε το υπολογιστικό φόρτο εργασίας και οι προσβάσεις στη μνήμη, καθώς εξετάστηκαν μέθοδοι συμπίεσης και αλγοριθμικές βελτιστοποιήσεις για την εκμετάλλευση του παραλληλισμού των FPGAs. Στο επίπεδο των νευρώνων, εξηγούνται και συγκρίνονται οι βελτιστοποιήσεις των Convolutional και Fully Connected Layers . Στο επίπεδο του δικτύου, οι προσεγγιστικές μέθοδοι βελτιστοποίησης υπολογισμών εξετάζονται έχοντας ως περιορισμό να μην μειωθεί αισθητά η ακρίβεια του δικτύου. Οι πλατφόρμες που χρησιμοποιήθηκαν είναι οι ZCU102 και QFDB (μια προσαρμοσμένη πλατφόρμα 4-FPGA που αναπτύχθηκε στο ΙΤΕ). Ο επιταχυντής που υλοποιήθηκε κατάφερε να επιτύχει 20x latency speedup, 2.17x throughput speedup και να είναι 11.9x πιο ενεργειακά αποδοτικός σε σύγκριση με την GPU NVIDIA-Quadro-K2200 στα πλαίσια του έργου EuroExa.
description: In recent years Convolutional Neural Networks (CNNs) have shown extremely growth due to their effectiveness at complex image recognition problems. They are currently adopted to solve an ever greater number of problems, ranging from speech recognition to image segmentation and classification. The continuing increasing amount of processing required by CNNs creates the field for hardware support methods. Moreover, CNN workloads have a streaming nature, well suited to reconfigurable hardware architectures such as FPGAs. The amount of research on the Machine Learning and especially on CNN (implemented on FPGA platforms) within the last 4 years demonstrates the tremendous industrial and academic interest. This study presents a CNN inference accelerator over FPGAs. The network we aim to accelerate was developed by Dr. Tsagatakis in the context of DEDALE project (Horizon 2020) for astrophysics subject.  After carrying out Robustness Analysis computational workloads and memory accesses are analyzed, as well as compression methods and algorithmic optimizations to exploit FPGA parallelism. At the level of neurons, optimizations of the convolutional and fully connected layers are explained and compared. At the network level, approximate computing optimization methods are examined limited by not reducing the accuracy of the network. The platforms were used are ZCU102 and QFDB(a custom 4-FPGA platform developed at FORTH). The implemented accelerator was managed to achieve 20x latency speedup, 2.17x throughput speedup and 11.9x energy efficient over GPU NVIDIA-Quadro-K2200 in terms of EuroExa project.