[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