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.
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