suitesparse : a suite of sparse matrix software


SuiteSparse is a suite of sparse matrix algorithms, including:

  1. UMFPACK: multifrontal LU factorization.  Appears as LU and x=A\b in MATLAB.

  2. CHOLMOD: supernodal Cholesky.  Appears as CHOL and x=A\b in MATLAB.  Used in Google Ceres.  Now with CUDA acceleration, in collaboration with NVIDIA.

  3. SPQR: multifrontal QR.  Appears as QR and x=A\b in MATLAB.  CUDA acceleration just released (October 10, 2014, SuiteSparse 4.4.0), and submitted to ACM Trans. Math. Software

  4. KLU and BTF:  sparse LU factorization, well-suited for circuit simulation.  Appears in Xyce by Sandia, and many commercial circuit simulation packages.

  5. Ordering methods (AMD, CAMD, COLAMD, and CCOLAMD).  AMD and COLAMD appear in MATLAB.

  6. CSparse and CXSparse: a concise sparse Cholesky factorization package for my SIAM book.

  7. UFget: a MATLAB interface for the UF Sparse Matrix Collection

  8. spqr_rank: a MATLAB package for reliable sparse rank detection, null set bases, pseudoinverse solutions, and basic solutions.

  9. Factorize: an object-oriented solver for MATLAB (a reusable backslash).

  10. SSMULT and SFMULT: sparse matrix multiplication.  Appears as C=A*B in MATLAB.

  11. ... and many other packages.


  1. SuiteSparse v4.5.6 : with the latest CUDA-accelerated CHOLMOD and SuiteSparseQR. Now includes METIS 5.1.0, and builds shared libraries on Linux and the Mac. Works with CUDA 7.5 as well.

  2. Click here for an archive of all SuiteSparse versions, and for SuiteSparse 4.6.0 BETA (with a multi-GPU CHOLMOD, presented at NVIDIA GTC16, April 5, 2016).


  1. SuiteSparse:GraphBLAS version 0.3.0

  2. Slides for a talk on Sept 6, 2017, Sparse Days at CERFACS

  3. Slides for two talks: Sparse Days 2017 and HPEC 2017, combined

  4. This package will become part of SuiteSparse when it reaches version 1.0.


    To cite this software, please see my publications page.


  1. The SuiteSparse logo at the top of this page was created via a mathematical algorithm that translates an entire piece of music into a single piece of artwork.  The algorithm is written in MATLAB, and relies on Fourier transforms, sparse matrices, and force-directed graph visualization.  Click here for more information on how I create this art, and here for the full artwork and music behind the SuiteSparse logo.

Bug reports:

  1. SuiteSparse has been tested against CUDA 6.5, not 7.0.  There is one problem with C++-style comments in a CUDA include file in 7.0.  As a work-around, try removing them from the /usr/local/cuda/cuComplex.h file.

  2. If you do find a bug, drop me an email at, and I’ll take a look.

Windows and CMake:

    I do not yet have a build script for Visual Studio, or for CMake.  Try Jose Luis Blanco’s implementation posted on github.


NVIDIA GPU Technology Conference, March 2015:  Sparse QR and sparse Cholesky on the GPU (click here for presentations)