Introduction to CUDA

CUDA, as native programming model of Nividia GPUs, allows very fine-grained control over parallel execution compared to higher level programming models such as OpenMP offloading, which helps to optimize performance.

The module provides an introduction to the programming language CUDA which is used to write fast numeric algorithms for NVIDIA GPUs. Focus is on the basic usage of the language, error handling and understanding kernel functions.

Prerequisites

  • Programming experience in any of C, C++, or Fortran

  • Basic experience in working with a Linux shell (e.g. see here)

  • Basic experience in working with text editors in a shell (e.g. see here)

  • Any knowledge about parallel programming is benefitial but not mandatory

Software setup

Learning outcomes

FIXME

This material is for …

This course is aimed at researchers, engineers, and students who want to learn how to program NVIDIA GPUs using CUDA for high-performance computing workloads.

  • Write and launch CUDA kernels in C/C++ and Fortran

See also

Credit

FIXME

Don’t forget to check out additional course materials from …

License

Note

To module authors: For code you may use any OSI-approved license as mentioned in https://spdx.org/licenses/, such as Apache License 2.0, GNU GPLv3, MIT. Please make sure to update the deed above and LICENSE.code file accordingly.