baspacho icon indicating copy to clipboard operation
baspacho copied to clipboard

Comparisons against cuSparse and Magma

Open shamanDevel opened this issue 2 years ago • 2 comments

❓ Questions and Help

Hi, great work! I was wondering, how does this library perform against older CUDA sparse solvers like cuSparse (https://docs.nvidia.com/cuda/cusparse/index.html) and Magma (https://icl.utk.edu/projectsfiles/magma/doxygen/_m_a_g_m_a-sparse.html)? Is this included in the benchmarks? Thanks

shamanDevel avatar Nov 15 '22 07:11 shamanDevel

No, not really. The benchmarks only have as an alternative CHOLMOD. It would actually be great having those two for comparison. I think comparison with cuSparse would not be really apples-to-apples anyway, because it doesn't use a supernodal algorithm and just offers incomplete Cholesky on a pre-built sparsity pattern. For Theseus (I wrote BaSpaCho for) we implemented cuSolver's refactor as an alternative (see: https://docs.nvidia.com/cuda/cusolver/index.html#cusolverrf-refactorization) which does LU decomposition, but creates a context for parallel decomposition of similar matrices, and could indeed use dense operations internally (I don't know what it does exactly as it's closed source). However, in Theseus BaSpaCho is doing much better than cuSolverRF (like 10x or so, check out the paper linked by https://github.com/facebookresearch/theseus). Let's leave this issue open, it would be actually great to have more comparisons (I don't have a huge amount of time to tackle this anytime soon, maybe someone from the internet might contribute)!

maurimo avatar Dec 17 '22 12:12 maurimo

Mh checking out https://icl.utk.edu/projectsfiles/magma/doxygen/group__magmasparse__dhepr.html it looks like what MAGMA does when creating a preconditioner for a symmetric matrix is using cuSparse's incomplete Cholesky "ic". On the solvers (https://icl.utk.edu/projectsfiles/magma/doxygen/group__magmasparse__dposv.html) it says that the linear system is solved with (peconditioned) Conjugate Gradient, so it doesn't look like it offers any direct solver for sparse matrices apart from what is already in cuSparse. Or am I missing something?

maurimo avatar Dec 17 '22 12:12 maurimo