Intrati in legatura

Schița de curs

Calcul pe GPU și Arhitectura CUDA

  • Diferențele arhitecturale între CPU și GPU
  • Modelul NVIDIA GPU streaming multiprocessor
  • Scurtă prezentare a modelului de programare CUDA
  • Calcul eterogen și paradigma gazdă-dispozitiv (host-device)

Configurarea Mediului de Dezvoltare CUDA

  • Instalarea CUDA Toolkit 13.x
  • Compilatorul NVCC și fluxul de lucru pentru construirea aplicației (build workflow)
  • Verificarea mediului cu interogări de dispozitiv (device queries)
  • Integrarea în IDE și instrumente de dezvoltare

Scrierea și Lansarea Kernel-urilor CUDA

  • Sintaxa și calificatorii funcțiilor kernel
  • Configurarea lansării și execuția
  • Adăugarea vectorilor și modelele de bază de tip paralelism de date
  • Macrocomenzi pentru verificarea erorilor CUDA

Ierarhia Thread-urilor CUDA și Modelul de Execuție

  • Organizarea Grid, block și thread
  • Indexarea thread-urilor și calcularea ID-ului global
  • Execuția Warp și modelul SIMT (Single Instruction, Multiple Threads)
  • Ocupația și utilizarea resurselor

Arhitectura Gestionării Memoriei GPU

  • Tipuri de memorie: globală, shared (partajată), constantă, registre
  • Alocarea și eliberarea memoriei dispozitivului
  • Transferuri gazdă-dispozitiv și dispozitor-gazdă
  • Memoria shared pentru colaborarea intra-block

Memoria Unificată și Migrația Datelor

  • Modelul de memorie unificată și alocările gestionate
  • Migrația paginilor și paging-ul la cerere
  • Prefetching asincron cu cudaMemPrefetchAsync
  • Sfaturi privind memoria pentru tipurile de acces (access patterns)

Profilarea la Nivel de Sistem cu Nsight Systems

  • Analiza cronologiei (timeline analysis) în Nsight Systems
  • Identificarea punctelor de sincronizare CPU-GPU
  • Vizualizarea execuției kernel-urilor și a transferurilor de memorie
  • Interpretarea datelor de performanță la nivel de sistem

Optimizarea Kernel-urilor cu Nsight Compute

  • Profilarea interactivă a kernelului în Nsight Compute
  • Analiza productivității și lățimii de bandă ale memoriei
  • Utilizarea calculului și statisticile stării warp-urilor
  • Analiză ghidată și reguli de optimizare

Fluxuri Concurente și Operații Asincrone

  • Fluxurile CUDA și fluxul implicit (default stream)
  • Suprapunerea execuției kernel-urilor cu transferurile de date
  • Sincronizarea fluxurilor și evenimentele CUDA
  • Modele de proiectare a pipeline-ului multi-flux

Gestionarea Erorilor și Instrumente de Depanare

  • Codurile de eroare API CUDA și strategiile de recuperare
  • Compute-sanitizer pentru verificarea accesului la memorie
  • cuda-gdb pentru depanarea kernel-urilor
  • Asertiuni și detectarea sincronă a erorilor

Flux de Lucru de Optimizare Bazat pe Profilare

  • Metodologia iterativă de profilare
  • Identificarea și prioritarizarea gâtuiților de performanță
  • Testarea regresiei performanței
  • Documentarea deciziilor de optimizare

Proiect Final de Aplicație Accelerată End-to-End

  • Solicitarea unei soluții complete accelerate cu GPU
  • Integrarea profilării pe tot parcursul dezvoltării
  • Benchmarking și raportare a performanței
  • Considerații de implementare pentru producție

Cerințe

  • Competență de bază în programare C/C++, inclusiv tipuri de variabile, bucle, instrucțiuni condiționale, funcții și manipularea vectorilor (array-uri)
  • Familiaritate cu compilarea și rularea programelor din linia de comandă
  • Nu sunt necesare cunoștințe anterioare despre GPU sau programarea CUDA

Public-Țintă

  • Dezvoltatori și ingineri de software care caută să accelereze aplicațiile C/C++ cu GPU-uri
  • Cercetători științifici și practicieni HPC (High Performance Computing) care trec de la calcul exclusiv pe CPU la calcul eterogen
  • Lideri tehnici care evaluează accelerarea cu GPU pentru sarcini de producție
 8 Ore

Numărul de participanți


Pret per participant

Cursuri viitoare

Categorii înrudite