Welcome to Many Ways to GPU Programming

In this course, you will use a number of different approaches to accelerate an example molecular dynamics application on GPU hardware. The aim is to provide you with a practical understanding of the differences between each approach, the trade-offs involved, and even if multiple approaches might be used in a single codebase.

This course is delivered through a combination of presentations and reinforcement activities, like Multiple Choice Questions and hands-on exercises using Jupyter Notebooks.

The estimated time to complete this course is 4.5 hours.



What you will learn:

  • Understand the differences between CPUs and GPUs.
  • Explore the fundamentals of GPU-accelerated computing.
  • Use NVIDIA Nsight Systems to profile and analyse applications.
  • Write basic programs in C++, C, or Fortran.
  • Apply OpenACC directives within C/C++ and Fortran applications.
  • Use OpenMP directives for GPU-enabled programming.
  • Develop and run CUDA kernels within C/C++ or Fortran applications.
  • Explore approaches for optimising code for GPU architectures.



Prerequisites:

  • Knowledge of a language like C, C++, or Fortran.
Last modified: Tuesday, 21 July 2026, 10:06 AM