Επιτάχυνση συστημάτων συστάσεων βασισμένη σε FPGA - Κατσαντώνης, Κωνσταντίνος (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Μικροϋπολογιστών και Ψηφιακών Συστημάτων VLSI, 2017)
Η ραγδαία αύξηση των δεδομένων τα τελευταία χρόνια έχει οδηγήσει σε άνθιση κλάδο της μηχανικής μάθησης και γενικότερα της τεχνητής νοημοσύνης. Ωστόσο πατης αυξανόμενες ανάγκες για επεξεργασία όλο και μεγαλύτερου όγκου δεδομένων σκέντρα δεδομένων ο τρόπος που τα επεξεργαζόμαστε δεν έχει αλλάξει ιδιαίτερα εκαι αρκετά χρόνια και ο μόνος λόγος που η επεξεργαστική ισχύς συμβαδίζει με αύξηση των δεδομένων είναι ότι προς το παρών δεν μας έχει εγκαταλείψει ο νόμος τMoore κάτι που σύντομα ενδεχομένως να σταματήσει να ισχύει. Το εναλλακτικό μονοπάτι μέχρι τώρα έναντι του κλασικού CPU server αποτελοοι αρχιτεκτονικές που διαμοιράζουν το υπολογιστικό έργο εκτός απο τις CPU καιGPU με τις τελευταίες να πετυχαίνουν εξαιρετικά αποτελέσματα όσον αφορά την χνική επίδοση. Ωστόσο αν και οι χρονικές επιδόσεις των GPU είναι εξαιρετικές όσαφορά την ενεργειακή απόδοση οδηγούν σε περαιτέρω αύξηση της κατανάλωσης ισχύΣκοπός αυτής της διπλωματικής είναι να αναδείξει ένα ακόμα εναλλακτικό υλογιστικό μονοπάτι που στοχεύει όχι στην αντικατάσταση των υπολοίπων αλλά σνα καλύψει κάποιες ανάγκες που οι υπάρχουσες μέθοδοι αδυνατούν. Στόχος αυτης διπλωματικής είναι να δείξουμε πως μπορούν τα FPGAs να ενσωματωθούν σκέντρα δεδομένων κάνοντας χρήση υπαρχουσών τεχνολογιών με στόχο ταυτόχροτην αύξηση της ενεργειακής και χρονικής επίδοσης. Για τον σκοπό αυτό στην γκεκριμένη διπλωματική χρησιμοποιήσαμε τον αλγόριθμο Εναλλασόμενων ΕλάχιστΤετραγώνων για Παραγοντοποίηση Πίνακα (Alternating Least Squares For MatFactorization) με στόχο να παρουσιάσουμε ένα διάγραμμα εργασιακής ροής σχετμε το πώς κάποιος μπορεί να ξεκινήσει να τρέχει αλγορίθμους υποβοηθούμενους αFPGA σε ενα Datacenter. H διπλωματική αυτή εντάσσεται σε ένα γενικότερο πλαίσιο μιας προσπάθειας να τασκευαστούν βιβλιοθήκες οι οποίες θα περιέχουν βασικές εργασίες ενός Datacenκαι θα είναι επιταχυμένες σε FPGA και έτοιμες για χρήση από τον εκάστοτε προγρματιστή. Οι πλακέτες που χρησιμοποιήσαμε έιναι οι Xilinx ZedBoard, Xilinx Zc702 Digilent Pynq Z1, ενώ όσον αφορά το λογισμικό χρησιμοποιήσαμε τα Xilinx SDSoXilinc Vivado HLS,Apache Spark. Η ροη εργασίας που ακολουθήσαμε ήταν η εξήαρχικά γράψαμε τον αλγόριθμο των εναλλασόμενων ελαχίστων τετραγώνων σε C έπειτα καταγράψαμε το χρονικό του προφίλ. Στην συνέχεια με τη βοήθεια του XilSDSoC και του Vivado HLS κατασκευάσαμε μερικούς πυρήνες επιτάχυνσης γιαέντονο υπολογιστικά κομμάτι του αλγορίθμου. Δοκιμάσαμε την χρονική επίδοση τπυρήνων πάνω στο zedboard και στην συνέχεια την ενεργειακή τους επίδοση πάστο zc702. Στην συνέχεια επιλέξαμε τον καλύτερο απο τους πυρήνες τόσο ενεργειαi όσο και χρονικά και τον ενσωματώσαμε σε περιβάλλον Python στην πλακέτα Pynq-Z1 κάνοντας χρήση των βιβλιοθηκών που παρέχονται για την τελευταία. Η μετάβαση απο C σε Python έγινε διότι επιζητούσαμε να δημιουργήσουμε μια υλοποίηση σε μια γλώσσα που να χρησιμοποιείτε ευρέως στα κενταρα δεδομένων απο τους προγραμματιστές. Τέλος για τον σκοπό της διπλωματικής κατασκευάσαμε ένα Cluster απο Pynqs το οποίο προσομοίωσε ένα μικρό κέντρο δεδομένων πάνω στο οποίο, με την βοήθεια του Apache Spark, τρέξαμε κατανεμημένα τον επιταχυμένο αλγόριθμο.