HostTensor< T > Struct Template Reference

HostTensor&lt; T &gt; Struct Template Reference#

Composable Kernel: ck_tile::HostTensor< T > Struct Template Reference
ck_tile::HostTensor< T > Struct Template Reference

#include <host_tensor.hpp>

Public Types

using Descriptor = HostTensorDescriptor
using Data = std::vector<T>

Public Member Functions

template<typename X>
 HostTensor (std::initializer_list< X > lens)
template<typename X, typename Y>
 HostTensor (std::initializer_list< X > lens, std::initializer_list< Y > strides)
template<typename Lengths>
 HostTensor (const Lengths &lens)
template<typename Lengths, typename Strides>
 HostTensor (const Lengths &lens, const Strides &strides)
 HostTensor (const Descriptor &desc)
template<typename OutT>
HostTensor< OutT > CopyAsType () const
 HostTensor ()=delete
 HostTensor (const HostTensor &)=default
 HostTensor (HostTensor &&)=default
 ~HostTensor ()=default
HostTensoroperator= (const HostTensor &)=default
HostTensoroperator= (HostTensor &&)=default
template<typename FromT>
 HostTensor (const HostTensor< FromT > &other)
std::size_t get_length (std::size_t dim) const
decltype(auto) get_lengths () const
std::size_t get_stride (std::size_t dim) const
decltype(auto) get_strides () const
std::size_t get_num_of_dimension () const
std::size_t get_element_size () const
std::size_t get_element_space_size () const
std::size_t get_element_space_size_in_bytes () const
void SetZero ()
template<typename F>
void ForEach_impl (F &&f, std::vector< size_t > &idx, size_t rank)
template<typename F>
void ForEach (F &&f)
template<typename F>
void ForEach_impl (const F &&f, std::vector< size_t > &idx, size_t rank) const
template<typename F>
void ForEach (const F &&f) const
template<typename G>
void GenerateTensorValue (G g, std::size_t num_thread=1)
template<typename... Is>
std::size_t GetOffsetFromMultiIndex (Is... is) const
template<typename... Is>
T & operator() (Is... is)
template<typename... Is>
const T & operator() (Is... is) const
T & operator() (const std::vector< std::size_t > &idx)
const T & operator() (const std::vector< std::size_t > &idx) const
HostTensor< T > transpose (std::vector< size_t > axes={}) const
HostTensor< T > transpose (std::vector< size_t > axes={})
Data::iterator begin ()
Data::iterator end ()
Data::pointer data ()
Data::const_iterator begin () const
Data::const_iterator end () const
Data::const_pointer data () const
Data::size_type size () const
auto slice (std::vector< size_t > s_begin, std::vector< size_t > s_end) const
template<typename U = T>
auto AsSpan () const
template<typename U = T>
auto AsSpan ()
std::ostream & print_first_n (std::ostream &os, std::size_t n=5) const
 Print only the first N elements of the tensor.
void loadtxt (std::string file_name, std::string dtype="float")
void savetxt (std::string file_name, std::string dtype="float")

Public Attributes

Descriptor mDesc
Data mData

Friends

std::ostream & operator<< (std::ostream &os, const HostTensor< T > &t)

Member Typedef Documentation

◆ Data

template<typename T>
using ck_tile::HostTensor< T >::Data = std::vector<T>

◆ Descriptor

template<typename T>
using ck_tile::HostTensor< T >::Descriptor = HostTensorDescriptor

Constructor & Destructor Documentation

◆ HostTensor() [1/9]

template<typename T>
template<typename X>
ck_tile::HostTensor< T >::HostTensor ( std::initializer_list< X > lens)
inline

◆ HostTensor() [2/9]

template<typename T>
template<typename X, typename Y>
ck_tile::HostTensor< T >::HostTensor ( std::initializer_list< X > lens,
std::initializer_list< Y > strides )
inline

◆ HostTensor() [3/9]

template<typename T>
template<typename Lengths>
ck_tile::HostTensor< T >::HostTensor ( const Lengths & lens)
inline

◆ HostTensor() [4/9]

template<typename T>
template<typename Lengths, typename Strides>
ck_tile::HostTensor< T >::HostTensor ( const Lengths & lens,
const Strides & strides )
inline

◆ HostTensor() [5/9]

template<typename T>
ck_tile::HostTensor< T >::HostTensor ( const Descriptor & desc)
inline

◆ HostTensor() [6/9]

template<typename T>
ck_tile::HostTensor< T >::HostTensor ( )
delete

◆ HostTensor() [7/9]

template<typename T>
ck_tile::HostTensor< T >::HostTensor ( const HostTensor< T > & )
default

◆ HostTensor() [8/9]

template<typename T>
ck_tile::HostTensor< T >::HostTensor ( HostTensor< T > && )
default

◆ ~HostTensor()

template<typename T>
ck_tile::HostTensor< T >::~HostTensor ( )
default

◆ HostTensor() [9/9]

template<typename T>
template<typename FromT>
ck_tile::HostTensor< T >::HostTensor ( const HostTensor< FromT > & other)
inlineexplicit

Member Function Documentation

◆ AsSpan() [1/2]

template<typename T>
template<typename U = T>
auto ck_tile::HostTensor< T >::AsSpan ( )
inline

◆ AsSpan() [2/2]

template<typename T>
template<typename U = T>
auto ck_tile::HostTensor< T >::AsSpan ( ) const
inline

◆ begin() [1/2]

template<typename T>
Data::iterator ck_tile::HostTensor< T >::begin ( )
inline

◆ begin() [2/2]

template<typename T>
Data::const_iterator ck_tile::HostTensor< T >::begin ( ) const
inline

◆ CopyAsType()

template<typename T>
template<typename OutT>
HostTensor< OutT > ck_tile::HostTensor< T >::CopyAsType ( ) const
inline

◆ data() [1/2]

template<typename T>
Data::pointer ck_tile::HostTensor< T >::data ( )
inline

◆ data() [2/2]

template<typename T>
Data::const_pointer ck_tile::HostTensor< T >::data ( ) const
inline

◆ end() [1/2]

template<typename T>
Data::iterator ck_tile::HostTensor< T >::end ( )
inline

◆ end() [2/2]

template<typename T>
Data::const_iterator ck_tile::HostTensor< T >::end ( ) const
inline

◆ ForEach() [1/2]

template<typename T>
template<typename F>
void ck_tile::HostTensor< T >::ForEach ( const F && f) const
inline

◆ ForEach() [2/2]

template<typename T>
template<typename F>
void ck_tile::HostTensor< T >::ForEach ( F && f)
inline

◆ ForEach_impl() [1/2]

template<typename T>
template<typename F>
void ck_tile::HostTensor< T >::ForEach_impl ( const F && f,
std::vector< size_t > & idx,
size_t rank ) const
inline

◆ ForEach_impl() [2/2]

template<typename T>
template<typename F>
void ck_tile::HostTensor< T >::ForEach_impl ( F && f,
std::vector< size_t > & idx,
size_t rank )
inline

◆ GenerateTensorValue()

template<typename T>
template<typename G>
void ck_tile::HostTensor< T >::GenerateTensorValue ( G g,
std::size_t num_thread = 1 )
inline

◆ get_element_size()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_element_size ( ) const
inline

◆ get_element_space_size()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_element_space_size ( ) const
inline

◆ get_element_space_size_in_bytes()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_element_space_size_in_bytes ( ) const
inline

◆ get_length()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_length ( std::size_t dim) const
inline

◆ get_lengths()

template<typename T>
decltype(auto) ck_tile::HostTensor< T >::get_lengths ( ) const
inline

◆ get_num_of_dimension()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_num_of_dimension ( ) const
inline

◆ get_stride()

template<typename T>
std::size_t ck_tile::HostTensor< T >::get_stride ( std::size_t dim) const
inline

◆ get_strides()

template<typename T>
decltype(auto) ck_tile::HostTensor< T >::get_strides ( ) const
inline

◆ GetOffsetFromMultiIndex()

template<typename T>
template<typename... Is>
std::size_t ck_tile::HostTensor< T >::GetOffsetFromMultiIndex ( Is... is) const
inline

◆ loadtxt()

template<typename T>
void ck_tile::HostTensor< T >::loadtxt ( std::string file_name,
std::string dtype = "float" )
inline

◆ operator()() [1/4]

template<typename T>
T & ck_tile::HostTensor< T >::operator() ( const std::vector< std::size_t > & idx)
inline

◆ operator()() [2/4]

template<typename T>
const T & ck_tile::HostTensor< T >::operator() ( const std::vector< std::size_t > & idx) const
inline

◆ operator()() [3/4]

template<typename T>
template<typename... Is>
T & ck_tile::HostTensor< T >::operator() ( Is... is)
inline

◆ operator()() [4/4]

template<typename T>
template<typename... Is>
const T & ck_tile::HostTensor< T >::operator() ( Is... is) const
inline

◆ operator=() [1/2]

template<typename T>
HostTensor & ck_tile::HostTensor< T >::operator= ( const HostTensor< T > & )
default

◆ operator=() [2/2]

template<typename T>
HostTensor & ck_tile::HostTensor< T >::operator= ( HostTensor< T > && )
default

◆ print_first_n()

template<typename T>
std::ostream & ck_tile::HostTensor< T >::print_first_n ( std::ostream & os,
std::size_t n = 5 ) const
inline

Print only the first N elements of the tensor.

Parameters
osOutput stream to write to
nNumber of elements to print (default: 5)
Returns
std::ostream& Reference to the output stream

◆ savetxt()

template<typename T>
void ck_tile::HostTensor< T >::savetxt ( std::string file_name,
std::string dtype = "float" )
inline

◆ SetZero()

template<typename T>
void ck_tile::HostTensor< T >::SetZero ( )
inline

◆ size()

template<typename T>
Data::size_type ck_tile::HostTensor< T >::size ( ) const
inline

◆ slice()

template<typename T>
auto ck_tile::HostTensor< T >::slice ( std::vector< size_t > s_begin,
std::vector< size_t > s_end ) const
inline

◆ transpose() [1/2]

template<typename T>
HostTensor< T > ck_tile::HostTensor< T >::transpose ( std::vector< size_t > axes = {})
inline

◆ transpose() [2/2]

template<typename T>
HostTensor< T > ck_tile::HostTensor< T >::transpose ( std::vector< size_t > axes = {}) const
inline

◆ operator<<

template<typename T>
std::ostream & operator<< ( std::ostream & os,
const HostTensor< T > & t )
friend

Member Data Documentation

◆ mData

template<typename T>
Data ck_tile::HostTensor< T >::mData

◆ mDesc

template<typename T>
Descriptor ck_tile::HostTensor< T >::mDesc

The documentation for this struct was generated from the following file: