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 που εκτελεί πρόσθεση διανυσμάτων
- Χρήση 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
Testimonials (2)
Πολύ διαδραστικό με διάφορα παραδείγματα, με καλή εξέλιξη στην πολυπλοκότητα μεταξύ της έναρξης και του τέλους της εκπαίδευσης.
Jenny - Andheo
Course - GPU Programming with CUDA and Python
Machine Translated
Ενέργεια και χιούμορ των εκπαιδευτών.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Course - NVIDIA GPU Programming - Extended
Machine Translated