GPU Programming Courses

NHR@FAU offers a broad range of GPU programming courses, from first-contact introductions to CUDA and high-level programming models all the way to advanced multi-GPU scaling and performance engineering with NVIDIA’s profiling tools. Courses are developed and maintained by NHR@FAU staff and regularly updated to reflect current hardware and software.

  • Choosing GPU Programming Approaches
    Overview of common GPU programming approaches – CUDA and HIP, OpenMP and OpenACC offloading, SYCL, Kokkos, Thrust, and standard C++ parallel algorithms – to help practitioners choose the right tool for their application.
  • Fundamentals of Accelerated Computing with Modern CUDA C++
    Introduces GPU acceleration of C++ applications using modern CUDA features, parallel algorithms, and CUDA streams.
  • Fundamentals of Accelerated Computing with OpenMP and Kokkos
    One-day course combining an introduction to GPU programming with OpenMP offloading and the Kokkos performance-portability library.
  • GPU Performance Analysis
    Condensed two-hour GPU performance analysis module for integration into summer schools and other larger events.
  • GPU Performance Engineering
    Introduces NVIDIA’s profiling tools together with roofline and resource-based performance models to identify, quantify, and resolve GPU performance bottlenecks.
  • Introduction to CUDA C/C++
    Hands-on introduction to GPU programming with CUDA C/C++, covering the programming model, porting strategies, GPU architecture, and optimization patterns using interactive Jupyter notebooks.
  • Scaling CUDA-Accelerated Applications
    Advanced course on scaling CUDA-accelerated applications from single-node multi-GPU to multi-node deployments.

For an overview of all NHR@FAU courses, visit the course overview page.