Ευχαριστούμε που στάλθηκε η αποσαφήνισή σας! Ένα μέλος της ομάδου μας θα επικοινωνήσει μαζί σας σύντομα.
Ευχαριστούμε για την εκδήλωση κράτησης! Ένας από τους συνεργάτες μας θα επικοινωνήσει μαζί σας σύντομα.
Εξέλιξη Κομματιού
Εισαγωγή
- Τι είναι το 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 Ώρες