Schița de curs
Introducere
Înțelegerea fundamentelor metodologiei de calcul eterogen
De ce calculul paralel? Înțelegerea necesității calculului paralel
Procesoare multi-core - Arhitectură și design
Introducere în fire de execuție, noțiuni de bază și concepte de bază 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 / Demonstrarea diverselor programe pe mașini multi-core
Introducere în calculul pe GPU
GPU-uri pentru calcul paralel
Modelul de programare a GPU-urilor
Exerciții practice / Demonstrarea diverselor programe pe GPU
SDK, toolkit și instalarea mediului pentru GPU
Lucrul cu diverse biblioteci
Demonstrarea GPU-urilor și instrumentelor 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
Accesarea eficientă a memoriei globale î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: Procesarea de bază a imaginilor digitale cu CUDA
Lucrul cu programarea multi-GPU
Profilarea și eșantionarea avansată a hardware-ului 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