Sparse linear algebra · for modern accelerators

High-performance numerical linear algebra, built for accelerators.

One executor, every device

CUDA, HIP, SYCL, OpenMP, and reference CPU — kernels dispatched through a single interface.

Composable solvers

Build CG, GMRES, IR, and BiCGSTAB on top of any preconditioner via the LinOp interface.

Distributed & batched

First-class MPI distributed primitives and batched Krylov for many small systems.

Used in the field

Backend for deal.II, MFEM, NekRS, SUNDIALS — and your code next.

Recent news

All releases →
  • Ginkgo 2.0 on develop Ginkgo 2.0 is being assembled on the develop branch — new API surface, new sparse primitives, and a refreshed distributed-memory stack. These pages render against develop, so what you read here is the in-flight version.
  • Ginkgo 1.11.0 released New sparse matrix-matrix multiplication and addition interface (with a path that reuses sparsity across repeated computations), performance improvements for the distributed SpMV and pipelined CG, and support for ARM, ROCm 7, and CUDA 13.
  • Ginkgo 1.10.0 released Adds gko::bfloat16 as a value type across matrices / solvers / preconditioners, mixed-precision support in the distributed matrix, a new pipelined CG solver for large-scale distributed runs, a Chebyshev iteration solver, and an OpenMP merge-path SpMV.

Citing Ginkgo

Full citation list →

If you use Ginkgo in your research, please cite the canonical reference:

@article{ginkgo-toms-2022,
  title   = {{Ginkgo: A Modern Linear Operator Algebra Framework for High Performance Computing}},
  author  = {Anzt, Hartwig and Cojean, Terry and Flegar, Goran and G\"{o}bel, Fritz and
             Gr\"{u}tzmacher, Thomas and Nayak, Pratik and Ribizel, Tobias and
             Tsai, Yuhsiang Mike and Quintana-Ort{\'\i}, Enrique S.},
  journal = {ACM Transactions on Mathematical Software},
  volume  = {48},
  number  = {1},
  year    = {2022},
  pages   = {1--33},
  doi     = {10.1145/3480935}
}