CUV
0.9.201304091348
|
an n-dimensional array on host or device More...
#include <iostream>
#include <vector>
#include <stdexcept>
#include <numeric>
#include <boost/shared_ptr.hpp>
#include <boost/multi_array/extent_gen.hpp>
#include <boost/multi_array/index_gen.hpp>
#include <cuv/tools/cuv_general.hpp>
#include <cuv/tools/meta_programming.hpp>
#include "reference.hpp"
Go to the source code of this file.
Classes | |
struct | cuv::column_major |
Tag for column major matrices. More... | |
struct | cuv::row_major |
Tag for row major matrices. More... | |
struct | cuv::linear_memory_tag |
tag for linear memory More... | |
struct | cuv::pitched_memory_tag |
tag for pitched memory More... | |
struct | cuv::other_memory_layout< T > |
converts from column to row-major and vice versa More... | |
struct | cuv::other_memory_layout< column_major > |
specialisation: converts from column to row-major More... | |
struct | cuv::other_memory_layout< row_major > |
specialisation: converts from row to column-major More... | |
struct | cuv::other_memory_space< T > |
converts from dev to host memory space and vice versa More... | |
struct | cuv::other_memory_space< dev_memory_space > |
specialisation: converts from dev_memory_space to host_memory_space More... | |
struct | cuv::other_memory_space< host_memory_space > |
specialisation: converts from host_memory_space to dev_memory_space More... | |
class | cuv::memory< V, M > |
simply keeps a pointer and deallocates it when destroyed More... | |
class | cuv::linear_memory< V, M > |
represents contiguous memory More... | |
class | cuv::pitched_memory< V, M > |
represents 2D non-contiguous ("pitched") memory More... | |
struct | cuv::tensor_info< M, L > |
contains infos about shape and stride on host and in the tensor data space. More... | |
class | cuv::tensor< V, M, L > |
represents an n-dimensional array on GPU or CPU. More... | |
class | cuv::tensor_view< V, M, L > |
primarily used as result of tensor::operator[] More... | |
struct | cuv::switch_value_type< Mat, NewVT > |
create a tensor type with the same template parameters, but with switched value type More... | |
struct | cuv::switch_memory_layout_type< Mat, NewML > |
create a tensor type with the same template parameters, but with switched memory_layout_type More... | |
struct | cuv::switch_memory_space_type< Mat, NewMS > |
create a tensor type with the same template parameters, but with switched memory_space_type More... |
Namespaces | |
namespace | boost |
cuv additions to the boost namespace | |
namespace | boost::serialization |
serialization functions for cuv data structures | |
namespace | cuv |
contains all cuv functionality |
Typedefs | |
typedef boost::detail::multi_array::index_range < boost::detail::multi_array::index, boost::detail::multi_array::size_type > | cuv::index_range |
defines an index range, stolen from boost::multi_array | |
typedef index_range::index | cuv::index |
the index type used in index_range, useful for comparator syntax in |
Functions | |
template<class V , class M , class L , class S > | |
void | cuv::fill (tensor< V, M, L > &v, const V &p) |
used in implementation of tensor.operator= for value_type argument | |
bool | cuv::detail::is_c_contiguous (row_major, const linear_memory< unsigned int, host_memory_space > &shape, const linear_memory< int, host_memory_space > &stride) |
true iff there are no "holes" in memory | |
bool | cuv::detail::is_c_contiguous (column_major, const linear_memory< unsigned int, host_memory_space > &shape, const linear_memory< int, host_memory_space > &stride) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
bool | cuv::detail::is_2dcopyable (row_major, const linear_memory< unsigned int, host_memory_space > &shape, const linear_memory< int, host_memory_space > &stride) |
returns true iff memory can be copied using copy2d | |
bool | cuv::detail::is_2dcopyable (column_major, const linear_memory< unsigned int, host_memory_space > &shape, const linear_memory< int, host_memory_space > &stride) |
template<class index_type , class size_type > | |
void | cuv::detail::get_pitched_params (size_type &rows, size_type &cols, size_type &pitch, const linear_memory< size_type, host_memory_space > &shape, const linear_memory< index_type, host_memory_space > &stride, row_major) |
this is intended for copying pitched memory. | |
template<class index_type , class size_type > | |
void | cuv::detail::get_pitched_params (size_type &rows, size_type &cols, size_type &pitch, const linear_memory< size_type, host_memory_space > &shape, const linear_memory< index_type, host_memory_space > &stride, column_major) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
template<class V , class M0 , class M1 , class L0 , class L1 > | |
bool | cuv::copy_memory (tensor< V, M0, L0 > &dst, const tensor< V, M1, L1 > &src, bool force_dst_contiguous) |
tries to copy memory, succeeds if shapes match AND both tensors are c_contiguous of 2dcopyable. | |
template<class V , class M0 , class M1 , class L0 , class L1 > | |
void | cuv::copy_memory (tensor< V, M0, L0 > &dst, const tensor< V, M1, L1 > &src, linear_memory_tag) |
copies between different memory spaces | |
template<class V , class M0 , class M1 , class L0 , class L1 > | |
void | cuv::copy_memory (tensor< V, M0, L0 > &dst, const tensor< V, M1, L1 > &src, pitched_memory_tag) |
copies between different memory spaces | |
template<class V , class V2 , class M , class M2 , class L > | |
bool | cuv::equal_shape (const tensor< V, M, L > &a, const tensor< V2, M2, L > &b) |
test whether two tensors have the same shape | |
template<class V > | |
ostream & | std::operator<< (ostream &o, const cuv::linear_memory< V, cuv::host_memory_space > &t) |
print a host linear memory to a stream | |
template<class V > | |
ostream & | std::operator<< (ostream &o, const cuv::linear_memory< V, cuv::dev_memory_space > &t_) |
print a dev linear memory to a stream (copies first) | |
template<class V > | |
ostream & | std::operator<< (ostream &o, const cuv::pitched_memory< V, cuv::host_memory_space > &t) |
print a host pitched memory to a stream | |
template<class V > | |
ostream & | std::operator<< (ostream &o, const cuv::pitched_memory< V, cuv::dev_memory_space > &t_) |
print a dev pitched memory to a stream (copies first) | |
template<class V , class L > | |
ostream & | std::operator<< (ostream &o, const cuv::tensor< V, cuv::dev_memory_space, L > &t) |
print a dev tensor to a stream (copying to host first) | |
template<class V , class L > | |
ostream & | std::operator<< (ostream &o, const cuv::tensor< V, cuv::host_memory_space, L > &t) |
print a host tensor to a stream |