Chameleon is a framework written in C which provides routines to solve dense general systems of linear equations, symmetric positive definite systems of linear equations and linear least squares problems, using LU, Cholesky, QR and LQ factorizations. Real arithmetic and complex arithmetic are supported in both single precision and double precision. It supports Linux and Mac OS/X machines (mainly tested on AMD Zen(s), Intel x86-64 and IBM Power architectures). Chameleon is based on the PLASMA source code but is not limited to shared-memory environment and can exploit multiple GPUs. Chameleon is interfaced in a generic way with StarPU, PaRSEC, QUARK, OpenMP runtime systems. This feature allows to analyze in a unified framework how sequential task-based algorithms behave regarding different runtime systems implementations. Using Chameleon with StarPU or PaRSEC runtime systems allows to exploit GPUs through kernels provided by cuBLAS/hipBLAS and clusters of interconnected nodes with distributed memory (using MPI).
- Written in C, Fortran interface, CMake
- Algorithms: GEMM, POTRF, GETRF, GEQRF, GESVD, …
- Matrices forms: general, symmetric, triangular
- Precisions: s, d, c, z
- Runtime systems: OpenMP, Quark, PaRSEC, StarPU
- Distributed MPI and CUDA/ROCm capabilities