Actual source code: sfcupm.hip.cpp

  1: #include <../src/vec/is/sf/impls/basic/sfpack.h>
  2: #include <petscpkg_version.h>

  4: #include <petscdevice_hip.h>
  5: #include <petsc/private/sfimpl.h>
  6: #include "../sfcupm.hpp"
  7: #include "../sfcupm_impl.hpp"

  9: namespace Petsc
 10: {

 12: namespace sf
 13: {

 15: namespace cupm
 16: {

 18: namespace impl
 19: {

 21: template struct SfInterface<device::cupm::DeviceType::HIP>;

 23: } // namespace impl

 25: } // namespace cupm

 27: } // namespace sf

 29: } // namespace Petsc

 31: using PetscSFHIP = ::Petsc::sf::cupm::impl::SfInterface<::Petsc::device::cupm::DeviceType::HIP>;

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

 40: PetscErrorCode PetscSFFree_HIP(PetscMemType mtype, void *ptr)
 41: {
 42:   PetscFunctionBegin;
 43:   PetscCall(PetscSFHIP::Free(mtype, ptr));
 44:   PetscFunctionReturn(PETSC_SUCCESS);
 45: }

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