Schița de curs
Introducere
Înțelegerea fundamentelor metodologiei de calcul eterogen
De ce calcul paralel? Înțelegerea necesității calculului paralel
Procesoare Multi-Core - Arhitectură și proiectare
Introducere în fire de execuție, noțiuni de bază și concepte fundamentale ale programării paralele
Înțelegerea proceselor fundamentale de optimizare a software-ului pentru GPU
OpenMP - Un standard pentru programarea paralelă bazată pe directive
Exerciții practice / Demonstrație a diverselor programe pe mașini multicore
Introducere în calculul pe GPU
GPU-uri pentru calcul paralel
Modelul de programare a GPU-urilor
Exerciții practice / Demonstrație a diverselor programe pe GPU
SDK, toolkit și configurarea mediului pentru GPU
Lucrul cu diverse biblioteci
Demonstrație a GPU-urilor și a uneltelor cu programe de exemplu și OpenACC
Înțelegerea modelului de programare CUDA
Învățarea arhitecturii CUDA
Explorarea și configurarea mediilor de dezvoltare CUDA
Lucrul cu API-ul de runtime CUDA
Înțelegerea modelului de memorie CUDA
Explorarea caracteristicilor suplimentare ale API-ului CUDA
Acces eficient la memoria globală în CUDA: Optimizarea memoriei globale
Optimizarea transferurilor de date în CUDA folosind fluxuri CUDA
Utilizarea memoriei partajate în CUDA
Înțelegerea și utilizarea operațiunilor și instrucțiunilor atomice în CUDA
Studiu de caz: Procesare de bază a imaginilor digitale cu CUDA
Lucrul cu programarea multi-GPU
Profilare avansată a hardware-ului și eșantionare pe NVIDIA / CUDA
Utilizarea API-ului CUDA Dynamic Parallelism pentru lansarea dinamică a kernel-urilor
Rezumat și concluzii
Cerințe
- Programare în C
- Linux GCC
Mărturii (1)
Energia și umorul instrucționarului.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Curs - NVIDIA GPU Programming - Extended
Tradus de catre o masina