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

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

Εισαγωγή

  • Τι είναι το 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 και να βελτιστοποιήσουν την απόδοση του κώδικά τους
 21 Ώρες

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


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

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

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