xref: /petsc/src/vec/is/sf/impls/basic/cupm/hip/sfcupm.hip.cxx (revision daba9d70159ea2f6905738fcbec7404635487b2b)
1 #include <../src/vec/is/sf/impls/basic/sfpack.h>
2 #include <petscpkg_version.h>
3 
4 #include <petscdevice_hip.h>
5 #include <petsc/private/sfimpl.h>
6 #include "../sfcupm.hpp"
7 #include "../sfcupm_impl.hpp"
8 
9 namespace Petsc
10 {
11 
12 namespace sf
13 {
14 
15 namespace cupm
16 {
17 
18 namespace impl
19 {
20 
21 template struct SfInterface<device::cupm::DeviceType::HIP>;
22 
23 } // namespace impl
24 
25 } // namespace cupm
26 
27 } // namespace sf
28 
29 } // namespace Petsc
30 
31 using PetscSFHIP = ::Petsc::sf::cupm::impl::SfInterface<::Petsc::device::cupm::DeviceType::HIP>;
32 
PetscSFMalloc_HIP(PetscMemType mtype,size_t size,void ** ptr)33 PetscErrorCode PetscSFMalloc_HIP(PetscMemType mtype, size_t size, void **ptr)
34 {
35   PetscFunctionBegin;
36   PetscCall(PetscSFHIP::Malloc(mtype, size, ptr));
37   PetscFunctionReturn(PETSC_SUCCESS);
38 }
39 
PetscSFFree_HIP(PetscMemType mtype,void * ptr)40 PetscErrorCode PetscSFFree_HIP(PetscMemType mtype, void *ptr)
41 {
42   PetscFunctionBegin;
43   PetscCall(PetscSFHIP::Free(mtype, ptr));
44   PetscFunctionReturn(PETSC_SUCCESS);
45 }
46 
PetscSFLinkSetUp_HIP(PetscSF sf,PetscSFLink link,MPI_Datatype unit)47 PetscErrorCode PetscSFLinkSetUp_HIP(PetscSF sf, PetscSFLink link, MPI_Datatype unit)
48 {
49   PetscFunctionBegin;
50   PetscCall(PetscSFHIP::LinkSetUp(sf, link, unit));
51   PetscFunctionReturn(PETSC_SUCCESS);
52 }
53