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

Εισαγωγή

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

Επισκόπηση των ιδιοτήτων και της αρχιτεκτονικής CUDA

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

Ρυθμίζοντας το Περιβάλλον Διαμόρφωσης

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

Βασικές Εννοίες Παράλληλου Προγραμματισμού

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

Λειτουργία με τον παράγωγο Numba

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

Δημιουργία Εξατομικευμένου CUDA Kernel

  • Γράφοντας και αναδημοσιεύσει βασικού kernel
  • Χρήση threads για στοιχειώδη λειτουργίες
  • Διαχείριση διαστάσεων grid και block

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

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

Προχωρημένα Θέματα στην GPU Acceleration

  • Μνήμη shared και συγχρονισμός
  • Χρήση streams για ασύνεχη εκτέλεση
  • Βασικά προσαρμογές multi-GPU programming

Μετατροπή Εφαρμογών CPU σε GPU

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

Διαπίστωση και Αποκατάσταση

  • Αποσφαλίζοντας CUDA applications
  • Κοινές λάθη και τρόποι αποκατάστασης
  • Εργαλεία και τεχνικές για δοκιμή και επαλήθευση

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

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

Απαιτήσεις

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

Ακροατήριο

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

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


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

Σχόλια (1)

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

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