Ευχαριστούμε που στάλθηκε η αποσαφήνισή σας! Ένα μέλος της ομάδου μας θα επικοινωνήσει μαζί σας σύντομα.
Ευχαριστούμε για την εκδήλωση κράτησης! Ένας από τους συνεργάτες μας θα επικοινωνήσει μαζί σας σύντομα.
Εξέλιξη Κομματιού
Εισαγωγή
- Τι είναι το OpenACC;
- OpenACC έναντι OpenCL έναντι CUDA έναντι SYCL
- Επισκόπηση των χαρακτηριστικών και της αρχιτεκτονικής του OpenACC
- Ρύθμιση του περιβάλλοντος ανάπτυξης
Ξεκινώντας
- Δημιουργία ενός έργου OpenACC στο Visual Studio Code
- Εξερεύνηση της δομής του έργου και των αρχείων
- Μεταγλώττιση και εκτέλεση του προγράμματος
- Εμφάνιση εξόδου με printf και fprintf
Οδηγίες και Ρήτρες OpenACC
- Κατανόηση των οδηγιών και των ρητρών OpenACC
- Χρήση οδηγιών parallel για τη δημιουργία παράλληλων περιοχών
- Χρήση οδηγιών kernels για παραλληλισμό που διαχειρίζεται ο μεταγλωττιστής
- Χρήση οδηγιών loop για παραλληλοποίηση βρόχων
- Διαχείριση μεταφοράς δεδομένων με οδηγίες data
- Συγχρονισμός δεδομένων με οδηγίες update
- Βελτίωση επαναχρησιμοποίησης δεδομένων με οδηγίες cache
- Δημιουργία συναρτήσεων συσκευής με οδηγίες routine
- Συγχρονισμός γεγονότων με οδηγίες wait
OpenACC API
- Κατανόηση του ρόλου του API OpenACC
- Ανάκτηση πληροφοριών και δυνατοτήτων συσκευής
- Ορισμός αριθμού και τύπου συσκευής
- Χειρισμός σφαλμάτων και εξαιρέσεων
- Δημιουργία και συγχρονισμός γεγονότων
Βιβλιοθήκες και Διαλειτουργικότητα OpenACC
- Κατανόηση των βιβλιοθηκών και της διαλειτουργικότητας OpenACC
- Χρήση μαθηματικών βιβλιοθηκών, βιβλιοθηκών τυχαίων αριθμών και μιγαδικών
- Ενσωμάτωση με άλλα μοντέλα (CUDA, OpenMP, MPI)
- Ενσωμάτωση με βιβλιοθήκες GPU (cuBLAS, cuFFT)
Εργαλεία OpenACC
- Κατανόηση των εργαλείων OpenACC στην ανάπτυξη
- Ανάλυση επιδόσεων και εκσφαλμάτωση προγραμμάτων OpenACC
- Ανάλυση επιδόσεων με PGI Compiler, NVIDIA Nsight Systems, Allinea Forge
Βελτιστοποίηση
- Παράγοντες που επηρεάζουν την απόδοση των προγραμμάτων OpenACC
- Βελτιστοποίηση τοπικότητας δεδομένων και μείωση μεταφορών
- Βελτιστοποίηση παραλληλισμού βρόχων και συγχώνευσης
- Βελτιστοποίηση παραλληλισμού πυρήνων και συγχώνευσης
- Βελτιστοποίηση διανυσματοποίησης και αυτόματης ρύθμισης
Σύνοψη και Επόμενα Βήματα
Απαιτήσεις
- Κατανόηση της γλώσσας C/C++ ή Fortran και των εννοιών παράλληλου προγραμματισμού
- Βασικές γνώσεις αρχιτεκτονικής υπολογιστών και ιεραρχίας μνήμης
- Εμπειρία με εργαλεία γραμμής εντολών και επεξεργαστές κώδικα
Κοινό
- Προγραμματιστές που επιθυμούν να μάθουν πώς να χρησιμοποιούν το OpenACC για να προγραμματίζουν ετερογενείς συσκευές και να εκμεταλλεύονται τον παραλληλισμό τους
- Προγραμματιστές που επιθυμούν να γράφουν φορητό και κλιμακούμενο κώδικα που μπορεί να εκτελείται σε διαφορετικές πλατφόρμες και συσκευές
- Προγραμματιστές που επιθυμούν να εξερευνήσουν τις υψηλού επιπέδου πτυχές του ετερογενούς προγραμματισμού και να βελτιστοποιήσουν την παραγωγικότητα του κώδικά τους
28 Ώρες