17 #if defined(_HAS_CUDA_) 27 const memory_t TENSOR_DEFAULT_MEM_TYPE = HOST;
28 const device_t TENSOR_DEFAULT_DEVICE_ID = (device_t) 0;
30 const tensor_filler_t<float> TENSOR_DEFAULT_FILLER = { TENSOR_DEFAULT_FILL_TYPE, {} };
40 Tensor(std::vector<unsigned int> shape);
46 Tensor(std::vector<unsigned int> shape, memory_t mem_type);
53 Tensor(std::vector<unsigned int> shape, memory_t mem_type, device_t device_id);
87 magmadnn_error_t
copy_from(
const Tensor<T>& src,
unsigned int begin_idx,
unsigned int size);
101 magmadnn_error_t
copy_from(
const Tensor<T>& src,
const std::vector<unsigned int>& dims);
108 T
get(
const std::vector<int>& idx)
const;
114 T
get(
const std::vector<unsigned int>& idx)
const;
120 T
get(
const std::initializer_list<int>& idx)
const;
126 T
get(
const std::initializer_list<unsigned int>& idx)
const;
132 T
get(
unsigned int flattened_idx)
const;
140 const T
operator[](
const std::initializer_list<unsigned int>& idx);
146 void set(
const std::vector<int>& idx, T val);
152 void set(
const std::vector<unsigned int>& idx, T val);
158 void set(
const std::initializer_list<int>& idx, T val);
164 void set(
const std::initializer_list<unsigned int>& idx, T val);
170 void set(
unsigned int flattened_idx, T val);
181 std::vector<unsigned int>
get_shape()
const {
return this->shape; }
187 unsigned int get_shape(
unsigned int idx)
const;
192 unsigned int get_size()
const {
return this->size; }
197 T*
get_ptr() {
return this->mem_manager->get_ptr(); }
209 #if defined(_HAS_CUDA_) 210 cudnnTensorDescriptor_t get_cudnn_tensor_descriptor() {
return desc; }
216 void reshape(
const std::vector<unsigned int>& dims);
228 void init(std::vector<unsigned int>& shape,
tensor_filler_t<T> filler, memory_t mem_type, device_t device_id);
229 unsigned int get_flattened_index(
const std::vector<unsigned int>& idx)
const;
230 unsigned int get_flattened_index_old(
const std::vector<unsigned int>& idx)
const;
233 #if defined(_HAS_CUDA_) 234 void init_cudnn_descriptor();
235 void free_cudnn_descriptor();
237 cudnnTensorDescriptor_t desc;
242 std::vector<unsigned int> shape;
243 std::vector<unsigned int> strides;
std::vector< unsigned int > get_shape() const
Definition: tensor.h:181
unsigned int get_size() const
Definition: tensor.h:192
void squeeze()
Definition: tensor.cpp:265
void unsqueeze(unsigned int dim=0)
Definition: tensor.cpp:275
magmadnn_error_t copy_from(const Tensor< T > &src, unsigned int begin_idx, unsigned int size)
Definition: tensor.cpp:91
~Tensor()
Definition: tensor.cpp:45
Tensor(std::vector< unsigned int > shape)
Definition: tensor.cpp:14
MemoryManager< T > * get_memory_manager() const
Definition: tensor.h:176
memory_t get_memory_type() const
Definition: tensor.h:202
device_t get_device_id() const
Definition: tensor.h:207
tensor_fill_t
Definition: types.h:47
T * get_ptr()
Definition: tensor.h:197
void reshape(const std::vector< unsigned int > &dims)
Definition: tensor.cpp:221
Definition: memorymanager.h:29
const T operator[](unsigned int idx) const
Definition: tensor.cpp:154