[petsc-dev] PETSc GPU capabilities
Paul Mullowney
paulm at txcorp.com
Thu Mar 8 12:54:51 CST 2012
I put it in there because it was really, really easy to use the CUSP CSR
data structure in the CUSPARSE TriSolve. CUSP does not have a TriSolve.
However, CUSPARSE also supports a TriSolve based on the ELLPACK (and
Hybrid format). This is an opaque data structure again, so it may be
wise to pull CUSPARSE stuff out of aijcusp.cu and into an
aijcusparse.cu? Does this seem sensible?
Then, I suppose one can have
-mat_type cusparse
and thus remove -use_cusparse.
As for SpMV, the calls to CUSPARSE API are contained within my
txpetscgpu package and is fairly removed from PETSc. In fact, all you
see in PETSc is
ierr = cuspstruct->mat->multiply(xarray, yarray);
This multiply function will invoke CUSPARSE functions if -use_cusparse
is given at the command line. This can be removed if we allow for
-mat_type cusparse?
-Paul
> Whose choice was it to stuff CUSPARSE into the CUSP implementation?
>
> This is especially true since the evidence I'm gathering suggests
> that CUSPARSE is the better choice for SpMV and TriSolve.
>
> Meanwhile, CUSP is the right choice for various preconditioners, ...
>
>
> Preconditioners can make copies.
>
> So much complexity! Perhaps, a discussion on redesign is necessary.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120308/67191d76/attachment.html>
More information about the petsc-dev
mailing list