Hardware acceleration of AI/deep learning applications for the RISC-V architecture

AI & Deep Learning Applications are becoming increasingly popular in our everyday lives. The massive improvements in computing performance that originate in the late 20th century made it possible to implement AI and Deep Learning features in all sorts of instances. Cars now feature Virtual Assis...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Λιάσος, Αλέξανδρος
Άλλοι συγγραφείς: Liasos, Alexandros
Γλώσσα:English
Έκδοση: 2021
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/10889/15019
id nemertes-10889-15019
record_format dspace
institution UPatras
collection Nemertes
language English
topic Hardware acceleration
Artificial Intelligence
Deep learning
RISC
Reduced instruction set computer
RISC-V
Processors
Hardware description language
VHDL
Neural networks
Convolutional neural networks
Programmable logic
FPGA
Instruction set extension
Co-processors
Hardware design
Επιταχυντές υλικού
Τεχνητή νοημοσύνη
Βαθιά μάθηση
Επεξεργαστές
Γλώσσα περιγραφής υλικού
Νευρωνικά δίκτυα
Συνελικτικά νευρωνικά δίκτυα
Προγραμματιζόμενη λογική
Επέκταση συνόλου εντολών
Συν-επεξεργαστές
Σχεδιασμός υλικού
spellingShingle Hardware acceleration
Artificial Intelligence
Deep learning
RISC
Reduced instruction set computer
RISC-V
Processors
Hardware description language
VHDL
Neural networks
Convolutional neural networks
Programmable logic
FPGA
Instruction set extension
Co-processors
Hardware design
Επιταχυντές υλικού
Τεχνητή νοημοσύνη
Βαθιά μάθηση
Επεξεργαστές
Γλώσσα περιγραφής υλικού
Νευρωνικά δίκτυα
Συνελικτικά νευρωνικά δίκτυα
Προγραμματιζόμενη λογική
Επέκταση συνόλου εντολών
Συν-επεξεργαστές
Σχεδιασμός υλικού
Λιάσος, Αλέξανδρος
Hardware acceleration of AI/deep learning applications for the RISC-V architecture
description AI & Deep Learning Applications are becoming increasingly popular in our everyday lives. The massive improvements in computing performance that originate in the late 20th century made it possible to implement AI and Deep Learning features in all sorts of instances. Cars now feature Virtual Assistants, capable of responding to the driver’s natural voice language commands. In the Healthcare sector, computer-aided disease detection and computer-aided diagnosis have been made possible using Deep Learning algorithms. The aim of this thesis is to bring AI/Deep Learning capabilities to the RISC-V Architecture. The open-source nature of RISC-V makes it an ideal base to implement the extra hardware required to handle those specific workloads. Chapter 1 serves as an introduction to the thesis. We begin with the basic structure of a processor and note the differences between RISC and CISC architectures. Next, an introduction to the RISC-V architecture is made, where its origin and goals are listed. Then, the considerations when selecting a base processor design for the project are laid out. The chapter ends with an in-depth look at the individual components found within the chosen processor. Chapter 2 briefly demonstrates the different routes we can follow in order to produce code that can be executed on the processor. After the code is generated, the execution of the code is simulated. Chapter 3 follows the process of implementing the processor on programmable logic. After a brief introduction to programmable logic devices, some considerations when choosing a suitable programmable logic device are noted. Then, the steps regarding the implementation of the processor, as well as the peripherals needed for the processor to function are listed, noting some easy-to-make mistakes. With the stock processor design now complete, chapter 4 covers the software development process for the processor, as well as the use of the extra peripherals. Chapter 5 serves as a short introduction into neural networks, with special emphasis into convolutional neural networks. Their structure, use cases, and operation are topics covered in this chapter. Chapter 6 dives deep into the topic of Hardware Acceleration. In the beginning, considerations regarding the selection of the portion of the convolutional neural network, upon which to improve are noted. Then, observations about the target task to be hardware accelerated are made, in order to tailor the hardware acceleration approach to the aspects of the task. Two different approaches are used; the first utilizes a co-processor alongside the main processor, which handles the convolution step of a convolutional neural network and is inspired by the Cell processor found in the PlayStation 3. The second approach is through the use of specialized instructions, inspired by ARM and DSP architectures. For both approaches, the rationale behind them, as well as their implementation into the design and use are covered. Comparisons between the approaches, in terms of efficiency increase, power consumption and resource utilization are made. These approaches are then compared with each other, as well as other Hardware Acceleration attempts on RISC-V based designs. The last chapter, chapter 7, covers instances, in which the methodology featured in this thesis would be applicable in the real word, resulting in feasible solutions to real-world problems.
author2 Liasos, Alexandros
author_facet Liasos, Alexandros
Λιάσος, Αλέξανδρος
author Λιάσος, Αλέξανδρος
author_sort Λιάσος, Αλέξανδρος
title Hardware acceleration of AI/deep learning applications for the RISC-V architecture
title_short Hardware acceleration of AI/deep learning applications for the RISC-V architecture
title_full Hardware acceleration of AI/deep learning applications for the RISC-V architecture
title_fullStr Hardware acceleration of AI/deep learning applications for the RISC-V architecture
title_full_unstemmed Hardware acceleration of AI/deep learning applications for the RISC-V architecture
title_sort hardware acceleration of ai/deep learning applications for the risc-v architecture
publishDate 2021
url http://hdl.handle.net/10889/15019
work_keys_str_mv AT liasosalexandros hardwareaccelerationofaideeplearningapplicationsfortheriscvarchitecture
AT liasosalexandros epitachyntesylikougiaepharmogestechnētēsnoēmosynēsbathiasmathēsēsgiatēnriscvarchitektonikē
_version_ 1771297296140468224
spelling nemertes-10889-150192022-09-05T20:12:59Z Hardware acceleration of AI/deep learning applications for the RISC-V architecture Επιταχυντές υλικού για εφαρμογές τεχνητής νοημοσύνης/βαθιάς μάθησης για την RISC-V αρχιτεκτονική Λιάσος, Αλέξανδρος Liasos, Alexandros Hardware acceleration Artificial Intelligence Deep learning RISC Reduced instruction set computer RISC-V Processors Hardware description language VHDL Neural networks Convolutional neural networks Programmable logic FPGA Instruction set extension Co-processors Hardware design Επιταχυντές υλικού Τεχνητή νοημοσύνη Βαθιά μάθηση Επεξεργαστές Γλώσσα περιγραφής υλικού Νευρωνικά δίκτυα Συνελικτικά νευρωνικά δίκτυα Προγραμματιζόμενη λογική Επέκταση συνόλου εντολών Συν-επεξεργαστές Σχεδιασμός υλικού AI & Deep Learning Applications are becoming increasingly popular in our everyday lives. The massive improvements in computing performance that originate in the late 20th century made it possible to implement AI and Deep Learning features in all sorts of instances. Cars now feature Virtual Assistants, capable of responding to the driver’s natural voice language commands. In the Healthcare sector, computer-aided disease detection and computer-aided diagnosis have been made possible using Deep Learning algorithms. The aim of this thesis is to bring AI/Deep Learning capabilities to the RISC-V Architecture. The open-source nature of RISC-V makes it an ideal base to implement the extra hardware required to handle those specific workloads. Chapter 1 serves as an introduction to the thesis. We begin with the basic structure of a processor and note the differences between RISC and CISC architectures. Next, an introduction to the RISC-V architecture is made, where its origin and goals are listed. Then, the considerations when selecting a base processor design for the project are laid out. The chapter ends with an in-depth look at the individual components found within the chosen processor. Chapter 2 briefly demonstrates the different routes we can follow in order to produce code that can be executed on the processor. After the code is generated, the execution of the code is simulated. Chapter 3 follows the process of implementing the processor on programmable logic. After a brief introduction to programmable logic devices, some considerations when choosing a suitable programmable logic device are noted. Then, the steps regarding the implementation of the processor, as well as the peripherals needed for the processor to function are listed, noting some easy-to-make mistakes. With the stock processor design now complete, chapter 4 covers the software development process for the processor, as well as the use of the extra peripherals. Chapter 5 serves as a short introduction into neural networks, with special emphasis into convolutional neural networks. Their structure, use cases, and operation are topics covered in this chapter. Chapter 6 dives deep into the topic of Hardware Acceleration. In the beginning, considerations regarding the selection of the portion of the convolutional neural network, upon which to improve are noted. Then, observations about the target task to be hardware accelerated are made, in order to tailor the hardware acceleration approach to the aspects of the task. Two different approaches are used; the first utilizes a co-processor alongside the main processor, which handles the convolution step of a convolutional neural network and is inspired by the Cell processor found in the PlayStation 3. The second approach is through the use of specialized instructions, inspired by ARM and DSP architectures. For both approaches, the rationale behind them, as well as their implementation into the design and use are covered. Comparisons between the approaches, in terms of efficiency increase, power consumption and resource utilization are made. These approaches are then compared with each other, as well as other Hardware Acceleration attempts on RISC-V based designs. The last chapter, chapter 7, covers instances, in which the methodology featured in this thesis would be applicable in the real word, resulting in feasible solutions to real-world problems. Οι εφαρμογές AI & Deep Learning γίνονται όλο και πιο δημοφιλείς στην καθημερινή μας ζωή. Οι τεράστιες βελτιώσεις στην επεξεργαστική ισχύ των υπολογιστών που προέρχονται στα τέλη του 20ού αιώνα κατέστησαν δυνατή την εφαρμογή λειτουργιών AI και Deep Learning σε πληθώρα περιπτώσεων. Τα αυτοκίνητα διαθέτουν τώρα «Εικονικούς Βοηθούς», οι οποίοι μπορούν να ανταποκρίνονται στις φυσικές φωνητικές εντολές του οδηγού. Στον τομέα της υγειονομικής περίθαλψης, η ανίχνευση ασθενειών με τη βοήθεια υπολογιστή και η διάγνωση μέσω υπολογιστή έχουν καταστεί δυνατές μέσω της χρήση αλγορίθμων Deep Learning. Ο στόχος αυτής της εργασίας είναι να εισάγει δυνατότητες AI / Deep Learning στην αρχιτεκτονική RISC-V. Η ανοιχτού κώδικα φιλοσοφία της RISC-V αρχιτεκτονικής την καθιστά ιδανική βάση για την εφαρμογή του επιπλέον υλικού που απαιτείται για τη διαχείριση αυτών των συγκεκριμένων φορτίων εργασίας. Το Κεφάλαιο 1 χρησιμεύει ως εισαγωγή στη διπλωματική. Ξεκινάμε με τη βασική δομή ενός επεξεργαστή και σημειώνουμε τις διαφορές μεταξύ των αρχιτεκτονικών RISC και CISC. Στη συνέχεια, γίνεται μια εισαγωγή στην αρχιτεκτονική RISC-V, όπου αναφέρονται η προέλευση και οι στόχοι της. Στη συνέχεια, εκτίθενται οι εκτιμήσεις κατά την επιλογή ενός βασικού επεξεργαστή για το έργο. Το κεφάλαιο τελειώνει με μια εις βάθος ματιά στα μεμονωμένα στοιχεία που βρίσκονται στον επιλεγμένο επεξεργαστή. Το Κεφάλαιο 2 παρουσιάζει εν συντομία τις διάφορες μεθόδους που μπορούμε να ακολουθήσουμε για να παράγουμε κώδικα, ο οποίος μπορεί να εκτελεστεί στον επεξεργαστή. Μετά τη δημιουργία του κώδικα, προσομοιώνεται η εκτέλεση του. Το Κεφάλαιο 3 ακολουθεί τη διαδικασία του Implementation του επεξεργαστή σε προγραμματιζόμενη λογική. Μετά από μια σύντομη εισαγωγή στις προγραμματιζόμενες λογικές συσκευές, παρατίθενται τα βήματα σχετικά με την υλοποίηση του επεξεργαστή, καθώς και των περιφερειακών που απαιτούνται για τη λειτουργία του. Με την ολοκλήρωση του Implementation, το κεφάλαιο 4 καλύπτει τη διαδικασία ανάπτυξης λογισμικού για τον επεξεργαστή, καθώς και τη χρήση των επιπλέον περιφερειακών. Το Κεφάλαιο 5 χρησιμεύει ως μια σύντομη εισαγωγή στα νευρωνικά δίκτυα, με ιδιαίτερη έμφαση στα συνελικτικά νευρικά δίκτυα. Η δομή, η σκοπιμότητα και η λειτουργία τους είναι θέματα που καλύπτονται σε αυτό το κεφάλαιο. Το Κεφάλαιο 6 θίγει το θέμα της επιτάχυνσης υλικού. Στην αρχή, επισημαίνονται οι αποφάσεις σχετικά με την επιλογή του τμήματος του συνελικτικού νευρικού δικτύου, το οποίο όταν βελτιωθεί θα προσφέρει την μέγιστη συνολική επιτάχυνση. Στη συνέχεια, γίνονται παρατηρήσεις σχετικά με το κομμάτι του συνελικτικού νευρωνικού που πρόκειται να επιταχυνθεί, προκειμένου να προσαρμοστεί η προσέγγιση επιτάχυνσης υλικού στις πτυχές του. Υλοποιούνται δύο διαφορετικές προσεγγίσεις. Η πρώτη χρησιμοποιεί έναν συν-επεξεργαστή παράλληλα με τον κύριο επεξεργαστή, ο οποίος χειρίζεται το βήμα συνέλιξης ενός συνελικτικού νευρικού δικτύου, εμπνευσμένο από τον επεξεργαστή Cell που βρίσκεται στο PlayStation 3. Η δεύτερη προσέγγιση είναι η επέκταση του βασικού συνόλου εντολών και η ανάπτυξη εξειδικευμένων εντολών, εμπνευσμένων από ARM και DSP αρχιτεκτονικές. Για αμφότερες τις προσεγγίσεις, καλύπτεται η λογική πίσω από αυτές, καθώς και η εφαρμογή τους στον επεξεργαστή και η χρήση τους. Πραγματοποιούνται συγκρίσεις μεταξύ των προσεγγίσεων, όσον αφορά την αύξηση της απόδοσης, την κατανάλωση ισχύος και των απαραίτητων πόρων. Αυτές οι προσεγγίσεις συγκρίνονται στη συνέχεια μεταξύ τους, καθώς και με άλλες εμπορικές προσπάθειες επιτάχυνσης υλικού σε σχέδια που βασίζονται σε RISC-V επεξεργαστές. 2021-07-15T05:58:07Z 2021-07-15T05:58:07Z 2021-07-14 http://hdl.handle.net/10889/15019 en application/pdf application/pdf