Επικοινωνήστε μαζί μας

Εξέλιξη Κομματιού

Εισαγωγή

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

OpenCL

  • Τι είναι το OpenCL;
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του OpenCL;
  • Ρύθμιση του περιβάλλοντος ανάπτυξης για το OpenCL
  • Δημιουργία ενός βασικού προγράμματος OpenCL που εκτελεί πρόσθεση διανυσμάτων
  • Χρήση του API OpenCL για αναζήτηση πληροφοριών συσκευής, εκχώρηση και αποδέσμευση μνήμης συσκευής, αντιγραφή δεδομένων μεταξύ κεντρικού υπολογιστή και συσκευής, εκκίνηση πυρήνων και συγχρονισμό νημάτων
  • Χρήση της γλώσσας OpenCL C για τη συγγραφή πυρήνων που εκτελούνται στη συσκευή και επεξεργάζονται δεδομένα
  • Χρήση ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών του OpenCL για την εκτέλεση κοινών εργασιών και λειτουργιών
  • Χρήση χώρων μνήμης OpenCL, όπως καθολική (global), τοπική (local), σταθερή (constant) και ιδιωτική (private), για βελτιστοποίηση μεταφορών δεδομένων και προσβάσεων στη μνήμη
  • Χρήση του μοντέλου εκτέλεσης OpenCL για τον έλεγχο των στοιχείων εργασίας (work-items), ομάδων εργασίας (work-groups) και ND-ranges που ορίζουν τον παραλληλισμό
  • Διόρθωση σφαλμάτων και δοκιμή προγραμμάτων OpenCL χρησιμοποιώντας εργαλεία όπως το CodeXL
  • Βελτιστοποίηση προγραμμάτων OpenCL χρησιμοποιώντας τεχνικές όπως συνένωση, προσωρινή αποθήκευση, προφόρτωση και καταγραφή προφίλ

CUDA

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

ROCm

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

HIP

  • Τι είναι το HIP;
  • Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του HIP;
  • Ρύθμιση του περιβάλλοντος ανάπτυξης για το HIP
  • Δημιουργία ενός βασικού προγράμματος HIP που εκτελεί πρόσθεση διανυσμάτων
  • Χρήση της γλώσσας HIP για τη συγγραφή πυρήνων που εκτελούνται στη συσκευή και επεξεργάζονται δεδομένα
  • Χρήση ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών του HIP για την εκτέλεση κοινών εργασιών και λειτουργιών
  • Χρήση χώρων μνήμης HIP, όπως καθολική (global), κοινόχρηστη (shared), σταθερή (constant) και τοπική (local), για βελτιστοποίηση μεταφορών δεδομένων και προσβάσεων στη μνήμη
  • Χρήση του μοντέλου εκτέλεσης HIP για τον έλεγχο των νημάτων, μπλοκ και πλεγμάτων που ορίζουν τον παραλληλισμό
  • Διόρθωση σφαλμάτων και δοκιμή προγραμμάτων HIP χρησιμοποιώντας εργαλεία όπως ROCm Debugger και ROCm Profiler
  • Βελτιστοποίηση προγραμμάτων HIP χρησιμοποιώντας τεχνικές όπως συνένωση, προσωρινή αποθήκευση, προφόρτωση και καταγραφή προφίλ

Σύγκριση

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

Σύνοψη και Επόμενα Βήματα

Απαιτήσεις

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

Κοινό

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

Αριθμός συμμετέχοντων


Τιμή ανά συμμετέχοντα

Εφεξής Μαθήματα

Σχετικές Κατηγορίες