[petsc-dev] HIP / hypre

Junchao Zhang junchao.zhang at gmail.com
Wed Nov 10 13:14:13 CST 2021


Justin,
  We like to have a wrapper over CUDA/HIP since with that we only need to
maintain one code base.  Scott (Cc'ed) may introduce his work/thoughts
along this line and coordinate with Jacob and your team.

--Junchao Zhang


On Wed, Nov 10, 2021 at 12:50 PM Jacob Faibussowitsch <jacob.fai at gmail.com>
wrote:

> What’s the plan going forward with this unified cuda/hip branch?
>
>
> The end goal is to integrate PetscDevice and PetscDeviceContext — new
> objects which encapsulates physical devices and device-side sets of
> operations respectively — into PETSc. PetscDeviceContext provides a
> framework for enqueueing work on device streams, but is far more
> extensible. For example, I extend it to a very basic graph-based
> “PetscCallGraph" implementation in
> https://gitlab.com/petsc/petsc/-/merge_requests/4217. I believe Junchao
> is also currently working on integrating SYCL into the PetscDevice
> framework.
>
> Is this related to what some of us have been hearing about PETSc
> eventually going with a unified wrapper over both the CUDA and HIP API?
>
>
> The unified CUDA-HIP wrapper exists mainly because both APIs similar
> enough that it made sense to wrap them, and is the man in the middle
> between direct cuda/hip calls and higher-level
> PetscDevice/PetscDeviceContext API.
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
>
> On Nov 10, 2021, at 12:28, Justin Chang <jychang48 at gmail.com> wrote:
>
> Jacob,
>
> What’s the plan going forward with this unified cuda/hip branch? Is this
> related to what some of us have been hearing about PETSc eventually going
> with a unified wrapper over both the CUDA and HIP API?
>
> We’re interested in making the HIP port more mature, including having
> support for the HIP part of HYPRE, but we’re unsure what direction you guys
> want to go with the GPU route.
>
> Thanks,
> Justin
>
> On Wed, Nov 10, 2021 at 12:19 PM Justin Chang <jychang48 at gmail.com> wrote:
>
>> Cc’ing Paul since I misspelled his email address initially
>>
>> On Wed, Nov 10, 2021 at 12:17 PM Jacob Faibussowitsch <
>> jacob.fai at gmail.com> wrote:
>>
>>> I’m in the process of implementing asynchronous GPU support for petsc. A
>>> side effect of this is that I unify the cuda/hip interface such that
>>> anywhere we have cuda-like code we will automatically also get the hip
>>> variant.
>>>
>>> The scaffolding is in include/petsc/private/cupminterface.hpp, but for
>>> concrete examples see the jacobf/2021-10-21/veccupm-async branch for
>>> the WIP port of VecSeq in src/vec/vec/impls/seq/seqcupm/veccupm.hpp.
>>>
>>> Best regards,
>>>
>>> Jacob Faibussowitsch
>>> (Jacob Fai - booss - oh - vitch)
>>>
>>> On Nov 10, 2021, at 11:50, Justin Chang <jychang48 at gmail.com> wrote:
>>>
>>> Paul Bauman was also involved with the HIP port of HYPRE. Several of us
>>> at AMD are interested in getting HIP support for PETSc in general, and
>>> having HYPRE support would greatly help
>>>
>>> On Wed, Nov 10, 2021 at 11:47 AM Stefano Zampini <
>>> stefano.zampini at gmail.com> wrote:
>>>
>>>> I did the work last summer. It's already available in 3.16
>>>>
>>>> Il Mer 10 Nov 2021, 20:44 Mark Adams <mfadams at lbl.gov> ha scritto:
>>>>
>>>>> Hypre has released HIP support and Ulrike says:
>>>>>
>>>>> I just want to let you know that hypre can now be used through PETSc
>>>>> with GPUs (both Nvidia and AMD).
>>>>>
>>>>> I am guessing we have some work to do to make this happen.
>>>>>
>>>>> What should I do?
>>>>>
>>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20211110/ffae05c5/attachment.html>


More information about the petsc-dev mailing list