3 #include "lineardevicememory.h"
12 template<
typename PixelType>
34 LinearDeviceMemory<PixelType, 1>(), samples_(0), channels_(0), height_(0), width_(0), memoryLayout_(
52 LinearDeviceMemory<PixelType, 1>(N * C * H * W), samples_(N), channels_(C), height_(H), width_(W), memoryLayout_(
66 TensorGpu(PixelType* device_data,
const unsigned int N,
const unsigned int C,
const unsigned int H,
68 LinearDeviceMemory<PixelType, 1>(device_data, N * C * H * W, ext_data_pointer), samples_(N), channels_(C), height_(
100 return memoryLayout_;
107 out <<
"Tensor: height=" << tensor.
height() <<
" width="
108 << tensor.
width() <<
" samples=" << tensor.
samples() <<
" channels="
111 out <<
" memory_layout=NCHW";
113 out <<
" memory_layout=NHWC";
114 out <<
" onDevice=" << tensor.
onDevice();
153 __device__ PixelType&
operator()(
short pos0,
short pos1,
short pos2,
short pos3)
165 __device__
void coords(
unsigned int linearIdx,
short *dim0,
short *dim1,
short *dim2,
short *dim3)
207 unsigned int samples_;
209 unsigned int channels_;
211 unsigned int height_;
MemoryLayout memoryLayout() const
Definition: tensor_gpu.h:98
__device__ void coords(unsigned int linearIdx, short *dim0, short *dim1, short *dim2, short *dim3)
Definition: tensor_gpu.h:165
unsigned int samples() const
Definition: tensor_gpu.h:74
virtual bool onDevice() const
Definition: lineardevicememory.h:186
PixelType * data(unsigned int offset=0)
Definition: lineardevicememory.h:130
TensorGpu(const unsigned int N, const unsigned int C, const unsigned int H, const unsigned int W, MemoryLayout memoryLayout=NCHW)
Definition: tensor_gpu.h:51
unsigned int width() const
Definition: tensor_gpu.h:92
unsigned short C
Definition: tensor_gpu.h:140
Struct pointer TensorKernelData that can be used in CUDA kernels.
Definition: tensor_gpu.h:123
virtual ~TensorGpu()
Definition: tensor_gpu.h:40
unsigned int numel() const
Definition: linearmemory.h:105
unsigned int height() const
Definition: tensor_gpu.h:86
unsigned short W
Definition: tensor_gpu.h:144
__host__ TensorKernelData(const TensorGpu< PixelType > &tensor)
Definition: tensor_gpu.h:179
TensorGpu(MemoryLayout memoryLayout=NCHW)
Definition: tensor_gpu.h:33
Definition: image_cpu.h:7
unsigned int stride0
Definition: tensor_gpu.h:131
MemoryLayout
Memory layout to access the data elements.
Definition: tensor_gpu.h:22
unsigned short N
Definition: tensor_gpu.h:138
unsigned int channels() const
Definition: tensor_gpu.h:80
TensorGpu(PixelType *device_data, const unsigned int N, const unsigned int C, const unsigned int H, const unsigned int W, bool ext_data_pointer=false, MemoryLayout memoryLayout=NCHW)
Definition: tensor_gpu.h:66
unsigned int length_
Definition: tensor_gpu.h:129
PixelType * data_
Definition: tensor_gpu.h:127
Device 4D tensor class.
Definition: tensor_gpu.h:13
PixelType pixel_type
Definition: tensor_gpu.h:28
unsigned int stride1
Definition: tensor_gpu.h:133
Linear device memory class.
Definition: lineardevicememory.h:18
unsigned short H
Definition: tensor_gpu.h:142
friend std::ostream & operator<<(std::ostream &out, TensorGpu const &tensor)
Definition: tensor_gpu.h:104
unsigned int stride2
Definition: tensor_gpu.h:135
__device__ PixelType & operator()(short pos0, short pos1, short pos2, short pos3)
Definition: tensor_gpu.h:153
ndarray_ref< PixelType, 4 > ref() const