> 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 <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 <[email protected]> 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 <[email protected] > <mailto:[email protected]>> wrote: > Cc’ing Paul since I misspelled his email address initially > > On Wed, Nov 10, 2021 at 12:17 PM Jacob Faibussowitsch <[email protected] > <mailto:[email protected]>> 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 <[email protected] >> <mailto:[email protected]>> 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 <[email protected] >> <mailto:[email protected]>> wrote: >> I did the work last summer. It's already available in 3.16 >> >> Il Mer 10 Nov 2021, 20:44 Mark Adams <[email protected] >> <mailto:[email protected]>> 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? >
