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

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

Εισαγωγή

  • Τι είναι το ROCm;
  • Τι είναι η HIP;
  • ROCm έναντι CUDA έναντι OpenCL
  • Επισκόπηση χαρακτηριστικών και αρχιτεκτονικής των ROCm και HIP
  • ROCm για Windows έναντι ROCm για Linux

Εγκατάσταση

  • Εγκατάσταση του ROCm σε Windows
  • Επαλήθευση της εγκατάστασης και έλεγχος της συμβατότητας της συσκευής
  • Ενημέρωση ή απεγκατάσταση του ROCm σε Windows
  • Αντιμετώπιση συνήθων προβλημάτων εγκατάστασης

Ξεκινώντας

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

API του ROCm

  • Χρήση του API του ROCm στο πρόγραμμα κεντρικού υπολογιστή
  • Αναζήτηση πληροφοριών και δυνατοτήτων συσκευής
  • Εκχώρηση και αποδέσμευση μνήμης συσκευής
  • Αντιγραφή δεδομένων μεταξύ κεντρικού υπολογιστή και συσκευής
  • Εκκίνηση πυρήνων και συγχρονισμός νημάτων
  • Διαχείριση σφαλμάτων και εξαιρέσεων

Γλώσσα HIP

  • Χρήση της γλώσσας HIP στο πρόγραμμα συσκευής
  • Σύνταξη πυρήνων που εκτελούνται στην GPU και επεξεργάζονται δεδομένα
  • Χρήση τύπων δεδομένων, προσδιοριστικών, τελεστών και εκφράσεων
  • Χρήση ενσωματωμένων συναρτήσεων, μεταβλητών και βιβλιοθηκών

Μοντέλο Μνήμης ROCm και HIP

  • Χρήση διαφορετικών χώρων μνήμης, όπως καθολική, κοινόχρηστη, σταθερή και τοπική
  • Χρήση διαφορετικών αντικειμένων μνήμης, όπως δείκτες, πίνακες, υφές και επιφάνειες
  • Χρήση διαφορετικών τρόπων πρόσβασης μνήμης, όπως μόνο για ανάγνωση, μόνο για εγγραφή, ανάγνωσης-εγγραφής κ.λπ.
  • Χρήση μοντέλου συνέπειας μνήμης και μηχανισμών συγχρονισμού

Μοντέλο Εκτέλεσης ROCm και HIP

  • Χρήση διαφορετικών μοντέλων εκτέλεσης, όπως νήματα, μπλοκ και πλέγματα
  • Χρήση συναρτήσεων νημάτων, όπως hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x κ.λπ.
  • Χρήση συναρτήσεων μπλοκ, όπως __syncthreads, __threadfence_block κ.λπ.
  • Χρήση συναρτήσεων πλέγματος, όπως hipGridDim_x, hipGridSync, ομάδες συνεργασίας (cooperative groups) κ.λπ.

Αποσφαλμάτωση

  • Αποσφαλμάτωση προγραμμάτων ROCm και HIP σε Windows
  • Χρήση του αποσφαλματωτή του Visual Studio Code για επιθεώρηση μεταβλητών, σημείων διακοπής, στοίβας κλήσεων κ.λπ.
  • Χρήση του ROCm Debugger για αποσφαλμάτωση προγραμμάτων ROCm και HIP σε συσκευές AMD
  • Χρήση του ROCm Profiler για ανάλυση προγραμμάτων ROCm και HIP σε συσκευές AMD

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

  • Βελτιστοποίηση προγραμμάτων ROCm και HIP σε Windows
  • Χρήση τεχνικών συνένωσης (coalescing) για βελτίωση της απόδοσης μνήμης
  • Χρήση τεχνικών προσωρινής αποθήκευσης (caching) και προφόρτωσης (prefetching) για μείωση της καθυστέρησης μνήμης
  • Χρήση τεχνικών κοινόχρηστης και τοπικής μνήμης για βελτιστοποίηση της πρόσβασης μνήμης και του εύρους ζώνης
  • Χρήση εργαλείων καταγραφής προφίλ (profiling) για μέτρηση και βελτίωση του χρόνου εκτέλεσης και της αξιοποίησης πόρων

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

Απαιτήσεις

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

Κοινό-στόχος

  • Προγραμματιστές που επιθυμούν να μάθουν πώς να εγκαθιστούν και να χρησιμοποιούν το ROCm σε Windows για να προγραμματίσουν κάρτες γραφικών AMD και να αξιοποιήσουν τον παραλληλισμό τους
  • Προγραμματιστές που επιθυμούν να γράφουν κώδικα υψηλής απόδοσης και κλιμακωσιμότητας που μπορεί να εκτελείται σε διαφορετικές συσκευές AMD
  • Προγραμματιστές που επιθυμούν να εξερευνήσουν τις λεπτομέρειες χαμηλού επιπέδου του προγραμματισμού GPU και να βελτιστοποιήσουν την απόδοση του κώδικά τους

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


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

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

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