Skip to content
Damien L-G edited this page Jan 22, 2024 · 13 revisions

KokkosKernels: Portable Math Kernels for HPC

KokkosKernels provides math kernels for dense and sparse linear algebra as well as graph computations. It has multiple aims:

  • Provide a portable Kokkos bases interface to BLAS, Sparse and Graph kernels for all major HPC platforms.
  • Provide generic implementations of Kernels working with various scalar types and data layouts, going beyond standard types supported by vendor libraries.
  • Provide access to major vendor optimized math libraries.
  • Provide improved performance for kernels where vendor libraries were historically lacking.

KokkosKernels is also part of Trilinos, which comes with the latest release (current master branch of KokkosKernels).

This Wiki documents the available functionality, how to integrate KokkosKernels into your project, and some performance results on some of the major HPC platforms.

Note: The Wiki is a work in progress. 
      Some of the content is not yet available (red links).

This section explains how to buiild and install KokkosKernels and integrate it into your project.

This is the place to go for a fast lookup of syntax. Developers who are familiar with common math libraries such as BLAS, MKL or CuBLAS / CuSparse will find all they need to start using KokkosKernels

Find benchmarks of a range of capabilities from KokkosKernels, including comparison to canonical math libraries on various hardware platforms.


The KokkosKernels library is not the only resource available. In addition to the Kokkos Programming model there are a number of auxiliary projects which could be useful to developers.

Kokkos - the Core library implements a programming model in C++ for writing performance portable applications targeting all major HPC platforms.

Kokkos Tools provide profiling and debugging capabilities which access built-in instrumentation of Kokkos. They make it significantly easier to understand what is going on in a large Kokkos application and thus help you to find errors and performance issues.

This project has extensive Tutorials for Kokkos including hands-on exercises. New Kokkos developers, even with little to no previous parallel programming experience will be taken through the basics of using Kokkos to parallelize applications. There is also a tutorial available for learning the basics of profiling.

KokkosKernels is licensed under standard 3-clause BSD terms of use. For specifics, please refer to the LICENSE file contained in the repository or distribution.


New Developers

Get access to testbeds

Check cm_test_all_sandia to get a list of the HOSTNAME entries and request access to those testbeds.

Building and Testing KokkosKernels

See instructions on the Building page.

Using KokkosKernels Downstream

See instructions on the Using page.

Scripted Testing

See instructions on the test_all_sandia script page.

Pull Request (PR) Submission

See instruction on the Pull request instructions page.

SAND Number SAND2020-6473 W SAND Number SAND2020-2605 W SAND Number SAND2019-9491 W SAND Number SAND2019-3387 W SAND Number SAND2020-6386 W

Clone this wiki locally