Mulțumim pentru trimiterea solicitării! Un membru al echipei noastre vă va contacta în curând.
Mulțumim pentru trimiterea rezervării! Un membru al echipei noastre vă va contacta în curând.
Durata 8 ore
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