GPU-accelerated computing drives current scientific research. Writing fast numeric algorithms for GPUs offers high application performance by offloading compute-intensive portions of the code to the GPU. The course will cover basic aspects of GPU architectures and programming. Focus is on the usage of the directive-based OpenACC programming model which allows for portable application development. Examples of increasing complexity will be used to demonstrate optimization and tuning of scientific applications.
Topics covered will include:
- Introduction to GPU/Parallel computing
- Programming model OpenACC
- Interoperability of OpenACC with GPU libraries (like cuBLAS and cuFFT) and CUDA
- Multi-GPU Programming with MPI and OpenACC
- Tools for debugging and profiling
- Performance optimization
The course consists of lectures and interactive hands-on sessions in C or Fortran (the attendee’s choice).