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__ | DeviceTensor () |
Default constructor. | |
__host__ | ~DeviceTensor () |
Destructor. | |
__host__ | DeviceTensor (DeviceTensor< T, Dim, Contig, IndexT, PtrTraits > &&t) |
Move constructor. | |
__host__ DeviceTensor< T, Dim, Contig, IndexT, PtrTraits > & | operator= (DeviceTensor< T, Dim, Contig, IndexT, PtrTraits > &&t) |
Move assignment. | |
__host__ | DeviceTensor (const IndexT sizes[Dim], MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (std::initializer_list< IndexT > sizes, MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (DeviceMemory &m, const IndexT sizes[Dim], cudaStream_t stream, MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (DeviceMemory &m, std::initializer_list< IndexT > sizes, cudaStream_t stream, MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (DataPtrType data, const IndexT sizes[Dim], MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (DataPtrType data, std::initializer_list< IndexT > sizes, MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (DataPtrType data, const IndexT sizes[Dim], const IndexT strides[Dim], MemorySpace space=MemorySpace::Device) |
__host__ | DeviceTensor (Tensor< T, Dim, Contig, IndexT, PtrTraits > &t, cudaStream_t stream, MemorySpace space=MemorySpace::Device) |
Copies a tensor into ourselves, allocating memory for it locally. | |
__host__ | DeviceTensor (DeviceMemory &m, Tensor< T, Dim, Contig, IndexT, PtrTraits > &t, cudaStream_t stream, MemorySpace space=MemorySpace::Device) |
__host__ DeviceTensor< T, Dim, Contig, IndexT, PtrTraits > & | zero (cudaStream_t stream) |
Call to zero out memory. | |
![]() | |
__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. | |
template<typename NewIndexT > | |
__host__ Tensor< T, Dim, Contig, NewIndexT, PtrTraits > | castIndexType () const |
template<typename NewIndexT > | |
__host__ bool | canCastIndexType () const |
__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 24 of file DeviceTensor.cuh.
__host__ faiss::gpu::DeviceTensor< T, Dim, Contig, IndexT, PtrTraits >::DeviceTensor | ( | const IndexT | sizes[Dim], |
MemorySpace | space = MemorySpace::Device |
||
) |
Constructs a tensor of the given size, allocating memory for it locally
Definition at line 72 of file DeviceTensor-inl.cuh.
__host__ faiss::gpu::DeviceTensor< T, Dim, Contig, IndexT, PtrTraits >::DeviceTensor | ( | DeviceMemory & | m, |
const IndexT | sizes[Dim], | ||
cudaStream_t | stream, | ||
MemorySpace | space = MemorySpace::Device |
||
) |
Constructs a tensor of the given size, reserving a temporary memory reservation via a memory manager. The memory reservation should be ordered with respect to the given stream.
Definition at line 101 of file DeviceTensor-inl.cuh.
__host__ faiss::gpu::DeviceTensor< T, Dim, Contig, IndexT, PtrTraits >::DeviceTensor | ( | DataPtrType | data, |
const IndexT | sizes[Dim], | ||
MemorySpace | space = MemorySpace::Device |
||
) |
Constructs a tensor of the given size and stride, referencing a memory region we do not own
Definition at line 142 of file DeviceTensor-inl.cuh.
__host__ faiss::gpu::DeviceTensor< T, Dim, Contig, IndexT, PtrTraits >::DeviceTensor | ( | DataPtrType | data, |
const IndexT | sizes[Dim], | ||
const IndexT | strides[Dim], | ||
MemorySpace | space = MemorySpace::Device |
||
) |
Constructs a tensor of the given size and stride, referencing a memory region we do not own
Definition at line 166 of file DeviceTensor-inl.cuh.
__host__ faiss::gpu::DeviceTensor< T, Dim, Contig, IndexT, PtrTraits >::DeviceTensor | ( | DeviceMemory & | m, |
Tensor< T, Dim, Contig, IndexT, PtrTraits > & | t, | ||
cudaStream_t | stream, | ||
MemorySpace | space = MemorySpace::Device |
||
) |
Copies a tensor into ourselves, reserving a temporary memory reservation via a memory manager.
Definition at line 195 of file DeviceTensor-inl.cuh.