Επιταχυντές υλικού για μοντέλα μηχανικής μάθησης LSTM με χρήση τεχνικών σύνθεσης HL

Loading...
Thumbnail Image

Date

2024-10-15

Authors

Γλυκός, Ιωάννης

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Στόχος αυτής της διπλωματικής εργασίας ήταν να πάρω ένα νευρωνικό δίκτυο LSTM και να το υλοποιήσω με High Level Synthesis (HLS) με το Catapult όσο πιο αποτελεσματικά γινόταν. Για να το πετύχω αυτό χρησιμοποίησα διάφορες αλγοριθμικές μεθόδους που και pipelining. Η βελτιστοποίηση εξηγείτε με χρονολογική σειρά που έγινε και όχι ανά κομμάτι κώδικα. Αρχικά μετατράπηκε ο κώδικας Python που περιείχε το LSTM σε C. Αυτό είναι απαραίτητο βήμα καθώς η Python δεν είναι synthesizable από το Catapult. Η μετατροπή έγινε χωρίς χρήση βιβλιοθηκών και χωρίς εντολές διανομής ή κράτησης μνήμης λόγο των απαιτήσεων του Catapult. Αφού επαληθεύτηκε η λειτουργικότητα του κώδικα C είναι σωστή και η σύνθεση είναι υλοποιήσιμη, άρχισε η βελτιστοποίηση. Αρχικά αλγοριθμικά, με μεθόδους καλής πρακτικής κώδικα και καλών προγραμματιστικών συνηθειών που βοηθάνε το Catapult να κάνει αυτόματα συγχώνευση μνημών και να χρησιμοποιήσει το μικρότερο δυνατό υλικό για την υλοποίηση και έπειτα με έξυπνα προγραμματιστικά κόλπα, πχ. αφαιρώντας τους διαιρέτες ή χωρίζοντας συναρτήσεις σε δυο κομμάτια, προσαρμόζοντάς τες πιο άμεσα στην συγκεκριμένη εφαρμογή. Τέλος έγινε pipelining. Κατά τη διάρκεια επιτρέπονταν και βρέθηκαν διάφοροι τρόποι ώστε να λυθούν προβλήματα που δημιουργούνταν με την ανατροφοδοσία. Το τελικό αποτέλεσμα ήταν να έχει Latency περίπου το 1/20 της αρχικής τιμής και εμβαδό επιφάνειας στο 1/3 αυτής.

Description

Keywords

Νευρωνικά δίκτυα, HLS

Citation