Ah right, so long as the Mat and Vec operations using CUSP are used, all of PETSc's Krylov solvers will run on the GPU.<br><br><div class="gmail_quote">On Tue, Sep 6, 2011 at 11:08 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im"><br>
<br>
On Sep 6, 2011, at 10:59 AM, Daniel Lowell wrote:<br>
<br>
> On this page: <a href="http://www.mcs.anl.gov/petsc/petsc-as/features/gpus.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-as/features/gpus.html</a><br>
><br>
> It states: "All of the Krylov methods except KSPIBCGS run on the GPU."<br>
> I actually could only find ksp/pc/bicgstabcusp for any ksp implementation on the GPU.<br>
<br>
</div> Daniel,<br>
<br>
All the vector operations and the matrix-vector product used by the Krylov methods implemented in PETSc (except KSPIBCGS) run on the GPU without copying up or down vector or matrix values, in the same way as ksp/pc/bicgstabcusp does, hence we say they run on the GPU. In fact, in our tests our BiGCStab runs just as fast as the Nvidia CUSP code ksp/pc/bicgstabcusp.<br>
<br>
In other words, higher level algorithms such as Krylov methods and Newton methods do not need to be "written for the GPU", so long as the kernel operations run on the GPU.<br>
<font color="#888888"><br>
<br>
<br>
Barry<br>
</font><div><div></div><div class="h5"><br>
><br>
> CUSP does have everything mentioned in the above PETSc link:<br>
> <a href="http://code.google.com/p/cusp-library/wiki/QuickStartGuide#Iterative_Solvers" target="_blank">http://code.google.com/p/cusp-library/wiki/QuickStartGuide#Iterative_Solvers</a><br>
><br>
> However I don't see where any of it is implemented in the latest Dev release, Krylov solvers or preconditioners.<br>
><br>
> Can anyone clear this up for me?<br>
><br>
> Thanks,<br>
><br>
> Daniel Lowell<br>
<br>
</div></div></blockquote></div><br>