[petsc-dev] Why no SpGEMM support in AIJCUSPARSE and AIJVIENNACL?

Mills, Richard Tran rtmills at anl.gov
Wed Oct 2 17:00:00 CDT 2019

Fellow PETSc developers,

I am wondering why the AIJCUSPARSE and AIJVIENNACL matrix types do not support the sparse matrix-matrix multiplication (SpGEMM, or MatMatMult() in PETSc parlance) routines provided by cuSPARSE and ViennaCL, respectively. Is there a good reason that I shouldn't add those? My guess is that support was not added because SpGEMM is hard to do well on a GPU compared to many CPUs (it is hard to compete with, say, Intel Xeon CPUs with their huge caches) and it has been the case that one would generally be better off doing these operations on the CPU. Since the trend at the big supercomputing centers seems to be to put more and more of the computational power into GPUs, I'm thinking that I should add the option to use the GPU library routines for SpGEMM, though. Is there some good reason to *not* do this that I am not aware of? (Maybe the CPUs are better for this even on a machine like Summit, but I think we're at the point that we should at least be able to experimentally verify this.)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20191002/c4054738/attachment.html>

More information about the petsc-dev mailing list