On Tue, Sep 6, 2011 at 11:12 AM, Randall Mackie <span dir="ltr"><<a href="mailto:rlmackie862@gmail.com">rlmackie862@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
On Sep 6, 2011, at 9:08 AM, Barry Smith wrote:<br>
<br>
><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>
>  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>
><br>
><br>
><br>
>   Barry<br>
<br>
Barry,<br>
<br>
But is this still only for real data types? Last time I checked, earlier this year, complex valued data were not<br>
supported under PETSc, even though complex data types are supported in CUSP.<br></blockquote><div><br></div><div>I have not tried, but I do not understand why it would not work. We just use PetscScalar. Can you send</div>
<div>the problem you found?</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Randy<br>
<br>
<br>
><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>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>