Loading bindings/CXX11/adios2/cxx11/KokkosView.h +3 −42 Original line number Diff line number Diff line Loading @@ -9,55 +9,16 @@ namespace detail { template <typename T> struct memspace_kokkos_to_adios2; template <> struct memspace_kokkos_to_adios2<Kokkos::HostSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::Host; }; #if defined(KOKKOS_ENABLE_CUDA) && defined(ADIOS2_HAVE_GPU_SUPPORT) template <> struct memspace_kokkos_to_adios2<Kokkos::CudaSpace> struct memspace_kokkos_to_adios2 { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::CudaUVMSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::CudaHostPinnedSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; #endif #if defined(KOKKOS_ENABLE_HIP) && defined(ADIOS2_HAVE_GPU_SUPPORT) template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPHostPinnedSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPManagedSpace> struct memspace_kokkos_to_adios2<Kokkos::HostSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; static constexpr adios2::MemorySpace value = adios2::MemorySpace::Host; }; #endif } // namespace detail Loading source/adios2/helper/kokkos/adiosKokkos.cpp +4 −14 Original line number Diff line number Diff line Loading @@ -13,10 +13,10 @@ namespace { template <class MemSpace> void KokkosDeepCopy(const char *src, char *dst, size_t byteCount) { Kokkos::View<const char *, MemSpace, using mem_space = Kokkos::DefaultExecutionSpace::memory_space; Kokkos::View<const char *, mem_space, Kokkos::MemoryTraits<Kokkos::Unmanaged>> srcView(src, byteCount); Kokkos::View<char *, Kokkos::HostSpace, Loading Loading @@ -62,22 +62,12 @@ namespace helper { void MemcpyGPUToBuffer(char *dst, const char *GPUbuffer, size_t byteCount) { #ifdef ADIOS2_HAVE_KOKKOS_CUDA KokkosDeepCopy<Kokkos::CudaSpace>(GPUbuffer, dst, byteCount); #endif #ifdef ADIOS2_HAVE_KOKKOS_HIP KokkosDeepCopy<Kokkos::Experimental::HIPSpace>(GPUbuffer, dst, byteCount); #endif KokkosDeepCopy(GPUbuffer, dst, byteCount); } void MemcpyBufferToGPU(char *GPUbuffer, const char *src, size_t byteCount) { #ifdef ADIOS2_HAVE_KOKKOS_CUDA KokkosDeepCopy<Kokkos::CudaSpace>(src, GPUbuffer, byteCount); #endif #ifdef ADIOS2_HAVE_KOKKOS_HIP KokkosDeepCopy<Kokkos::Experimental::HIPSpace>(src, GPUbuffer, byteCount); #endif KokkosDeepCopy(src, GPUbuffer, byteCount); } bool IsGPUbuffer(const void *ptr) Loading Loading
bindings/CXX11/adios2/cxx11/KokkosView.h +3 −42 Original line number Diff line number Diff line Loading @@ -9,55 +9,16 @@ namespace detail { template <typename T> struct memspace_kokkos_to_adios2; template <> struct memspace_kokkos_to_adios2<Kokkos::HostSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::Host; }; #if defined(KOKKOS_ENABLE_CUDA) && defined(ADIOS2_HAVE_GPU_SUPPORT) template <> struct memspace_kokkos_to_adios2<Kokkos::CudaSpace> struct memspace_kokkos_to_adios2 { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::CudaUVMSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::CudaHostPinnedSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; #endif #if defined(KOKKOS_ENABLE_HIP) && defined(ADIOS2_HAVE_GPU_SUPPORT) template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPHostPinnedSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; }; template <> struct memspace_kokkos_to_adios2<Kokkos::Experimental::HIPManagedSpace> struct memspace_kokkos_to_adios2<Kokkos::HostSpace> { static constexpr adios2::MemorySpace value = adios2::MemorySpace::GPU; static constexpr adios2::MemorySpace value = adios2::MemorySpace::Host; }; #endif } // namespace detail Loading
source/adios2/helper/kokkos/adiosKokkos.cpp +4 −14 Original line number Diff line number Diff line Loading @@ -13,10 +13,10 @@ namespace { template <class MemSpace> void KokkosDeepCopy(const char *src, char *dst, size_t byteCount) { Kokkos::View<const char *, MemSpace, using mem_space = Kokkos::DefaultExecutionSpace::memory_space; Kokkos::View<const char *, mem_space, Kokkos::MemoryTraits<Kokkos::Unmanaged>> srcView(src, byteCount); Kokkos::View<char *, Kokkos::HostSpace, Loading Loading @@ -62,22 +62,12 @@ namespace helper { void MemcpyGPUToBuffer(char *dst, const char *GPUbuffer, size_t byteCount) { #ifdef ADIOS2_HAVE_KOKKOS_CUDA KokkosDeepCopy<Kokkos::CudaSpace>(GPUbuffer, dst, byteCount); #endif #ifdef ADIOS2_HAVE_KOKKOS_HIP KokkosDeepCopy<Kokkos::Experimental::HIPSpace>(GPUbuffer, dst, byteCount); #endif KokkosDeepCopy(GPUbuffer, dst, byteCount); } void MemcpyBufferToGPU(char *GPUbuffer, const char *src, size_t byteCount) { #ifdef ADIOS2_HAVE_KOKKOS_CUDA KokkosDeepCopy<Kokkos::CudaSpace>(src, GPUbuffer, byteCount); #endif #ifdef ADIOS2_HAVE_KOKKOS_HIP KokkosDeepCopy<Kokkos::Experimental::HIPSpace>(src, GPUbuffer, byteCount); #endif KokkosDeepCopy(src, GPUbuffer, byteCount); } bool IsGPUbuffer(const void *ptr) Loading