Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos provides two main capabilities for Trilinos. The first is an abstract programming interface (API) for handling memory and specifying work for shared-memory parallel nodes (the Kokkos Node API). The second is a collection of local (i.e., not distributed) linear algebra classes and the kernels needed to realized their functionality in parallel (the Kokkos Linear Algebra kernels library). In addition to providing basic data structures and kernels, Kokkos also specifies APIs for extension via user-provided kernels (see, e.g., the Kokkos Compressed-Row Sparse API).
Kokkos is typically not used directly in applications, but instead as a significant component in higher-level Trilinos packages, such as Tpetra. The functionality contained here-in has been put in the Kokkos package in order to facilitate code re-use between Trilinos packages and to ease experimentation for kernel researchers.
Kokkos contains a number of classes. They can be categorized as follows:
See Kokkos CUDA Support for instructions on building with support for NVIDIA CUDA GPUs.