kokkos/kokkos-kernels

Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels

What it solves

Kokkos Kernels provides a set of high-performance, portable math kernels for linear algebra and graph operations. It solves the problem of writing complex computational kernels (like sparse matrix multiplication) that can run efficiently across different hardware architectures without requiring the developer to rewrite the code for each specific device.

How it works

Built on the Kokkos shared-memory parallel programming model, the library implements "local" computational kernels—meaning they operate within a single MPI process or without MPI entirely. It separates public interfaces from internal implementations, allowing the library to use full specializations of template parameters. This approach reduces build times and improves compiler optimization by precompiling kernels for specific data types.

Who it’s for

It is designed for developers of parallel linear algebra libraries (such as Tpetra) or application developers who need high-performance math operations on shared-memory systems.

Highlights

  • Linear Algebra Support: Includes dot products, norms, AXPY-like vector updates, and sparse matrix-vector/matrix-matrix multiplication.
  • Graph Operations: Provides kernels for graph coloring and Gauss-Seidel with coloring.
  • Performance Portability: Leverages Kokkos to ensure code runs efficiently on various hardware backends.
  • Flexible Integration: Can be used as a standalone library or as a building block for larger parallel frameworks.

Related

  • Project
  • Project
  • Project
  • Project
  • Project