dc.contributor.author | Νιάρχος, Σωτήριος | el |
dc.contributor.author | Niarchos, Sotirios | en |
dc.date.accessioned | 2020-11-12T06:19:34Z | |
dc.date.available | 2020-11-12T06:19:34Z | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/51905 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.19603 | |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.subject | Ετερογενής υπολογισμός | el |
dc.subject | Παράλληλος υπολογισμός | el |
dc.subject | Μηχανική μάθηση | el |
dc.subject | Ανάλυση παλινδρόμησης | el |
dc.subject | Πρόβλεψη χρόνου εκτέλεσης | el |
dc.subject | Heterogeneous computing | en |
dc.subject | Parallel computing | en |
dc.subject | Machine learning | en |
dc.subject | Regression analysis | en |
dc.subject | Execution time prediction | en |
dc.title | Oclude and OCLMan: tools to profile and predict the dynamic behavior of standalone OpenCL kernels based on compiling and machine learning techniques | en |
dc.contributor.department | Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Υπολογιστικών Συστημάτων | el |
heal.type | bachelorThesis | |
heal.classification | Computer engineering | en |
heal.language | el | |
heal.language | en | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2020-07-29 | |
heal.abstract | Τα τελευταία χρόνια, ο ετερογενής υπολογισμός (heterogeneous computing), δηλαδή η εκτέλεση κώδικα σε μονάδες επεξεργασίας που αντιστοιχούν σε μια ποικιλία διαφορετικών αρχιτεκτονικών (CPUs, GPUs, FPGAs κ.λπ.), αρχίζει να παίζει έναν ολοένα και σημαντικότερο ρόλο στους τομείς του μαζικού και παράλληλου υπολογισμού, καθώς και στο υπολογιστικό νέφος. ́Ενα από τα κύρια ερωτήματα που θέτει αυτή η προσέγγιση είναι ποια στρατηγική πρέπει να ακολουθηθεί για να κατανέμονται οι υπολογισμοί στις διάφορες διαθέσιμες μονάδες επεξεργασίας προκειμένου να μεγιστοποιηθεί η απόδοση. Στην προσπάθειά μας να διερευνήσουμε πιθανές απαντήσεις σε αυτό το ερώτημα, παρουσιάζουμε το oclude, ένα εργαλείο που χρησιμοποιεί τεχνικές από τον χώρο των μεταγλωττιστών και επεξεργάζεται τον πηγαίο κώδικα (source code instrumentation) προγραμμάτων γραμμένων σε OpenCL, μία γλώσσα για προγραμματισμό σε παράλληλα και/ή ετερογενή περιβάλλοντα. Χρησιμοποιούμε το oclude για να αναλύσουμε έναν αριθμό πυρήνων OpenCL (OpenCL kernels), δηλαδή να αποκτήσουμε τον αριθμό των LLVM εντολών ανά τύπο που εκτελέστηκαν μέσω μιας δυναμικής διαδικασίας μικροανάλυσης (microprofiling), και ως εκ τούτου να αποκτήσουμε ένα σύνολο χαρακτηριστικών ανεξάρτητων από τη γλώσσα προγραμματισμού και το υλικό. Στη συνέχεια χτίζουμε μοντέλα παλινδρόμησης (regression models) για την πρόβλεψη των χρόνων εκτέλεσης σε μια μονάδα CPU, που βασίζονται αποκλειστικά στο μέγεθος των δεδομένων εισόδου. Υλοποιήθηκαν δύο στάδια παλινδρόμησης. Το πρώτο στάδιο προβλέπει μετρήσεις εντολών συναρτήσει του μεγέθους των δεδομένων εισόδου και είναι διαφορετικό για κάθε πυρήνα (kernel-specific), ενώ το δεύτερο στάδιο χρησιμοποιεί το πρώτο για να προβλέψει τους χρόνους εκτέλεσης σε μια δεδομένη μονάδα επεξεργασίας, χωρίς η πρόβλεψη αυτή να είναι συγκεκριμένη για τον πυρήνα (kernel-agnostic). Αυτά τα δύο στάδια έχουν υλοποιηθεί ξεχωριστά έχοντας ως στόχο την ανεξαρτησία τους, έτσι ώστε μια διαφορετική προσέγγιση να μπορεί εύκολα να χτιστεί με αυτά, π.χ. ανάλυση υπολογιστικών πυρήνων γραμμένων σε γλώσσες πέραν της OpenCL. Τέλος, δείχνουμε ότι το μοντέλο μας έχει πολύ καλύτερη απόδοση από ό,τι μοντέλα παλινδρόμησης που βασίζονται μόνο σε στατικά χαρακτηριστικά, το οποίο και αποτελεί τη βασική προσέγγιση που χρησιμοποιείται στη σχετική βιβλιογραφία. | el |
heal.abstract | In recent years, heterogeneous computing, i.e. code execution on processing units that correspond to a variety of different architectures (CPUs, GPUs, FPGAs etc.), starts to play an increasingly important role in the fields of massive, parallel and cloud computing. One of the main questions that this approach raises is which strategy should be followed in order to distribute computation kernels across the different available processing units in order to maximize efficiency. Towards our effort to investigate possible answers to this question, we present oclude, a tool that uses compiler techniques and source code instrumentation to profile applications written in OpenCL, a parallel and heterogeneous computing framework. We use oclude to profile a number of OpenCL kernels, i.e. to acquire the number of LLVM instructions per type that were executed through a dynamic microprofiling process, and hence to obtain a language and hardware independent feature set. We then build regression models to predict execution times on a CPU, based solely on the size of the input data. Two regression stages have been implemented. The first predicts instruction counts given the size of the input data and is kernel-specific, while the second utilizes the first in order to predict execution times on a given processing unit without being kernel-specific. These two stages have been implemented separately in order to decouple the language and hardware independent model from the rest of the process, so that a different approach can be easily built on top of them, e.g. profiling a non-OpenCL codebase. Finally, we show that our model performs significantly better than regression models based on static features only, which is the default approach used in related literature. | en |
heal.advisorName | Koziris, Nectarios | en |
heal.committeeMemberName | Goumas, Georgios | en |
heal.committeeMemberName | Papaspurou, Nikolaos | en |
heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Υπολογιστικών Συστημάτων | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 139 p. | en |
heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: