This repository contains tutorials for the Kokkos C++ programming model (github.com/kokkos/kokkos).
We are currently running The Kokkos Lectures - an extended version of our Intro-Full Tutorial, spanning 8 modules. For information on that, Slides and Recordings visit: The Kokkos Lectures Wiki
Tutorials in the Intro-Short directory cover
- simple data parallel patterns and policies
- multidimensional array views
- execution and memory spaces
Tutorials in the Intro-Full directory cover
- simple data parallel patterns and policies
- multidimensional array views
- execution and memory spaces
- thread safety and atomic operations
- hierarchical data parallel patterns
All the tutorial folders can be built using CMake.
CMake can build against an installed Kokkos library or download one automatically using FetchContent
.
Without any Kokkos already installed, from an exercise directory, one can run the following:
cmake -B build_dir # -DKokkos_* options
cmake --build build_dir
Kokkos options are described in CMake options.
For example, OpenMP CPU exercises can be built as:
cmake -B build_openmp -DKokkos_ENABLE_OPENMP=ON
cmake --build build_openmp
On Mac, if OpenMP is not available, one can use the Threads backend:
cmake -B build_threads -DKokkos_ENABLE_THREADS=ON
cmake --build build_threads
For a NVIDIA gpu, using gpu arch autodetection:
cmake -B build_cuda -DKokkos_ENABLE_CUDA=ON
cmake --build build_cuda
To pass an already installed Kokkos library, you can use classical CMake variables,
such as Kokkos_ROOT
, or CMAKE_PREFIX_PATH
.