GPU Programming basics - PhD course
Registro lezioni 2018
10 Gennaio 2017 - 3 ore:
Introduction to GPU h/w and CUDA programming
- convoluzioni 2D
- 2-batch loading
- bordi
- memoria costante e parametri
- condizioni per tiling e scrittura
- parallel patterns: map/gather/scatter
- parallel pattern: reduction
- parallel pattern: scan
- comparison w.r.t CPU architecture
Slides:
Examplesi:
18 Gennaio 2018 - 3 ore:
Good practices in blocks and threads organization
- Good practices in blocks and threads organization
- 2D CUDA kernels
- 3D CUDA kernels
- CUDA memory hierarchy
- shared, device and constant memory
- Pinned memory - Unified memory
Efficient CUDA programming
- tiling: introduction
- tiling: how to
- synchronization barriers
Lucidi:
Esercizi:
- Modificare il codice di esempio di moltiplicazione tra matrici implementando il tiling
Possibile soluzione:
19 Gennaio 2018 - 3 ore:
Efficient CUDA programming
- phase-based processing
- border checking
Performance considerations
- DRAM burst
- memory coalescing
GPU programming techniques
- atomic instructions
- privatization
- example: histogram computation
Lucidi:
Esercizi:
- -
Possibile soluzione:
25 Gennaio 2018 - 3 ore:
GPU programming techniques
- Parallel patterns: convolution
- 1D convolution
- how to use constant memory
- tiling
- 2D convolution
- 2D convolution tiling
- Tiling performance evaluation
Lucidi:
Esercizi:
- -
Possibile soluzione:
26 Gennaio 2014 - 4 ore - laboratorio
Librerie
- Thrust
- CuBLAS
Esercitazione di laboratorio: convoluzione 2D di immagini
- -
Lucidi:
Esercizi:
Possibile soluzione: