Επικοινωνήστε μαζί μας
 Διάρκεια 28 Ώρες

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

Εισαγωγή

  • Τι είναι το 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 για να προγραμματίζουν ετερογενείς συσκευές και να εκμεταλλεύονται τον παραλληλισμό τους
  • Προγραμματιστές που επιθυμούν να γράφουν φορητό και κλιμακούμενο κώδικα που μπορεί να εκτελείται σε διαφορετικές πλατφόρμες και συσκευές
  • Προγραμματιστές που επιθυμούν να εξερευνήσουν τις υψηλού επιπέδου πτυχές του ετερογενούς προγραμματισμού και να βελτιστοποιήσουν την παραγωγικότητα του κώδικά τους

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


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

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

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