Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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