<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Fellow PETSc developers,<br>
<br>
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.)<br>
<br>
--Richard<br>
</body>
</html>