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

Εισαγωγή

  • Τι είναι ο προγραμματισμός GPU;
  • Γιατί να χρησιμοποιήσετε CUDA με Python;
  • Βασικά εννοιών: Threads, Blocks, Grids

Εξονυχιστική Περίληψη των Φυσικότητων και της Αρχιτεκτονικής CUDA

  • Αρχιτεκτονική GPU απέναντι σε CPU
  • Κατανόηση SIMT (Single Instruction, Multiple Threads)
  • Μοντέλο προγραμματισμού CUDA

Ρύθμιση του Περιβάλλοντος Ανάπτυξης

  • Εγκατάσταση CUDA Toolkit και drivers
  • Εγκατάσταση Python και Numba
  • Ρύθμιση και επιβεβαίωση του περιβάλλοντος

Βασικά Θέματα Παράλληλου Προγραμματισμού

  • Εισαγωγή στην παράλληλη εκτέλεση
  • Κατανόηση threads και ιεραρχίας threads
  • Εργασία με warps και συγχρονισμό

Εργασία με τον Παράγωγο Numba

  • Εισαγωγή στον Numba
  • Γράφοντας CUDA kernels με Numba
  • Κατανόηση @cuda.jit διακριτικών τελείων

Δημιουργία Περιβάλλοντος Δοκιμής CUDA

  • Γράφοντας και κινώντας ένα βασικό περιβάλλον δοκιμής
  • Χρησιμοποιία threads για εφαρμογές element-wise
  • Διαχείριση διαστάσεων grid και block

Διαχείριση Μνήμης

  • Τύποι μνήμης GPU (global, shared, local, constant)
  • Μεταφορά μνήμης από host και device
  • Εξυγίανση χρήσης μνήμης και αποφυγή τυχόν μπλόκ

Προ/filepathεζα Θέματα στην GPU Acceleration

  • Συμπαραλληλισμός και συγχρονισμός μνήμης
  • Χρησιμοποίηση ροών για ασύνχρονη εκτέλεση
  • Βασικά προγραμματισμού Multi-GPU

Μετατροπή Applications βασισμένων σε CPU σε GPU

  • Προφίλ κώδικα CPU
  • Αναγνώριση παράλληλων τμημάτων
  • Μεταφορά λογικής σε CUDA kernels

Αποκατάσταση

  • Debuggering CUDA applications
  • Συνηθισμένες παρουσιαστικές λαθή και τρόποι διόρθωσής τους
  • Εργαλεία και τεχνικές για το testing και validation

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

  • Επανάληψη βασικών εννοιών
  • Καλές πρακτικές στον GPU programming
  • Πόροι για συνεχή μάθηση

Απαιτήσεις

  • Εμπειρία προγραμματισμού Python
  • Εμπειρία με το NumPy (ndarrays, ufuncs κλπ.)

Ακροατήριο

  • Προγραμματιστές
 14 Ώρες

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


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

Σχόλια (1)

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

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