Schița de curs
Introducere
Înțelegerea elementelor fundamentale ale metodologiei de calcul eterogene
De ce calcul paralel? Înțelegerea necesității de calcul paralel
Procesoare Multi-Core - Arhitectură și Design
Introducere în fire, noțiuni de bază despre fire și concepte de bază ale paralelei Programming
Înțelegerea elementelor fundamentale ale GPU proceselor de optimizare software
OpenMP - Un standard pentru paralele bazate pe directive Programming
Hands on / Demonstrație de diverse programe pe mașini multicore
Introducere în GPU Computing
GPUs pentru calcul paralel
GPU-uri Programming Model
Practic/Demonstrație de diverse programe pe GPU
SDK, set de instrumente și instalarea mediului pentru GPU
Lucrul cu diverse biblioteci
Demonstrație de GPU și Instrumente cu Programe Exemple și OpenACC
Înțelegerea modelului CUDA Programming.
Învățarea arhitecturii CUDA
Explorarea și configurarea mediilor de dezvoltare CUDA
Lucrul cu CUDA Runtime API
Înțelegerea modelului de memorie CUDA
Explorarea funcțiilor suplimentare CUDA API
AccessGing Global Memory Efficiently in CUDA: Global Memory Optimization
Optimizarea transferurilor de date în CUDA utilizând fluxurile CUDA
Utilizarea memoriei partajate în CUDA
Înțelegerea și utilizarea operațiilor și instrucțiunilor atomice în CUDA
Studiu de caz: procesare digitală de bază a imaginilor cu CUDA
Lucrul cu Multi-GPU Programming
Profilare și eșantionare hardware avansată pe NVIDIA / CUDA
Utilizarea API-ului CUDA Dynamic Parallelism pentru lansarea dinamică a kernelului
Rezumat și Concluzie
Cerințe
- C Programming
- Linux GCC