Please use this identifier to cite or link to this item:
http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17651
Title: | oclude and OCLMan: Τools to profile and predict the dynamic behavior of standalone OpenCL kernels based on compiling and machine learning techniques |
Authors: | Νιάρχος, Σωτήριος Κοζύρης Νεκτάριος |
Keywords: | ετερογενής υπολογισμός παράλληλος υπολογισμός υπολογιστικός πυρήνας OpenCL LLVM δυναμική ανάλυση μικροανάλυση μηχανική μάθηση παλινδρόμηση ανάλυση παλινδρόμησης πρόβλεψη χρόνου εκτέλεσης |
Issue Date: | Jul-2020 |
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. Τέλος, δείχνουμε ότι το μοντέλο μας έχει πολύ καλύτερη απόδοση από ό,τι μοντέλα παλινδρόμησης που βασίζονται μόνο σε στατικά χαρακτηριστικά, το οποίο και αποτελεί τη βασική προσέγγιση που χρησιμοποιείται στη σχετική βιβλιογραφία. |
URI: | http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17651 |
Appears in Collections: | Διπλωματικές Εργασίες - Theses |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
thesis.pdf | 3.43 MB | Adobe PDF | View/Open |
Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.