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: }