message: use memcpyasync for d2d in the regular hipdevicememoryspace
  add notes about reasons
diff: @@ -470,7 +470,10 @@ public:
  void *HtoD(void *dst, const void *src, size_t bytes)
  { return HipMemcpyHtoD(dst, src, bytes); }
  void *DtoD(void* dst, const void* src, size_t bytes)
  - { return HipMemcpyDtoD(dst, src, bytes); }
  + // Unlike cudaMemcpy(DtoD), hipMemcpy(DtoD) causes a host-side synchronization so
  + // instead we use hipMemcpyAsync to get similar behavior.
  + // for more info see: https://github.com/mfem/mfem/pull/2780
  + { return HipMemcpyDtoDAsync(dst, src, bytes); }
  void *DtoH(void *dst, const void *src, size_t bytes)
  { return HipMemcpyDtoH(dst, src, bytes); }
  };
  @@ -593,6 +596,9 @@ public:
  return CuMemcpyDtoD(dst, src, bytes);
  #endif
  #ifdef MFEM_USE_HIP
  + // Unlike cudaMemcpy(DtoD), hipMemcpy(DtoD) causes a host-side synchronization so
  + // instead we use hipMemcpyAsync to get similar behavior.
  + // for more info see: https://github.com/mfem/mfem/pull/2780
  return HipMemcpyDtoDAsync(dst, src, bytes);
  #endif
  // rm.copy(dst, const_cast<void*>(src), bytes); return dst;
  