1#ifndef included_AMP_MEMORY
2#define included_AMP_MEMORY
4#include "AMP/AMP_TPLs.h"
5#include "AMP/utils/UtilityMacros.h"
8 #include "AMP/utils/cuda/CudaAllocator.h"
11 #include "AMP/utils/hip/HipAllocator.h"
33void memcpy(
void *dest,
const void *src, std::size_t count );
36void memset(
void *dest,
int ch, std::size_t count );
39void zero(
void *dest, std::size_t count );
42template<
class T1,
class T2>
43void copy(
size_t N,
const T1 *src, T2 *dst );
51template<
typename TYPE>
53#elif defined( AMP_USE_HIP )
54template<
typename TYPE>
60template<
typename TYPE>
62#elif defined( AMP_USE_HIP )
63template<
typename TYPE>
68template<
typename TYPE>
75template<
typename ALLOC>
78 using intAllocator =
typename std::allocator_traits<ALLOC>::template rebind_alloc<int>;
79 if ( std::is_same_v<intAllocator, std::allocator<int>> ) {
Allocator based on cudaMalloc.
Allocator based on cudaMallocManaged.
Allocator based on hipMalloc.
Allocator based on hipMallocManaged.
#define AMP_ERROR(MSG)
Throw error.
void memcpy(void *dest, const void *src, std::size_t count)
Perform memory-memory copy (pointer may be in any memory space)
constexpr AMP::Utilities::MemoryType getAllocatorMemoryType()
void copy(size_t N, const T1 *src, T2 *dst)
Perform copy with conversion if necessary.
MemoryType getMemoryType(const void *ptr)
Return the pointer type.
std::string_view getString(const ExecutionSpace exec_space)
void zero(void *dest, std::size_t count)
Perform memory zero (pointer may be in any memory space)
MemoryType memoryLocationFromString(std::string_view name)
Return the memory type from a string.
void memset(void *dest, int ch, std::size_t count)
Perform memory set (pointer may be in any memory space)
MemoryType
Enum to store pointer type.
std::allocator< TYPE > HostAllocator