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

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

Εισαγωγή

  • Τι είναι το ROCm;
  • Τι είναι το HIP;
  • ROCm εναντίον CUDA εναντίον OpenCL
  • Επισκόπηση των χαρακτηριστικών και της αρχιτεκτονικής των ROCm και HIP
  • Ρύθμιση του Περιβάλλοντος Ανάπτυξης

Ξεκινώντας

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

ROCm API

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

Γλώσσα HIP

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

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

  • Κατανόηση της διαφοράς μεταξύ μοντέλων μνήμης κεντρικού υπολογιστή και συσκευής
  • Χρήση των χώρων μνήμης των ROCm και HIP, όπως global, shared, constant, local
  • Χρήση των αντικειμένων μνήμης των ROCm και HIP, όπως δείκτες, πίνακες, υφές (textures), επιφάνειες (surfaces)
  • Χρήση των τρόπων πρόσβασης μνήμης των ROCm και HIP, όπως read-only, write-only, read-write, κ.λπ.
  • Χρήση του μοντέλου συνέπειας μνήμης και των μηχανισμών συγχρονισμού των ROCm και HIP

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

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

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

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

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

  • Κατανόηση των παραγόντων που επηρεάζουν την απόδοση των προγραμμάτων ROCm και HIP
  • Χρήση τεχνικών coalescing των ROCm και HIP για βελτίωση της απόδοσης μνήμης
  • Χρήση τεχνικών caching και prefetching των ROCm και HIP για μείωση της καθυστέρησης μνήμης
  • Χρήση τεχνικών shared memory και local memory των ROCm και HIP για βελτιστοποίηση των προσβάσεων μνήμης και του εύρους ζώνης
  • Χρήση του profiling και των profiling εργαλείων των ROCm και HIP για μέτρηση και βελτίωση του χρόνου εκτέλεσης και της χρησιμοποίησης πόρων

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

Απαιτήσεις

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

Ακροατήριο

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

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


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

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

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