suitesparse : a suite of sparse matrix software


Click here to DOWNLOAD SuiteSparse 5.2.0: 

Now with GraphBLAS

  1. SuiteSparse v5.2.0 : with the latest CUDA-accelerated CHOLMOD and SuiteSparseQR, and GraphBLAS 2.0.1.

  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).

  3. Slides for two talks on GraphBLAS: Sparse Days 2017 and HPEC 2017

  4. Click here for GraphBLAS extras (including prior versions and extras like Kronecker products, triangle counting, k-truss algorithms, and my paper on GraphBLAS for the IEEE HPEC’18 conference). These do not appear in the SuiteSparse distribution of GraphBLAS.

SuiteSparse is a suite of sparse matrix algorithms, including:

  1. GraphBLAS: graph algorithms in the language of linear algebra

  2. ssget: MATLAB and Java interface to the SuiteSparse Matrix Collection

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

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

  5. SPQR: multifrontal QR.  Appears as QR and x=A\b in MATLAB, with CUDA acceleration.

  6. KLU and BTF:  sparse LU factorization, well-suited for circuit simulation. 

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

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

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

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

  11. SSMULT and SFMULT: sparse matrix multiplication.  Appears as the built-in C=A*B operator in MATLAB.

  12. ... and many other packages. 


    To cite this software, please see my publications page.


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:

SuiteSparse has been tested against CUDA 6.5.  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.  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 (except for GraphBLAS).  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)