The NVIDIA CUDA Sparse Matrix library (cuSPARSE) provides a collection of basic linear algebra subroutines used for sparse matrices that delivers up to 8x faster performance than the latest MKL. The cuSPARSE library is designed to be called from C or C++, and the latest release includes a sparse triangular solver.


Key Features

  • Supports dense, COO, CSR, CSC, ELL/HYB and Blocked CSR sparse matrix formats
  • Level 1 routines for sparse vector x dense vector operations
  • Level 2 routines for sparse matrix x dense vector operations
  • Level 3 routines for sparse matrix x multiple dense vectors (tall matrix)
  • Routines for sparse matrix by sparse matrix addition and multiplication
  • Conversion routines that allow conversion between different matrix formats
  • Sparse Triangular Solve
  • Tri-diagonal solver
  • Incomplete factorization preconditioners ilu0 and ic0


Review the latest CUDA 6.5 performance report to learn how much you could accelerate your code.


The cuSPARSE library is freely available as part of the CUDA Toolkit at

You may also be interested in the CUSP library of C++ sparse matrix operations and graph algorithms, including sparse iterative solvers and several preconditioners.  CUSP is an ongoing NVIDIA Research project available as an open source on Google Code.

For more information on cuSPARSE and other CUDA math libraries: