Skip to main content
Ctrl+K

Ginkgo

  • Getting Started
  • User Guide
  • API Reference
  • Examples
  • Integrations
  • Community
stable develop
  • GitHub
  • Getting Started
  • User Guide
  • API Reference
  • Examples
  • Integrations
  • Community
stable develop
  • GitHub

Section Navigation

  • Tutorials
    • Poisson on CPU
    • Poisson on GPU
    • Heat equation on a distributed grid
  • How-To Guides
    • Using Ginkgo
      • Switch executor
      • Move data between executors
      • Zero-copy from application memory
      • Read and write matrices
      • Pick a solver / preconditioner pair
      • Configure stopping criteria
      • Log convergence and timings
      • Configure solvers via JSON
      • Use an existing MPI communicator
      • Assemble a distributed matrix
      • Tune a sparse direct solve
      • Use a batched solver
      • Mixed and multi-precision solvers and preconditioners
      • Build a mixed-precision kernel with accessors
      • Integrate ProfilerHook with Caliper
    • Contributing to Ginkgo
      • Set up a development environment
      • Speed up rebuilds
      • Add a new kernel
      • Add a new matrix format
      • Add a new iterative solver
      • Add a new preconditioner
      • Add a backend extension
      • Write tests
      • Run the benchmark suite
      • Submit a pull request
  • Concepts
    • The Executor model
      • Reference executor
      • OpenMP executor
      • CUDA executor
      • HIP executor
      • DPC++ executor
    • LinOp and composition
    • Memory ownership and gko::array
      • Views and zero-copy wrapping
    • Matrix data and assembly
    • Matrix formats — an overview
      • CSR (Compressed Sparse Row)
      • COO (Coordinate)
      • ELL (ELLPACK)
      • Sellp (Slice-ELLPACK)
      • Hybrid (ELL + COO overflow)
      • Fbcsr (Fixed-Block CSR)
      • SparsityCsr (sparsity-pattern only)
    • Accessors
    • Reordering and permutations
      • RCM (Reverse Cuthill–McKee)
      • AMD (Approximate Minimum Degree)
      • MC64 (matching and scaling)
      • Nested dissection
      • ScaledReordered
    • Solvers — taxonomy
      • CG (Conjugate Gradient)
      • GMRES
      • BiCGSTAB
      • FCG (Flexible Conjugate Gradient)
      • IR (Iterative Refinement)
      • GCR (Generalised Conjugate Residual)
      • CGS (Conjugate Gradient Squared)
      • IDR(s) — Induced Dimension Reduction
      • Multigrid
        • Pgm — parallel graph match
        • FixedCoarsening — user-specified coarse rows
      • Direct (LU / Cholesky)
    • Preconditioners — taxonomy
      • Jacobi (scalar and block)
      • ILU family (ILU, ParILU, ParILUT)
      • IC family (IC, ParIC, ParICT)
      • ISAI (Incomplete Sparse Approximate Inverse)
      • AMG (algebraic multigrid as preconditioner)
    • Stopping criteria
    • Logging and observability
    • Configuration from JSON files
    • Mixed-precision design
    • Distributed computing — overview
      • Partitions and index maps
      • Communication primitives
      • The MPI layer
      • Collective communicators
        • Dense communicator
        • Neighborhood communicator
      • RowGatherer and RowScatterer
      • Distributed solvers and preconditioners
    • Batched solvers — overview
      • Batched CG
      • Batched BiCGSTAB
      • Batched convergence logger
    • Extensions — taxonomy
      • Kokkos interop
      • cuDSS direct solver
  • User Guide
  • How-To Guides
  • Contributing to Ginkgo

Contributing to Ginkgo#

Recipes for adding new functionality to Ginkgo and getting your changes merged. These pages assume you can already build Ginkgo from source — if not, start with Build options.

  • Set up a development environment
  • Speed up rebuilds
  • Add a new kernel
  • Add a new matrix format
  • Add a new iterative solver
  • Add a new preconditioner
  • Add a backend extension
  • Write tests
  • Run the benchmark suite
  • Submit a pull request

© Copyright 2026, The Ginkgo authors.

Created using Sphinx 7.4.7.

Built with the PyData Sphinx Theme 0.17.1.