Architectures and FPGA implementations of neural networks for scientific computations
| datacite.contributor.RelatedPerson | Βασίλης Παλιουράς | |
| datacite.contributor.Supervisor | Θεοδωρίδης, Γεώργιος | |
| datacite.contributor.Supervisor | Θεόδωρος Αντωνακόπουλος | |
| dc.contributor.author | Μιχαηλίδης, Βασίλειος | |
| dc.contributor.other | Michailidis, Vasileios | |
| dc.date.accessioned | 2024-10-17T11:08:13Z | |
| dc.date.available | 2024-10-17T11:08:13Z | |
| dc.date.issued | 2024-10-16 | |
| dc.degree | graduateThesis | |
| dc.description.abstract | This study examines how High Level Synthesis (HLS) implementations of Multi Layer Perceptrons (MLP) may be optimized in order to achieve performance comparable to that of their equivalent CPU implementations. A set of small MLPs (inference and training) with up to three hidden layers was implemented using Vitis HLS, targeting the Xilinx Alveo U280 and trained them on the MNIST dataset. The implemented networks were optimized on the architecture level, and their performance was further improved by converting the implementations from floating point to the fixed point arithmetic. The floating to fixed point conversion utilizes an algorithm that was developed which finds the minimum width for the fixed point variables that achieves the same performance as the floating point implementation. It was discovered that the resulting bit-width optimized networks had improved latency by 14%, on average, and required less hardware utilization that ranged from 25% to 60%, discounting BRAM utilization which remained the same. Additionally, the optimized networks were benchmarked against the equivalent CPU/pytorch implementation, and it was discovered that they achieve comparable performance that fell well within real time constraints. Lastly, the trained fixed point networks were compared to the equivalent floating point networks, and it was discovered that networks which achieved comparable accuracy to the floating point networks, also had similar weights, implying that they took the same steps during training. | |
| dc.description.translatedabstract | Αυτή η έρευνα εξετάζει πως η υλοποίηση ενός Multi Layer Perceptron (MLP) μέσω High Level Synthesis (HLS) μπορεί να βελτιστοποιηθεί με σκοπό να επιτευχθεί παραπλήσια απόδοση με την αντίστοιχη υλοποίηση σε CPU. Υλοποιήθηκε ένα δείγμα μικρών MLP (inference και training) που είχαν μέχρι και τρία hidden layer με το Vitis HLS για το Xilinx Alveo U280 FPGA τα οποία εκπαιδεύτηκαν στην αναγνώριση εικόνων MNIST. Τα υλοποιημένα δίκτυα βελτιστοποιήθηκαν σε επίπεδο αρχιτεκτονικής και η απόδοσή τους βελτιώθηκε περαιτέρω μετατρέποντας τις εσωτερικές μεταβλητές του από αναπαράσταση κινητής υποδιαστολής σε αναπαράσταση σταθερής υποδιαστολής. Η μετατροπή σε αναπαράσταση σταθερής υποδιαστολής διεκπεραιώθηκε από έναν αλγόριθμο που αναπτύξαμε ο οποίος βρίσκει το ελάχιστο πλήθος bit που χρειάζεται ώστε η αναπαράσταση σταθερής υποδιαστολής να επιτυγχάνει την ίδια ακρίβεια σε εκπαιδευμένα δίκτυα που επιτυγχάνει και η αναπαράσταση κινητής υποδιαστολής. Ανακαλύφθηκε στα δίκτυα που υλοποιήθηκαν πως η βελτιστοποιημένη αναπαράσταση σταθερής υποδιαστολής βελτίωσε την καθυστέρηση του δικτύου κατά μέσω όρο 14% και χρειάστηκε 25% με 60% λιγότερο hardware στο FPGA, αν δε μετρηθεί η BRAM που χρειάστηκε σε ίσες ποσότητες στις 2 υλοποιήσεις. Επιπλέον, συγκρίθηκε η καθυστέρηση των βελτιστοποιημένων δικτύων με την καθυστέρηση της ισοδύναμης υλοποίησης CPU/pythorch και διαπιστώθηκε πως επιτυγχάνεται παραπλήσια απόδοση η οποία ικανοποιεί περιορισμούς πραγματικού χρόνου. Στο τέλος τα βάρη των δικτύων που χρησιμοποιούν σταθερή υποδιαστολή συγκρίθηκαν με τα βάρη των δικτύων που χρησιμοποιούν κινητή υποδιαστολή και διαπιστώθηκε πως τα δίκτυα που πέτυχαν παρόμοια ακρίβεια μετά την εκπαίδευση έχουν παρόμοια βάρη. Η ομοιότητα των βαρών των δικτύων οδηγεί στο συμπέρασμα πως τα δίκτυα με σταθερή υποδιαστολή ακολούθησαν παρόμοια τροχιά με τα δίκτυα με κινητή υποδιαστολή κατά τη διάρκεια της εκπαίδευσής τους. | |
| dc.identifier.uri | https://hdl.handle.net/10889/28409 | |
| dc.language.iso | en | |
| dc.subject | Neural networks | |
| dc.subject | FPGA | |
| dc.subject | HLS | |
| dc.subject.alternative | Νευρωνικά δίκτυα | |
| dc.title | Architectures and FPGA implementations of neural networks for scientific computations | |
| dc.title.alternative | Αρχιτεκτονικές και FPGA υλοποιήσεις νευρωνικών δικτύων για επιστημονικούς υπολογισμούς |