[petsc-dev] PetscSF and/or VecScatter with device pointers
Matthew Knepley
knepley at gmail.com
Thu Jul 12 06:18:03 CDT 2018
On Thu, Jul 12, 2018 at 6:47 AM Lawrence Mitchell <
lawrence.mitchell at imperial.ac.uk> wrote:
> Dear petsc-dev,
>
> we're starting to explore (with Andreas cc'd) residual assembly on
> GPUs. The question naturally arises: how to do GlobalToLocal and
> LocalToGlobal.
>
There is not a lot of Mem Band difference between a GPU and a Skylake, but
I assume this is
to use hardware already purchased by some center.
> I have:
>
> A PetscSF describing the communication pattern.
>
> A Vec holding the data to communicate. This will have an up-to-date
> device pointer.
>
> I would like:
>
> PetscSFBcastBegin/End (and ReduceBegin/End, etc...) to (optionally)
> work with raw device pointers. I am led to believe that modern MPIs
> can plug directly into device memory, so I would like to avoid copying
> data to the host, doing the communication there, and then going back
> up to the device.
>
> Given that I think that the window implementation (which just
> delegates the MPI for all the packing) is not considered prime time
> (mostly due to MPI implementation bugs, I think), I think this means
> implementing a version of PetscSF_Basic that can handle the
> pack/unpack directly on the device, and then just hands off to MPI.
>
I think that is the case.
> The next thing is how to put a higher-level interface on top of this.
> What, if any, suggestions are there for doing something where the
> top-level API is agnostic to whether the data are on the host or the
> device.
>
> We had thought something like:
>
> - Make PetscSF handle device pointers (possibly with new implementation?)
>
> - Make VecScatter use SF.
>
Yep, this is what I would do.
> Calling VecScatterBegin/End on a Vec with up-to-date device pointers
> just uses the SF directly.
>
> Have there been any thoughts about how you want to do multi-GPU
> interaction?
>
I don't think so, but Karl could reply if there has been.
How are you doing local assembly?
Matt
> Cheers,
>
> Lawrence
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20180712/f1debe07/attachment.html>
More information about the petsc-dev
mailing list