The course focuses on three main questions:
- 1. GPU architecture. Computation and memory organisation of different commercial graphics processors will be introduced. A comparison with conventional CPUs and a presentation of new future GPUs will be given.
- 2. GPU programming with CUDA. CUDA's concepts and how to use them to develop applications for GPUs will be introduced through examples from different areas, such as image processing and scientific computing. Also development tools, such as debuggers and tools to measure performance will be presented.
- 3. GPU programming with GPU libraries and algorithmic packages. Packages for high productivity, for example the Thrust library, OpenACC and cuDNN will be presented. Different packages will be explained through examples from different areas of computer science.
The students will obtain access to the GPU cluster Tegner at PDC if they do not have access to a computer with GPU already.