Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18014
Title: Τεχνικές ∆υναμικής ∆ιαχείρισης Μνήμης για την Αποδοτική Χρήση Καρτών Γραφικών στη ∆ιαδραστική Ανάπτυξη Εφαρμογών Μηχανικής Μάθησης
Authors: Αλεξόπουλος, Γεώργιος
Κοζύρης Νεκτάριος
Keywords: Κάρτα Γραφικών
GPU Sharing
Kubernetes
Υπολογιστικό Νέφος
∆ιαμοιρασμός Πόρων
Μηχανική Μάθηση
Jupyter Notebook
Graphics Processing Unit
GPU Memory oversubscription
Cloud Computing
Resource Sharing
Machine Learning
Issue Date: 13-Jul-2021
Abstract: Οι GPU σήμερα είναι μια αναγκαιότητα στην επιτάχυνση υπολογισμών Μηχανικής Μάθησης (Machine Learning - ML). Τα φορτία ML περιλαμβάνουν υπολογιστικά απαιτητικές (throughput-intensive) δουλειές training, ευαίσθητες ως προς το latency δουλειές inference καθώς και δουλειές διαδραστικής ανάπτυξης, όπως τα Jupyter Notebook. Μια συνηθισμένη πρακτική είναι η υποβολή των φορτίων ML ως container διαχειριζόμενα από τον ενορχηστρωτή Kubernetes. Ο τρόπος με τον οποίο διαχειρίζεται τις GPU η πλατφόρμα Kubernetes είναι να αναθέτει μια GPU αποκλειστικά σε μια μόνο δουλειά (job). Αυτή η ένα-προς-ένα σχέση μεταξύ καρτών γραφικών και jobs οδηγεί σε σημαντική υποαξιοποίηση της GPU, ειδικά για διαδραστικές δουλειές οι οποίες χαρακτηρίζονται από μεγάλες περιόδους αδράνειας με εμβόλιμες ριπές χρήσης της GPU. Οι τρέχουσες προσεγγίσεις επιτρέπουν την από κοινού χρήση μιας GPU αναθέτοντας ένα κομμάτι της μνήμης GPU σε κάθε συστεγαζόμενη εργασία. Παρουσιάζουμε την Alexo Shared GPU, έναν μηχανισμό που επιτρέπει σε πολλές διεργασίες να χρησιμοποιούν την ίδια GPU, καθεμιά από αυτές έχουσα όλη τη μνήμη GPU διαθέσιμη. Αυτό το επιτυγχάνουμε εκμεταλλευόμενοι την NVIDIA Unified Memory, μια λειτουργικότητα των μοντέρνων καρτών NVIDIA, η οποία επιτρέπει στην GPU να χρησιμοποιεί την RAM του συστήματος ως χώρο swap. Η κύρια ιδέα είναι να μετατρέπουμε διαφανώς όλες τις κλήσεις συμβατικής εκχώρησης μνήμης GPU μιας εφαρμογής στις αντίστοιχες της Unified Memory, επιτρέποντας έτσι την αυτόματη χρήση των σφαλμάτων σελίδας στην GPU για να εναλλάξουμε τα περιεχόμενα μνήμης μιας αδρανούς διεργασίας με αυτά μιας άλλης που είναι ενεργή. Ακόμα, σχεδιάζουμε έναν μηχανισμό αποφυγής του thrashing, μιας κατάστασης με καταστροφικές για την επίδοση συνέπειες, η οποία εμφανίζεται όταν οι υπολογιστικές ριπές πολλών συστεγαζόμενων διεργασιών στην GPU επικαλύπτονται και η μνήμη είναι oversubscribed. Ο μηχανισμός αυτός δρομολογεί την GPU αποκλειστικά σε μια εκ των ανταγωνιζόμενων διεργασιών τη φορά για ένα κβάντο χρόνου προκειμένου να περιοριστεί το πλήθος των σφαλμάτων σελίδας. Καθώς είναι δύσκολο να εκτιμήσουμε το speedup του μηχανισμού μας για διαδραστικές εργασίες χωρίς τη διεξαγωγή μιας μελέτης σε περιβάλλον παραγωγής (το οποίο είναι εκτός εμβέλειας αυτής της διπλωματικής), αξιολογούμε το σύστημά μας σε μη-διαδραστικές (συμβατικές) εργασίες, αφού αντιπροσωπεύουν την worst-case περίπτωση. Επιτυγχάνουμε χρόνους εκτέλεσης κάτω του σειριακού ακόμη και για εξαιρετικά εντατικές (ως προς τη χρήση GPU) εργασίες ML training με λόγο χρήσης GPU/CPU ίσο με 90/10. Ακόμα και σε περιπτώσεις όπου η μνήμη είναι κατά πολύ oversubscribed (άθροισμα Working Sets > 200% GPU memory), παρατηρούμε επιταχύνσεις έως και 35% σε σχέση με τη σειριακή εκτέλεση των εργασιών. Ως εκ τούτου, ο μηχανισμός μας μεγιστοποιεί την αξιοποίηση της GPU όχι μόνο για διαδραστικά φορτία, αλλά ακόμα και για συμβατικές/ακολουθιακές εργασίες Μηχανικής Μάθησης. Τέλος, μπορεί εύκολα να εγκατασταθεί σε οποιαδήποτε υπολογιστική συστοιχία Kubernetes με μια μόνο εντολή.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18014
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File Description SizeFormat 
alexopoulos-diploma-thesis-03114902.pdf2.77 MBAdobe PDFView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.