Course Outline

Εισαγωγή

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

Ξεκινώντας

  • Δημιουργία νέου έργου ROCm χρησιμοποιώντας Visual Studio Κώδικα
  • Εξερεύνηση της δομής και των αρχείων του έργου
  • Μεταγλώττιση και εκτέλεση του προγράμματος
  • Εμφάνιση της εξόδου με χρήση 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, όπως καθολικός, κοινόχρηστος, σταθερός και τοπικός
  • Χρήση αντικειμένων μνήμης ROCm και HIP, όπως δείκτες, πίνακες, υφές και επιφάνειες
  • Χρήση λειτουργιών πρόσβασης μνήμης ROCm και HIP, όπως μόνο για ανάγνωση, μόνο εγγραφή, ανάγνωση-εγγραφή κ.λπ.
  • Χρήση μοντέλου συνοχής μνήμης ROCm και HIP και μηχανισμών συγχρονισμού

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

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

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

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

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

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

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

Requirements

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

Ακροατήριο

  • Προγραμματιστές που επιθυμούν να μάθουν πώς να χρησιμοποιούν τα ROCm και HIP για να προγραμματίσουν τα AMD GPU και να εκμεταλλευτούν τον παραλληλισμό τους
  • Προγραμματιστές που επιθυμούν να γράψουν κώδικα υψηλής απόδοσης και κλιμάκωσης που μπορεί να εκτελεστεί σε διαφορετικές συσκευές AMD
  • Προγραμματιστές που επιθυμούν να εξερευνήσουν τις πτυχές χαμηλού επιπέδου του GPU προγραμματισμού και να βελτιστοποιήσουν την απόδοση του κώδικα τους
 28 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

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Raster and Vector Graphics (Adobe Photoshop, CorelDraw)

28 Hours

Related Categories