[petsc-dev] patch for BiCG on GPUs.

Jed Brown jedbrown at mcs.anl.gov
Mon Jan 7 17:53:29 CST 2013


On Mon, Jan 7, 2013 at 10:19 AM, Paul Mullowney <paulm at txcorp.com> wrote:

> I looked at the code for VecCUSPGetArrayWrite() in cuspvecimpl.h. I can't
> see why the compiler complains about uninitialized values although this
> only happens, I think, when I compile in double complex.
>

It's likely a compiler analysis bug of not propagating the CHKERRQ checks
back up the stack. See comment in PetscLayoutFindOwner() for an example of
this and the preferred workaround.


> Yes this should only be called once, I will add a fix to this. Although
> there is no memory leak as I check this under the hood in txpetscgpu.
>
> Is there any way to determine from a MAT object whether a Tranpose solve
> is needed? That is, is there any global information that I can access that
> tells my I'm running BiCG and thus I need a Transpose Solve?  If so, then I
> could do all of this in the Setup functions (i.e. the functions that do the
> ILU factorization and then push the data down to the GPU.)
>

No, we don't have this information up-front. (It's not until a later
function call that MatSolveTranspose() is called.) Best to do that setup
the first time it's used and not again (unless the matrix changes, in which
case you MatAssemblyEnd should invalidate the flag).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130107/4484802c/attachment.html>


More information about the petsc-dev mailing list