dc.contributor.author |
Βοντζαλίδης, Αριστοτέλης
|
el |
dc.contributor.author |
Vontzalidis, Aristotelis
|
en |
dc.date.accessioned |
2021-11-09T09:03:31Z |
|
dc.date.available |
2021-11-09T09:03:31Z |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/54040 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.21738 |
|
dc.rights |
Default License |
|
dc.subject |
Τεχνητά νευρωνικά δίκτυα |
el |
dc.subject |
Μηχανική μάθηση |
el |
dc.subject |
Πρόβλεψη εντολών διακλάδωσης |
el |
dc.subject |
Αρχιτεκτονική υπολογιστών |
el |
dc.subject |
Προσομοιωτής αρχιτεκτονικής |
el |
dc.subject |
Artificial neural networks |
en |
dc.subject |
Machine learning |
en |
dc.subject |
Branch prediction |
en |
dc.subject |
Computer architecture |
en |
dc.subject |
Simulator |
el |
dc.title |
Πρόβλεψη εντολών διακλάδωσης με τεχνητά νευρωνικά δίκτυα |
el |
dc.title |
Branch prediction using artificial neural networks |
en |
heal.type |
bachelorThesis |
|
heal.classification |
Πρόβλεψη εντολών διακλάδωσης |
el |
heal.classification |
Αρχιτεκτονική Υπολογιστών |
el |
heal.classification |
Branch Prediction |
en |
heal.classification |
Μηχανική μάθηση |
el |
heal.language |
el |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2021-07-01 |
|
heal.abstract |
Machine learning and specifically neural networks have made a major
progress in various fields, in recent years. While they made
it possible for computers to be used successfully in numerous fields,
few steps have been made towards using them for improving and accelerating
computer hardware.
Therefor, we can examine how neural networks can be used
for enhancing computer architecture and subsequently maximizing processor
efficiency overall. Designing an advanced computer engineering, is composed of many distinctive parts, each possessing its own complexity and significance. Some of these parts
can be replaced with neural networks, which can either be then implemented in hardware
level, or we can extract information based on their function, in order to create
new and more advanced units.
This diploma thesis aims to examine existing neural networks, as well as developing new ones,
to be used as branch prediction units.
Recently Stephen Tarsa and others,
identified a few branch instructions that systematically produce misspredictions,
execute multiple times and are independent from program input;
they labeled them as Hard-to-Predict and showed that predicting them correct
can offer a significant improvement for the processor.
Because these branches have a high execution rate, training and making use of
artificial neural networks can be an option, whilst their independence from program input
allow offline training and usage of pre-trained models for predictions in future executions.
The first artificial neural network for this task
was also proposed by Stephen Tarsa and others;
they used a deep branch history which they encoded and analyzed using convolutional
neural networks, which can identify related branches to the one being predicted.
Siavash Zangeneh and others continued their work to develop BranchNet,
a more complex but also more accurate model. BranchNet uses a deeper (longer)
sequence of history branches to make a prediction by introducing 2 improvements;
one better way of encoding data and some extra neural layers, both of which allow it
to process deeper branch histories. If we use these models for Hard-to-Predict branches
and pair them
with a state-of-the-art existing branch predictor for the rest of the branches,
we can achieve high performance
at specific tasks.
We studied these artificial neural networks and we propose
a model of our own, using Long Short-Term Memory networks.
Inspired from BranchNet, we encode branch history and process it using convolutional layers
in a similar way. The key difference is that we include an LSTM network as last layer, in which we feed
the processed branch history to make a prediction.
Moreover we embed neural networks in a computer architecture simulator, ChampSim,
so to evaluate them. We see that neural networks can be a powerful approach at predicting
branches; they boost performance of 541.leela more than 10%, regarding
instructions per cycle - IPC. In the future we can either develop more sophisticated models,
capable of achieving higher accuracy,
or design artificial neural networks on a hardware level. |
en |
heal.abstract |
Η μηχανική μάθηση και συγκεκριμένα τα νευρωνικά δίκτυα έχουν κάνει μεγάλη πρόοδο σε διάφορους τομείς τα τελευταία χρόνια και έχουν επιτρέψει την αξιοποίηση των ηλεκτρονικών υπολογιστών σε πολλά πεδία. Ωστόσο έχουν γίνει λίγα βήματα στην χρήση τους με σκοπό την βελτίωση της αρχιτεκτονικής των υπολογιστών. Οι σύγχρονοι επεξεργαστές αποτελούνται από πολλά ξεχωριστά, πολύπλοκα στοιχεία τα οποία θα μπορούσαν να αντικατασταθούν με νευρωνικά δίκτυα, τα οποία στη συνέχεια είτε να υλοποιηθούν 0σε επίπεδο υλικού (hardware), είτε να χρησιμοποιηθούν παρατηρήσεις με σκοπό τον σχεδιασμό νέων και αποτελεσματικότερων τμημάτων.
Στόχος της διπλωματικής εργασίας είναι η μελέτη υπαρχόντων, αλλά και η ανάπτυξη νέων, νευρωνικών δικτύων, με σκοπό την χρήση τους ως μονάδων προβλεπτών διακλαδώσεων (branch prediction units). Πρόσφατες εργασίες εντόπισαν κάποιες λίγες εντολές διακλάδωσης οι οποίες προκαλούν συστηματικά λάθος προβλέψεις, εκτελούνται πολλές φορές και είναι ανεξάρτητες των δεδομένων εισόδου μιας εφαρμογής, τις χαρακτήρισαν ως Δύσκολες-να-Προβλεφθούν διακλαδώσεις (Hard-to-Predict branches) και έδειξαν ότι η σωστή πρόβλεψη τους προσφέρει σημαντική αύξηση της απόδοσης του επεξεργαστή. Συνεπώς οι συγκεκριμένες διακλαδώσεις αποτελούν ευκαιρία για βελτίωση μέσω τεχνητών νευρωνικών δικτύων, ενώ η μη εξάρτηση από την είσοδο επιτρέπει την προγενέστερη εκπαίδευση τους (offline) και την χρήση τους σε μελλοντικές εκτελέσεις. Το πρώτο τεχνητό νευρωνικό δίκτυο που προτάθηκε για το σκοπό αυτό, χρησιμοποιεί ένα σχετικά βαθύ ιστορικό, το οποίο κωδικοποιείται και στη συνέχεια αναλύεται από ένα συνελικτικό δίκτυο το οποίο εντοπίζει διακλαδώσεις σχετικές με την διακλάδωση προς πρόβλεψη. Μια πιο πρόσφατη εργασία πρότεινε το BranchNet που είναι ένα πιο πολύπλοκο, αλλά αποτελεσματικότερο μοντέλο. Το BranchNet χρησιμοποιεί ένα μεγαλύτερο (βαθύτερο) ιστορικό εντολών διακλάδωσης για να κάνει μία πρόβλεψη παρουσιάζοντας δύο βελτιώσεις, μία καλύτερη κωδικοποίηση των δεδομένων και κάποια επιπλέον στρώματα τα οποία ευνοούν την επεξεργασία των περισσότερων δεδομένων. Αν αυτά τα μοντέλα χρησιμοποιηθούν για πρόβλεψη Hard-to-Predict εντολών διακλάδωσης και συνδυαστούν με κάποιον καλό προβλεπτή για τις υπόλοιπες εντολές, το αποτέλεσμα είναι υψηλή επίδοση σε συγκεκριμένες εφαρμογές.
Εμείς μελετάμε αυτά τα τεχνητά νευρωνικά δίκτυα και προτείνουμε ένα δικό μας μοντέλο, το οποίο χρησιμοποιεί δίκτυα μακράς-βραχυπρόθεσμης μνήμης (Long Short-Term Memory). Βασιζόμαστε στη δουλειά του BranchNet, κωδικοποιούμε το ιστορικό διακλαδώσεων και το επεξεργαζόμαστε με συνελικτικά στρώματα. Ωστόσο, ενσωματώνουμε επιπλέον και ένα αναδρομικό δίκτυο (το LSTM) το οποίο διαβάζει το επεξεργασμένο ιστορικό και μας δίνει την πρόβλεψη. Επιπλέον, ενσωματώνουμε τα τεχνητά νευρωνικά δίκτυα στον προσομοιωτή αρχιτεκτονικής ChampSim, ώστε να τα αξιολογήσουμε. Παρατηρούμε ότι τα τεχνητά νευρωνικά δίκτυα αποτελούν ελκυστική επιλογή στον τομέα πρόβλεψης διακλαδώσεων, συγκεκριμένα επιτυγχάνουν αύξηση μεγαλύτερη του 10% στις εντολές ανά κύκλο στην εφαρμογή 541.leela. Μελλοντικά θα μπορούσαμε να υλοποιήσουμε πιο περίπλοκα μοντέλα, ικανά να επιτύχουν καλύτερη πρόβλεψη, ή να σχεδιάσουμε τεχνητά νευρωνικά δίκτυα σε επίπεδο υλικού. |
el |
heal.advisorName |
Πνευματικάτος, Διονύσιος |
el |
heal.advisorName |
Pnevmatikatos, Dionisios |
en |
heal.committeeMemberName |
Πνευματικάτος, Διονύσιος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Κοζύρης, Νεκτάριος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
91 σ. |
el |
heal.fullTextAvailability |
false |
|