În lumea actuală bazată pe date, cererea de putere de calcul depășește rapid ceea ce pot oferi procesoarele tradiționale. Sistemele de calcul de înaltă performanță (HPC) și unitățile de procesare grafică (GPU) au devenit instrumente esențiale pentru abordarea provocărilor științifice, inginerești și de inteligență artificială complexe care necesită paralelism masiv și procesare accelerată. Pe măsură ce industriile și domeniile de cercetare – de la modelarea climatică la genomică, finanțe și IA – continuă să genereze seturi de date din ce în ce mai mari și modele mai sofisticate, capacitatea de a valorifica întregul potențial al hardware-ului modern este o abilitate critică atât pentru studenți, cât și pentru profesioniști.
Despre acest curs
Acest modul, dezvoltat de Politecnico di Torino, introduce în mod cuprinzător tehnicile de programare a unității de procesare grafică (GPU), de rezolvare a problemelor și de calcul de înaltă performanță (HPC). Începe cu concepte fundamentale de programare paralelă și caracteristici paralele C++, continuă cu înțelegerea arhitecturilor GPU NVIDIA moderne și apoi se adâncește în modelul de programare CUDA. Subiectele cheie includ scrierea de kernel-uri CUDA de bază, gestionarea ierarhiei memoriei GPU pentru performanțe optime, gestionarea sincronizării thread-urilor și aplicarea acestor concepte pentru a rezolva problemele clasice de calcul. Cursul pune accentul pe aplicarea practică prin exemple și exerciții practice.
Structura modulului
- Fundamentele calculului paralel
- Introducere în arhitectura GPU
- Fundamentele programării CUDA
- Managementul memoriei CUDA
- Sincronizare și control al execuției
- Studii de caz și alte subiecte
Rezultatele învățării
După finalizarea cu succes a acestui curs, cursanții vor putea:
- Explicați conceptele fundamentale ale calculului paralel și motivația pentru utilizarea GPU-urilor.
- Descrieți componentele cheie, caracteristicile și ierarhia memoriei arhitecturilor GPU NVIDIA moderne.
- Înțelegeți modelul de programare CUDA (Kernels, Threads, Blocks, Grids).
- Scrieți, compilați și executați programe de bază CUDA C++.
- Alocați și transferați eficient date între CPU (gazdă) și GPU (dispozitiv).
- Analizați și optimizați modelele de acces la memoria GPU (coalescing, memorie partajată, conflicte de bancă).
- Implementați sincronizarea corectă între thread-urile unui bloc CUDA, gestionând potențialele condiții de cursă (race conditions).
- Aplicați tehnicile de programare CUDA pentru a implementa soluții paralele pentru problemele de calcul clasice (de exemplu, adunarea vectorială, înmulțirea matricei, suma prefixelor).
- Înțelegeți conceptul de execuție asincronă folosind CUDA Streams.
- Utilizați bibliotecile CUDA de bază și instrumentele de profilare.
Detalii suplimentare
Cursul este dezvoltat în cadrul proiectului RESCHIP4EU, susținut de Programul Europa Digitală al Uniunii Europene. RESCHIP4EU își propune să sprijine excelența învățământului superior din UE în ceea ce privește proiectarea sistemelor integrate într-un mod holistic, de la siliciu prin proiectarea și fabricarea de sisteme pe cip până la platforme și software de aplicație inteligente și critice pentru siguranță. Mai multe informații despre modulul de instruire „Programare GPU” sunt disponibile pe această pagină.
Pe scurt
- Furnizor: Politecnico di Torino, pe platforma de învățare 28DIGITAL, în cadrul proiectului european RESCHIP4EU (Programul Europa Digitală);
- Format: online, în ritm propriu, până la 16 ore; nivel avansat;
- Limba: engleză;
- Cost: gratuit; necesită un cont gratuit pe platforma 28DIGITAL. În practică, sunt utile cunoștințe de C++.
Sursă: conținut european preluat și tradus de pe Digital Skills and Jobs Platform.