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

Εισαγωγή

  • Τι είναι το OpenACC;
  • OpenACC vs OpenCL vs CUDA vs SYCL
  • Γενική περιγραφή των χαρακτηριστικών και της αρχιτεκτονικής OpenACC
  • Ρύθμιση του περιβάλλοντος ανάπτυξης

Έναρξη

  • Δημιουργία ένα project OpenACC στο Visual Studio Code
  • Εξερεύνηση της δομής και των αρχείων του project
  • Τυπώνοντας και τρέχοντας το πρόγραμμα
  • Εμφάνιση εξόδου με printf και fprintf

Διευθύνσεις και ρήτρες OpenACC

  • Κατανόηση των διευθύνσεων και ρητρών OpenACC
  • Χρήση παράλληλων διευθύνσεων για τη δημιουργία παράλληλων περιοχών
  • Χρήση κεντρικών διευθύνσεων για compiler-managed parallelism
  • Χρήση loop directives για την παράλληλη εκτέλεση βρόχων
  • Διαχείριση μεταφοράς δεδομένων με data directives
  • Συγχρονισμός δεδομένων με update directives
  • Βελτίωση της επανάχρησης δεδομένων με cache directives
  • Δημιουργία device functions με routine directives
  • Συγχρονισμός γεγονότων με wait directives

OpenACC API

  • Κατανόηση του ρόλου του OpenACC API
  • Ανάκτηση πληροφοριών και δυνατοτήτων συσκευών
  • Ρύθμιση αριθμού και τύπου συσκευής
  • Διαχείριση λαθών και εξαίρεσεων
  • Δημιουργία και συγχρονισμός γεγονότων

OpenACC Libraries και Interoperability

  • Κατανόηση των βιβλιοθηκών και της interoperability OpenACC
  • Χρήση μαθηματικών, τυχαίων και περίπλοκων βιβλιοθηκών
  • Ενσωμάτωση με άλλους μοdel (CUDA, OpenMP, MPI)
  • Ενσωμάτωση με GPU libraries (cuBLAS, cuFFT)

OpenACC Tools

  • Κατανόηση των εργαλείων OpenACC στο περιβάλλον ανάπτυξης
  • Προφίλ και διαπίστωση προγραμμάτων OpenACC
  • Ανάλυση απόδοσης με PGI Compiler, NVIDIA Nsight Systems, Allinea Forge

Βελτιστοποίηση

  • Παράγοντες που επηρεάζουν την απόδοση των προγραμμάτων OpenACC
  • Βελτιστοποίηση της τοπικότητας δεδομένων και μείωση μεταφορών
  • Βελτιστοποίηση της παράλληλης εκτέλεσης βρόχων και fusion
  • Βελτιστοποίηση της παράλληλης εκτέλεσης kernel και fusion
  • Βελτιστοποίηση vectorization και auto-tuning

Σύνοψη και Επόμενα βήματα

Απαιτήσεις

  • Κατανόηση της γλώσσας C/C++ ή Fortran και των εννοιών παράλληλου προγραμματισμού
  • Βασική γνώση υπολογιστικής αρχιτεκτονικής και της ιεραρχίας μνήμης
  • Εμπειρία στα εργαλεία γραμμής εντολών και συντακτές κώδικα

Αντικείμενο

  • Διαμορφωτές που θέλουν να μάθουν πώς να χρησιμοποιήσουν το OpenACC για την προγραμματισμό ολοκληρωμένων συσκευών και να αξιοποιήσουν τον παράλληλο χαρακτήρα τους
  • Διαμορφωτές που θέλουν να γράψουν μεταφορτώσιμο και μαζικό πρόγραμμα που να λειτουργεί σε διάφορες πλατφόρμες και συσκευές
  • Προγραμματιστές που θέλουν να εξερευνήσουν τα υψηλά επίπεδα του ολοκληρωμένου προγραμματισμού και να βελτιώσουν την απόδοση του κώδικά τους
 28 Ώρες

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


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

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

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