The course focuses on three main topics:
-
GPU architecture. The computing and memory systems of different commercial GPUs are introduced. A comparison with conventional CPU and presentation of new upcoming GPUs will be given.
-
GPU programming with CUDA. The CUDA concepts and how to use them to develop applications for GPU are introduced by making examples from different fields, such as image processing or scientific computing. Also development tools, such debuggers and performance monitoring tools are presented.
-
GPU programming with GPU libraries and frameworks. High-productivity computing frameworks, among which the Thrust library, OpenACC and cuDNN, are presented. Different frameworks will be explained by providing examples from different computer science areas.
Students will be given access to the GPU cluster, Tegner, at PDC if they do not have access to a computer with GPU.