Chameleon

janv. 5, 2026 · 3 min. de lecture
projects

Chameleon: A dense linear algebra solver

pipeline status
coverage report

Chameleon is a scientific C library providing high-performance routines to solve dense linear systems (general, symmetric positive definite, least squares) using LU, Cholesky, QR and LQ factorizations, as well as singular value (SVD) and eigenvalue (EVD) decompositions. Real and complex arithmetic are supported in both single and double precision.

Chameleon is designed to fully exploit modern heterogeneous and distributed supercomputers. Relying on a tile matrix layout, algorithms are expressed as task graphs and executed dynamically by innovative runtime systems:

  • StarPU (enabling multi-GPU acceleration through cuBLAS or hipBLAS, and distributed-memory clusters with MPI),
  • PaRSEC,
  • OpenMP,
  • QUARK.

Get Chameleon

The latest official release is v1.4.0 (January 2026). All releases, source archives, and changelogs are available on GitLab Releases.

To use the latest development version of Chameleon, clone the repository with submodules:

# Clone with submodules
git clone --recursive https://gitlab.inria.fr/solverstack/chameleon.git
cd chameleon

Available Features & Algorithms

  • Matrix factorizations and linear solvers:
    • Cholesky: POTRF, POTRI, POTRS
    • QR / LQ: GEQRF, GELQF, ORMQR, UNMQR
    • LU factorization: GETRF, GESV, GETRS (with tile and partial pivoting)
    • Singular Value & Eigenvalue Decomposition: GESVD, SYEV, HEEV
    • BLAS-3 operations: GEMM (including A-stationary algorithms), SYMM, HEMM, TRSM, SYRK, HERK
  • Precision support: Single (s), Double (d), Complex single (c), Complex double (z).
  • Supported Architectures:
    • Multicore CPUs (x86_64, ARM, PowerPC)
    • NVIDIA GPUs via cuBLAS / TCUDA
    • AMD GPUs via HIP / hipBLAS
    • Distributed-memory clusters via MPI (using 2D block-cyclic tile distributions)
  • High-Level Interfaces: C, Fortran 90, Python.

Documentation

Comprehensive online documentation is available at solverstack.gitlabpages.inria.fr/chameleon.

Installation

Build and install with CMake

Chameleon can be built using CMake (minimum version 3.12):

  • BLAS and LAPACK (e.g. OpenBLAS, Intel MKL)
  • HWLOC
  • StarPU (version >= 1.4 for multi-GPU & MPI), PaRSEC, or OpenMP
  • CUDA / CuBLAS or HIP / hipBLAS (optional, for GPU acceleration)
  • MPI (optional, for distributed memory)
  • Python (optional, for code generation and bindings)
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install \
         -DCHAMELEON_USE_MPI=ON \
         -DCHAMELEON_USE_CUDA=ON \
         -DCHAMELEON_SCHED_STARPU=ON
make -j
make install

Chameleon is also available through package managers:

  • Guix-HPC: guix install chameleon
  • Spack: spack install chameleon
  • Homebrew: brew install chameleon

Get Involved

Reporting an issue

Users are encouraged to use the issue tracker to report bugs, suggest features, or ask questions: https://gitlab.inria.fr/solverstack/chameleon/-/issues

Contributions

https://gitlab.inria.fr/solverstack/chameleon/-/blob/master/CONTRIBUTING.md

Authors

The development of Chameleon is conducted within the SolverStack and TOPAL / Storm research teams at Inria Bordeaux Sud-Ouest, Bordeaux University, CNRS (LaBRI), and Bordeaux INP, in close collaboration with the MORSE associate team (ICL University of Tennessee, KAUST):

  • Mathieu Faverge, PI
  • Florent Pruvost
  • Samuel Thibault
  • Philippe Virouleau
  • Alycia Lisito
  • Pierre Ramet
  • and the MORSE / SolverStack contributors.

License

Chameleon is distributed under the CeCILL-C open-source license (BSD-compatible): https://gitlab.inria.fr/solverstack/chameleon/-/blob/master/LICENCE.txt

Pierre Ramet
Auteurs
Professeur des Universités en Informatique
Pierre Ramet est Professeur des Universités en Informatique à l’Université de Bordeaux et chercheur à Inria. Ses activités de recherche portent sur le calcul haute performance, en particulier l’algèbre linéaire creuse et les algorithmes parallèles. Il anime l’équipe chargée du développement de PaStiX, un solveur direct creux haute performance.