Course Outline

Εισαγωγή

  • Τι είναι ο προγραμματισμός GPU;
  • Γιατί να χρησιμοποιήσετε τον προγραμματισμό GPU;
  • Ποιες είναι οι προκλήσεις και οι ανταλλαγές του GPU προγραμματισμού;
  • Ποια είναι τα πλαίσια για τον προγραμματισμό GPU;
  • Επιλέγοντας το σωστό πλαίσιο για την αίτησή σας

OpenCL

  • Τι είναι το OpenCL;
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του OpenCL;
  • Ρύθμιση του περιβάλλοντος ανάπτυξης για OpenCL
  • Δημιουργία βασικού προγράμματος OpenCL που εκτελεί πρόσθεση διανυσμάτων
  • Χρήση OpenCL API για αναζήτηση πληροφοριών συσκευής, εκχώρηση και κατανομή μνήμης συσκευής, αντιγραφή δεδομένων μεταξύ κεντρικού υπολογιστή και συσκευής, εκκίνηση πυρήνων και συγχρονισμός νημάτων
  • Χρησιμοποιώντας τη γλώσσα OpenCL C για την εγγραφή πυρήνων που εκτελούνται στη συσκευή και χειρίζονται δεδομένα
  • Χρήση OpenCL ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών για την εκτέλεση κοινών εργασιών και λειτουργιών
  • Χρήση χώρων μνήμης OpenCL, όπως καθολικοί, τοπικοί, σταθεροί και ιδιωτικοί, για τη βελτιστοποίηση των μεταφορών δεδομένων και των προσβάσεων στη μνήμη
  • Χρησιμοποιώντας το μοντέλο εκτέλεσης OpenCL για τον έλεγχο των στοιχείων εργασίας, των ομάδων εργασίας και των εύρους ND που ορίζουν τον παραλληλισμό
  • Εντοπισμός σφαλμάτων και δοκιμή OpenCL προγραμμάτων χρησιμοποιώντας εργαλεία όπως το CodeXL
  • Βελτιστοποίηση προγραμμάτων OpenCL με χρήση τεχνικών όπως η συνένωση, η προσωρινή αποθήκευση, η εκ των προτέρων ανάκτηση και η δημιουργία προφίλ

CUDA

  • Τι είναι το CUDA;
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του CUDA;
  • Ρύθμιση του περιβάλλοντος ανάπτυξης για το CUDA
  • Δημιουργία βασικού προγράμματος CUDA που εκτελεί πρόσθεση διανυσμάτων
  • Χρήση CUDA API για αναζήτηση πληροφοριών συσκευής, εκχώρηση και κατανομή μνήμης συσκευής, αντιγραφή δεδομένων μεταξύ κεντρικού υπολογιστή και συσκευής, εκκίνηση πυρήνων και συγχρονισμό νημάτων
  • Χρήση της γλώσσας CUDA C/C++ για την εγγραφή πυρήνων που εκτελούνται στη συσκευή και χειρίζονται δεδομένα
  • Χρήση ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών CUDA για την εκτέλεση κοινών εργασιών και λειτουργιών
  • Χρήση χώρων μνήμης CUDA, όπως καθολικοί, κοινόχρηστοι, σταθεροί και τοπικοί, για τη βελτιστοποίηση των μεταφορών δεδομένων και των προσβάσεων στη μνήμη
  • Χρησιμοποιώντας το μοντέλο εκτέλεσης CUDA για τον έλεγχο των νημάτων, των μπλοκ και των πλεγμάτων που ορίζουν τον παραλληλισμό
  • Εντοπισμός σφαλμάτων και δοκιμή προγραμμάτων CUDA χρησιμοποιώντας εργαλεία όπως CUDA-GDB, CUDA-MEMCHECK και NVIDIA Nsight
  • Βελτιστοποίηση προγραμμάτων CUDA με χρήση τεχνικών όπως η συνένωση, η προσωρινή αποθήκευση, η εκ των προτέρων ανάκτηση και η δημιουργία προφίλ

ROCm

  • Τι είναι το ROCm;
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του ROCm;
  • Ρύθμιση του περιβάλλοντος ανάπτυξης για το ROCm
  • Δημιουργία βασικού προγράμματος ROCm που εκτελεί πρόσθεση διανυσμάτων
  • Χρησιμοποιώντας το ROCm API για αναζήτηση πληροφοριών συσκευής, εκχώρηση και κατανομή μνήμης συσκευής, αντιγραφή δεδομένων μεταξύ κεντρικού υπολογιστή και συσκευής, εκκίνηση πυρήνων και συγχρονισμό νημάτων
  • Χρήση της γλώσσας ROCm C/C++ για την εγγραφή πυρήνων που εκτελούνται στη συσκευή και χειρίζονται δεδομένα
  • Χρήση ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών ROCm για την εκτέλεση κοινών εργασιών και λειτουργιών
  • Χρήση χώρων μνήμης ROCm, όπως καθολικοί, τοπικοί, σταθεροί και ιδιωτικοί, για τη βελτιστοποίηση των μεταφορών δεδομένων και των προσβάσεων στη μνήμη
  • Χρησιμοποιώντας το μοντέλο εκτέλεσης ROCm για τον έλεγχο των νημάτων, των μπλοκ και των πλεγμάτων που ορίζουν τον παραλληλισμό
  • Εντοπισμός σφαλμάτων και δοκιμή προγραμμάτων ROCm χρησιμοποιώντας εργαλεία όπως το ROCm Debugger και το ROCm Profiler
  • Βελτιστοποίηση προγραμμάτων ROCm με χρήση τεχνικών όπως η συγχώνευση, η προσωρινή αποθήκευση, η προανάκτηση και η δημιουργία προφίλ

Σύγκριση

  • Σύγκριση των χαρακτηριστικών, της απόδοσης και της συμβατότητας των OpenCL, CUDA και ROCm
  • Αξιολόγηση GPU προγραμμάτων με χρήση σημείων αναφοράς και μετρήσεων
  • Μαθαίνοντας τις βέλτιστες πρακτικές και συμβουλές για GPU προγραμματισμό
  • Διερεύνηση των τρεχουσών και μελλοντικών τάσεων και προκλήσεων του GPU προγραμματισμού

Περίληψη και Επόμενα Βήματα

Requirements

  • Κατανόηση της γλώσσας C/C++ και των εννοιών του παράλληλου προγραμματισμού
  • Βασικές γνώσεις αρχιτεκτονικής υπολογιστών και ιεραρχίας μνήμης
  • Εμπειρία με εργαλεία γραμμής εντολών και επεξεργαστές κώδικα

Ακροατήριο

  • Προγραμματιστές που επιθυμούν να μάθουν πώς να χρησιμοποιούν διαφορετικά πλαίσια για GPU προγραμματισμό και να συγκρίνουν τις δυνατότητες, την απόδοση και τη συμβατότητά τους
  • Προγραμματιστές που επιθυμούν να γράψουν φορητό και επεκτάσιμο κώδικα που μπορεί να εκτελεστεί σε διαφορετικές πλατφόρμες και συσκευές
  • Προγραμματιστές που επιθυμούν να εξερευνήσουν τις ανταλλαγές και τις προκλήσεις του GPU προγραμματισμού και βελτιστοποίησης
 28 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories