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