Schița de curs

Introducere

  • Ce este programarea GPU?
  • De ce să folosim CUDA cu Python?
  • Concepte cheie: Fire, Blocuri, Grile

Prezentare generală a caracteristicilor și arhitecturii CUDA

  • Arhitectura GPU vs CPU
  • Înțelegerea SIMT (Single Instruction, Multiple Threads)
  • Modelul de programare CUDA

Configurarea mediului de dezvoltare

  • Instalarea CUDA Toolkit și a driverelor
  • Instalarea Python și Numba
  • Configurarea și verificarea mediului

Fundamentele programării paralele

  • Introducere în execuția paralelă
  • Înțelegerea firelor și ierarhiilor de fire
  • Lucrul cu warps și sincronizare

Lucrul cu compilatorul Numba

  • Introducere în Numba
  • Scrierea nucleelor CUDA cu Numba
  • Înțelegerea decoratorilor @cuda.jit

Construirea unui nucleu CUDA personalizat

  • Scrierea și lansarea unui nucleu de bază
  • Utilizarea firelor pentru operații element-wise
  • Gestionarea dimensiunilor grilei și blocurilor

Gestionarea memoriei

  • Tipuri de memorie GPU (globală, partajată, locală, constantă)
  • Transferul de memorie între host și dispozitiv
  • Optimizarea utilizării memoriei și evitarea gâturilor de stragul

Subiecte avansate în accelerarea GPU

  • Memorie partajată și sincronizare
  • Utilizarea stream-urilor pentru execuție asincronă
  • Bazele programării multi-GPU

Conversia aplicațiilor bazate pe CPU în GPU

  • Profilarea codului CPU
  • Identificarea secțiunilor paralelizabile
  • Portarea logicii în nuclee CUDA

Depanare

  • Depanarea aplicațiilor CUDA
  • Erori comune și cum să le rezolvi
  • Instrumente și tehnici pentru testare și validare

Rezumat și pași următori

  • Recapitularea conceptelor cheie
  • Bune practici în programarea GPU
  • Resurse pentru învățare continuă

Cerințe

  • Experiență în programarea Python
  • Experiență cu NumPy (ndarrays, ufuncs, etc.)

Publicul țintă

  • Dezvoltatori
 14 Ore

Numărul de participanți


Pret per participant

Mărturii (1)

Cursuri viitoare

Categorii înrudite