Implementation of computational intensive convolutional neural networks on embedded devices with limited resources - Mπαρτσώκας, Αναστάσιος (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Μικροϋπολογιστών και Ψηφιακών Συστημάτων VLSI, 2018)
Τα τελευταία χρόνια γίνονται συνεχώς έρευνες γύρω από την ανάπτυξη των Τεχνητών Νευρωνικών ∆ικτύων (ΤΝ∆). Τα ΤΝ∆ είναι εµπνευσµένα από ϐιολογικούς οργανισµούς κι έχουνε ξεπεράσει κατα πολύ σε απόδοση τις πρηγούµενες µορφές τεχνητής νοηµοσύνης. ΄Ενα ΤΝ∆ αποτελείται από απλούς υπολογιστικούς κόµβους διασυνδεδµέµους µεταξύ τους, οι οποίοι είναι εκπαιδευµένοι να αντιδρούνε σε ερεθίσµατα. Τα ΤΝ∆ που παίρνουνε ως είσοδο εικόνες ονοµάζονται Συνελικτικά Νευρωνικά ∆ίκτυα (ΣΝ∆) και χρησιµοποιούνται για την επίλυση προβληµάτων όρασης υπολογιστών, όπως είναι η αναγωνώριση αντικειµένων, η εύρεση ϑέσης των αντικειµένων κ.α. Τα τελευταία χρόνια τα ΤΝ∆ έχουνε εισαχθεί στον κόσµο των ενσωµατωµένων συσκευών, καθώς είναι ιδιαίτερα σηµαντικό τόσο για τους δηµιουργούς λογισµικού όσο και εντυπωσιακό για τους χρήστες να έχουνε τη δυνατότητα να αναγνωρίζουνε αντικείµενα µε τις συσκευές τους π.χ. κινητά τηλέφωνα. Στόχος της παρούσας διπλωµατικής είναι η εξέλιξη ενός συστήµατος εκτέλεσης ΣΝ∆ στο ενσωµατωµένο σύστηµα Myriad2. Η µηχανή υποστηρίζει ϐαθιά δίκτυα µε µεγάλο πλήθος οµότιµων κόµβων, που έχουνε εκπαιδευτεί σε τεράστια σύνολα δεδοµένων. Αυτό σηµαίνει ότι το σύνολο δεδοµένων των δικτύων είναι πολύ µεγάλο για τη µνήµη τη ενσωµατωµένης συσκευής, η οποία όµως έχει το πλεονέκτηµα χαµηλής κατανάλωσης ενέργειας ανα µονάδα υπολογισµού. Η αρχιτεκτονική της Myriad 2 συνίσταται απο 12 VLIW επεξεργαστές, χτισµένους γύρω από µια µικρή και γρήγορη µνήµη και άλλους που έχουνε συντονιστικό ϱόλο. Από τη ϕύση τους τα ΣΝ∆ απαιτούνε διαχείριση τεράστιου όγκου δεδοµένων που σηµαίνει και µεταφορά δεδοµένων µεταξύ των µνηµών. Τα ϐαθιά ΣΝ∆ περιέχουνε συνελικτικές στρώσεις µε αρκετές παραµέτρους, οι οποίες έχουνε ως σκοπό να µειώνουνε τις απαιτήσεις σε µνήµη του δικτύου. Αυτές υλοποιήθηκανε µε αποδοτικό τρόπο, ακόµα και µε τη χρήση συµβολικής γλώσσας, εµβαθύνοντας σε τεχνικές εκµετάλλευσης της αρχιτεκτονικής. Επιπλέον αναπτύχθηκε νέος τρόπος υλοποίησης των συνελικτικών στρώσεων, προκειµένου να µειώσει τον χρόνο εκτέλεσης στρώσεων µε συγκεκριµένες προδιαγραφές, αλλά και τη συνολική κατανάλωση ενέργειας. Τέλος, το γεγονός ότι το σύστηµα είναι πολυεπεξεργαστικό, αυξάνει την πολυπλοκότητα ακόµα περισσότερο. Τα παραπάνω επεκτείνονται σε κάθε ενσωµατωµένο επεξεργαστή, ο οποίος υποστηρίζει εκτέλεση νευρωνικών δικτύων καθώς οι µεθοδολογίες που χρησιµοποιήθηκανε εφαρµόζωνται και έξω από τη Myriad2. Τέλος αναπτύχθηκε µια εφαρµογή πραγµατικού χρόνου, η οποία κάνει ταξινόµηση σύµφωνα µε το ImageNet.