Actual source code: sfcupm.hip.cpp
1: #include <../src/vec/is/sf/impls/basic/sfpack.h>
2: #include <petscpkg_version.h>
4: /* compilation issues on SPOCK */
5: #undef PETSC_HAVE_COMPLEX
7: #include <petscdevice_hip.h>
8: #include <petsc/private/sfimpl.h>
9: #include "../sfcupm.hpp"
10: #include "../sfcupm_impl.hpp"
12: namespace Petsc
13: {
15: namespace sf
16: {
18: namespace cupm
19: {
21: namespace impl
22: {
24: template struct SfInterface<device::cupm::DeviceType::HIP>;
26: } // namespace impl
28: } // namespace cupm
30: } // namespace sf
32: } // namespace Petsc
34: using PetscSFHIP = ::Petsc::sf::cupm::impl::SfInterface<::Petsc::device::cupm::DeviceType::HIP>;
36: PetscErrorCode PetscSFMalloc_HIP(PetscMemType mtype, size_t size, void **ptr)
37: {
38: PetscFunctionBegin;
39: PetscCall(PetscSFHIP::Malloc(mtype, size, ptr));
40: PetscFunctionReturn(PETSC_SUCCESS);
41: }
43: PetscErrorCode PetscSFFree_HIP(PetscMemType mtype, void *ptr)
44: {
45: PetscFunctionBegin;
46: PetscCall(PetscSFHIP::Free(mtype, ptr));
47: PetscFunctionReturn(PETSC_SUCCESS);
48: }
50: PetscErrorCode PetscSFLinkSetUp_HIP(PetscSF sf, PetscSFLink link, MPI_Datatype unit)
51: {
52: PetscFunctionBegin;
53: PetscCall(PetscSFHIP::LinkSetUp(sf, link, unit));
54: PetscFunctionReturn(PETSC_SUCCESS);
55: }