Public Types | |
typedef IndexT | IndexType |
typedef PtrTraits< T >::PtrType | DataPtrType |
![]() | |
enum | { NumDim = Dim } |
enum | { IsContig = Contig } |
typedef T | DataType |
typedef IndexT | IndexType |
typedef PtrTraits< T >::PtrType | DataPtrType |
typedef Tensor< T, Dim, Contig, IndexT, PtrTraits > | TensorType |
Public Member Functions | |
__host__ | HostTensor () |
Default constructor. | |
__host__ | ~HostTensor () |
Destructor. | |
__host__ | HostTensor (const IndexT sizes[Dim]) |
__host__ | HostTensor (std::initializer_list< IndexT > sizes) |
__host__ | HostTensor (DataPtrType data, const IndexT sizes[Dim]) |
__host__ | HostTensor (DataPtrType data, std::initializer_list< IndexT > sizes) |
__host__ | HostTensor (DataPtrType data, const IndexT sizes[Dim], const IndexT strides[Dim]) |
__host__ | HostTensor (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t, cudaStream_t stream) |
__host__ HostTensor< T, Dim, Contig, IndexT, PtrTraits > & | zero () |
Call to zero out memory. | |
__host__ T | maxDiff (const HostTensor< T, Dim, Contig, IndexT, PtrTraits > &t) const |
Returns the maximum difference seen between two tensors. | |
__host__ bool | equal (const HostTensor< T, Dim, Contig, IndexT, PtrTraits > &t) const |
Are the two tensors exactly equal? | |
![]() | |
__host__ __device__ | Tensor () |
Default constructor. | |
__host__ __device__ | Tensor (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t)=default |
Copy constructor. | |
__host__ __device__ | Tensor (Tensor< T, Dim, Contig, IndexT, PtrTraits > &&t)=default |
Move constructor. | |
__host__ __device__ Tensor< T, Dim, Contig, IndexT, PtrTraits > & | operator= (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t)=default |
Assignment. | |
__host__ __device__ Tensor< T, Dim, Contig, IndexT, PtrTraits > & | operator= (Tensor< T, Dim, Contig, IndexT, PtrTraits > &&t) |
Move assignment. | |
__host__ __device__ | Tensor (DataPtrType data, const IndexT sizes[Dim]) |
Constructor that calculates strides with no padding. | |
__host__ __device__ | Tensor (DataPtrType data, std::initializer_list< IndexT > sizes) |
__host__ __device__ | Tensor (DataPtrType data, const IndexT sizes[Dim], const IndexT strides[Dim]) |
__host__ void | copyFrom (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t, cudaStream_t stream) |
Copies a tensor into ourselves; sizes must match. | |
__host__ void | copyTo (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t, cudaStream_t stream) |
Copies ourselves into a tensor; sizes must match. | |
template<int OtherDim> | |
__host__ __device__ bool | isSame (const Tensor< T, OtherDim, Contig, IndexT, PtrTraits > &rhs) const |
template<typename U > | |
__host__ __device__ Tensor< U, Dim, Contig, IndexT, PtrTraits > | cast () |
template<typename U > | |
__host__ __device__ const Tensor< U, Dim, Contig, IndexT, PtrTraits > | cast () const |
Const version of cast | |
template<typename U > | |
__host__ __device__ Tensor< U, Dim, Contig, IndexT, PtrTraits > | castResize () |
template<typename U > | |
__host__ __device__ const Tensor< U, Dim, Contig, IndexT, PtrTraits > | castResize () const |
Const version of castResize | |
template<typename U > | |
__host__ __device__ bool | canCastResize () const |
Returns true if we can castResize() this tensor to the new type. | |
__host__ __device__ DataPtrType | data () |
Returns a raw pointer to the start of our data. | |
__host__ __device__ DataPtrType | end () |
__host__ __device__ const DataPtrType | data () const |
Returns a raw pointer to the start of our data (const). | |
__host__ __device__ DataPtrType | end () const |
template<typename U > | |
__host__ __device__ PtrTraits < U >::PtrType | dataAs () |
Cast to a different datatype. | |
template<typename U > | |
__host__ __device__ const PtrTraits< const U >::PtrType | dataAs () const |
Cast to a different datatype. | |
__host__ __device__ detail::SubTensor< TensorType, Dim-1, PtrTraits > | operator[] (IndexT) |
Returns a read/write view of a portion of our tensor. | |
__host__ __device__ const detail::SubTensor< TensorType, Dim-1, PtrTraits > | operator[] (IndexT) const |
Returns a read/write view of a portion of our tensor (const). | |
__host__ __device__ IndexT | getSize (int i) const |
__host__ __device__ IndexT | getStride (int i) const |
__host__ __device__ IndexT | numElements () const |
__host__ __device__ size_t | getSizeInBytes () const |
__host__ __device__ const IndexT * | sizes () const |
Returns the size array. | |
__host__ __device__ const IndexT * | strides () const |
Returns the stride array. | |
__host__ __device__ bool | isContiguous () const |
__host__ __device__ bool | isConsistentlySized (int i) const |
__host__ __device__ bool | isConsistentlySized () const |
__host__ __device__ bool | isContiguousDim (int i) const |
Returns true if the given dimension index has no padding. | |
__host__ __device__ Tensor< T, Dim, Contig, IndexT, PtrTraits > | transpose (int dim1, int dim2) const |
template<int NewDim> | |
__host__ __device__ Tensor< T, NewDim, Contig, IndexT, PtrTraits > | upcastOuter () |
template<int NewDim> | |
__host__ __device__ Tensor< T, NewDim, Contig, IndexT, PtrTraits > | upcastInner () |
template<int NewDim> | |
__host__ __device__ Tensor< T, NewDim, Contig, IndexT, PtrTraits > | downcastOuter () |
template<int NewDim> | |
__host__ __device__ Tensor< T, NewDim, Contig, IndexT, PtrTraits > | downcastInner () |
template<int SubDim> | |
__host__ __device__ Tensor< T, SubDim, Contig, IndexT, PtrTraits > | view (DataPtrType at) |
template<int SubDim> | |
__host__ __device__ Tensor< T, SubDim, Contig, IndexT, PtrTraits > | view () |
__host__ __device__ Tensor< T, Dim, Contig, IndexT, PtrTraits > | narrowOutermost (IndexT start, IndexT size) |
__host__ __device__ Tensor< T, Dim, false, IndexT, PtrTraits > | narrow (int dim, IndexT start, IndexT size) |
template<int NewDim> | |
__host__ __device__ Tensor< T, NewDim, Contig, IndexT, PtrTraits > | view (std::initializer_list< IndexT > sizes) |
Additional Inherited Members | |
![]() | |
DataPtrType | data_ |
Raw pointer to where the tensor data begins. | |
IndexT | stride_ [Dim] |
Array of strides (in sizeof(T) terms) per each dimension. | |
IndexT | size_ [Dim] |
Size per each dimension. | |
Definition at line 23 of file HostTensor.cuh.
__host__ faiss::gpu::HostTensor< T, Dim, Contig, IndexT, PtrTraits >::HostTensor | ( | const IndexT | sizes[Dim] | ) |
Constructs a tensor of the given size, allocating memory for it locally
Definition at line 36 of file HostTensor-inl.cuh.
__host__ faiss::gpu::HostTensor< T, Dim, Contig, IndexT, PtrTraits >::HostTensor | ( | DataPtrType | data, |
const IndexT | sizes[Dim] | ||
) |
Constructs a tensor of the given size and stride, referencing a memory region we do not own
Definition at line 59 of file HostTensor-inl.cuh.
__host__ faiss::gpu::HostTensor< T, Dim, Contig, IndexT, PtrTraits >::HostTensor | ( | DataPtrType | data, |
const IndexT | sizes[Dim], | ||
const IndexT | strides[Dim] | ||
) |
Constructs a tensor of the given size and stride, referencing a memory region we do not own
Definition at line 79 of file HostTensor-inl.cuh.
__host__ faiss::gpu::HostTensor< T, Dim, Contig, IndexT, PtrTraits >::HostTensor | ( | Tensor< T, Dim, Contig, IndexT, PtrTraits > & | t, |
cudaStream_t | stream | ||
) |
Copies a tensor into ourselves, allocating memory for it locally. If the tensor is on the GPU, then we will copy it to ourselves wrt the given stream.
Definition at line 90 of file HostTensor-inl.cuh.