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

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

Εισαγωγή

  • Τι είναι το 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 Ώρες

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


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

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

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