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 (1)

Related Courses

Hardware-Accelerated Video Analytics

14 Hours

GPU Programming with OpenCL

28 Hours

GPU Programming with CUDA

28 Hours

AMD GPU Programming

28 Hours

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Raster and Vector Graphics (Adobe Photoshop, CorelDraw)

28 Hours

Related Categories