6 #include <hip/hip_runtime.h>
16 for(uint64_t i = threadIdx.x; i < buffer_element_size; i += blockDim.x)
108 void ToDevice(
const void* p,
const std::size_t cpySize)
const
113 hipMemcpy(
mpDeviceBuf,
const_cast<void*
>(p), cpySize, hipMemcpyHostToDevice));
136 template <
typename T>
141 std::size_t host_elements = (cpySize +
sizeof(T) - 1) /
sizeof(T);
149 template <
typename T>
162 template <
typename T>
169 throw std::runtime_error(
"wrong! not entire DeviceMem will be set");
184 catch(std::runtime_error& re)
186 std::cerr << re.what() << std::endl;
#define HIP_CHECK_ERROR(retval_or_funcall)
Definition: hip_check_error.hpp:22
Definition: cluster_descriptor.hpp:13
__global__ void set_buffer_value(T *p, T x, uint64_t buffer_element_size)
Definition: device_memory.hpp:14
Manages device memory allocation and host-device data transfers.
Definition: device_memory.hpp:52
DeviceMem()
Definition: device_memory.hpp:53
DeviceMem(std::size_t mem_size)
Definition: device_memory.hpp:54
void SetValue(T x) const
Definition: device_memory.hpp:163
void ToDevice(const void *p, const std::size_t cpySize) const
Definition: device_memory.hpp:108
void Realloc(std::size_t mem_size)
Definition: device_memory.hpp:78
std::size_t mMemSize
size of device buffer in bytes
Definition: device_memory.hpp:192
DeviceMem(const HostTensor< T > &t)
Definition: device_memory.hpp:66
void * GetDeviceBuffer() const
Definition: device_memory.hpp:94
void FromDevice(void *p) const
Definition: device_memory.hpp:116
void SetZero() const
Definition: device_memory.hpp:155
void FromDevice(void *p, const std::size_t cpySize) const
Definition: device_memory.hpp:127
HostTensor< T > ToHost()
Definition: device_memory.hpp:150
std::size_t GetBufferSize() const
Definition: device_memory.hpp:95
~DeviceMem()
Definition: device_memory.hpp:176
HostTensor< T > ToHost(std::size_t cpySize)
Definition: device_memory.hpp:137
void * mpDeviceBuf
pointer to device buffer
Definition: device_memory.hpp:191
void ToDevice(const void *p) const
Definition: device_memory.hpp:96
Definition: host_tensor.hpp:336
Data::pointer data()
Definition: host_tensor.hpp:585