Course Outline

Εισαγωγή

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

Εγκατάσταση

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

Ξεκινώντας

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

ROCm API

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

Γλώσσα HIP

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

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

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

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

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

Εντοπισμός σφαλμάτων

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

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

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

Περίληψη και Επόμενο Βήμα

Requirements

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

Ακροατήριο

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

Number of participants



Price per participant

Testimonials (1)

Related Courses

Hardware-Accelerated Video Analytics

14 Hours

GPU Programming with OpenCL

28 Hours

GPU Programming with CUDA

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

AMD GPU Programming

28 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Raster and Vector Graphics (Adobe Photoshop, CorelDraw)

28 Hours

Related Categories