Course Outline

Εισαγωγή

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

OpenCL

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

CUDA

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

ROCm

  • Τι είναι το ROCm;
  • Ποιες είναι τα πλεονεκτήματα και αδυναμίες του ROCm;
  • Δημιουργία συστήματος ανάπτυξης για ROCm
  • Δημιουργία βασικού προγράμματος ROCm που εκτελεί πρόσθεση διανυσμάτων
  • Χρήση API του ROCm για να αποκτήσετε πληροφορίες σχετικά με το υπολογιστικό σώμα, διαχείριση μνήμης και ανταλλαγή δεδομένων μεταξύ πυρήνα και υπολογιστικού σώματος, εκτέλεση νυχτερινών τεχνών και επικοινωνία θρεάδ
  • Χρήση γλώσσας ROCm C/C++ για να γράψετε kernels που εκτελούνται στο υπολογιστικό σώμα και αλληλεπίδραση με τα δεδομένα
  • Χρήση εμπροσθοχείλων λειτουργιών, μεταβλητών και βιβλιοθηκών του ROCm για να πραγματοποιήσετε συνηθισμένες διαδικασίες και επιχειρήσεις
  • Χρήση χώρων μνήμης του ROCm, όπως global, local, constant και private, για να τοποθετήσετε τις μεταφορές δεδομένων και πρόσβαση στην μνήμη
  • Χρήση μοντέλου εκτέλεσης του ROCm για να ρυθμίζετε τα threads, blocks και grids που προβάλλουν την parallelism
  • Αποκλήσεις και δοκιμές ROCm προγραμμάτων χρησιμοποιώντας εργαλεία όπως ROCm Debugger και ROCm Profiler
  • Βελτιστοποίηση ROCm προγραμμάτων μέσω τεχνικών όπως coalescing, caching, prefetching και profiling

Σύγκριση

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

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

Requirements

  • Σύνειση στη γλώσσα C/C++ και τους όρους παralληλού προγραμματισμού
  • Βασική ιδρυτική γνώση υπολογιστικής αρχιτεκτόνησης και μνημης ιεραρχίας
  • Εμπειρία με εργαλεία παραθύρου εντολών και εκδότες κώδικα

Πελάτες

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

Number of participants


Price per participant

Upcoming Courses

Related Categories