baspacho
baspacho copied to clipboard
Comparisons against cuSparse and Magma
❓ 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
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)!
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?