Fundamentals of Accelerated Computing with Kokkos

Kokkos is a modern C++ library for performance-portable parallel programming. It abstracts over different parallel backends (CUDA, HIP, SYCL, OpenMP) so that a single source code runs efficiently across diverse hardware – from multicore CPUs to GPUs of different vendors – without modification. This hands-on course introduces the Kokkos programming model, its data structures and parallel execution patterns, and shows how to profile Kokkos applications and use the Kokkos Kernels library for common linear algebra operations. Basic C++ competency is required, but no prior knowledge of Kokkos or GPU programming is assumed.

Level: Beginner

Language: English

Price and Eligibility: Refer to the registration page for each event (generally free of charge for members of academia from Europe).

Knowledge

  • Basic C++ competency, including familiarity with variable types, loops, conditional statements, functions, and array manipulations
  • No previous knowledge of Kokkos programming is assumed

Technical

  • A modern web browser (for JupyterHub access to NHR@FAU’s HPC clusters)

After completing this course, you will be able to:

  • Explain the Kokkos programming model and its core abstractions: execution spaces, memory spaces, execution patterns, and execution policies
  • Build Kokkos and compile Kokkos applications for different backends
  • Manage data with Kokkos Views, host mirrors, and deep copies
  • Express parallelism with parallel_for and parallel_reduce using range, multi-dimensional range, and team policies
  • Profile Kokkos applications with Kokkos Tools
  • Use Kokkos Kernels for common linear algebra operations

  • Kokkos programming model: host/device model, execution and memory spaces
  • Installation and first program
  • Kokkos Views: memory spaces, mirrors, and deep_copy
  • Execution patterns: parallel_for, parallel_reduce, RangePolicy, MDRangePolicy, and TeamPolicy
  • Performance and profiling with Kokkos Tools
  • Kokkos Kernels: AXPY, GEMV, and dot products

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