host_tensor.hpp File Reference

host_tensor.hpp File Reference#

Composable Kernel: host_tensor.hpp File Reference
host_tensor.hpp File Reference
#include <algorithm>
#include <cassert>
#include <iostream>
#include <fstream>
#include <numeric>
#include <random>
#include <thread>
#include <utility>
#include <vector>
#include "ck/utility/data_type.hpp"
#include "ck/utility/span.hpp"
#include "ck/utility/type_convert.hpp"
#include "ck/library/utility/algorithm.hpp"
#include "ck/library/utility/ranges.hpp"
#include "ck/library/utility/thread.hpp"
#include "ck/tensor_operation/gpu/device/tensor_layout.hpp"

Go to the source code of this file.

Classes

struct  HostTensorDescriptor
 A descriptor class for host tensors that manages tensor dimensions, strides, and layout. More...
struct  joinable_thread
struct  ParallelTensorFunctor< F, Xs >
struct  Tensor< T >
 Tensor wrapper that performs static and dynamic buffer logic. The tensor is based on a descriptor stored in the Layout. Additionally, tensor can be sliced or shifted using multi-index offset. More...

Functions

template<typename Range>
std::ostream & LogRange (std::ostream &os, Range &&range, std::string delim)
template<typename T, typename Range>
std::ostream & LogRangeAsType (std::ostream &os, Range &&range, std::string delim)
template<typename F, typename T, std::size_t... Is>
auto call_f_unpack_args_impl (F f, T args, std::index_sequence< Is... >)
template<typename F, typename T>
auto call_f_unpack_args (F f, T args)
template<typename F, typename T, std::size_t... Is>
auto construct_f_unpack_args_impl (T args, std::index_sequence< Is... >)
template<typename F, typename T>
auto construct_f_unpack_args (F, T args)
template<typename New2Old, typename NewLayout = HostTensorDescriptor::BaseTensorLayout>
HostTensorDescriptor transpose_host_tensor_descriptor_given_new2old (const HostTensorDescriptor &a, const New2Old &new2old, const NewLayout &new_layout=NewLayout())
template<typename F, typename... Xs>
auto make_ParallelTensorFunctor (F f, Xs... xs)

Function Documentation

◆ call_f_unpack_args()

template<typename F, typename T>
auto call_f_unpack_args ( F f,
T args )

◆ call_f_unpack_args_impl()

template<typename F, typename T, std::size_t... Is>
auto call_f_unpack_args_impl ( F f,
T args,
std::index_sequence< Is... >  )

◆ construct_f_unpack_args()

template<typename F, typename T>
auto construct_f_unpack_args ( F ,
T args )

◆ construct_f_unpack_args_impl()

template<typename F, typename T, std::size_t... Is>
auto construct_f_unpack_args_impl ( T args,
std::index_sequence< Is... >  )

◆ LogRange()

template<typename Range>
std::ostream & LogRange ( std::ostream & os,
Range && range,
std::string delim )

◆ LogRangeAsType()

template<typename T, typename Range>
std::ostream & LogRangeAsType ( std::ostream & os,
Range && range,
std::string delim )

◆ make_ParallelTensorFunctor()

template<typename F, typename... Xs>
auto make_ParallelTensorFunctor ( F f,
Xs... xs )

◆ transpose_host_tensor_descriptor_given_new2old()

template<typename New2Old, typename NewLayout = HostTensorDescriptor::BaseTensorLayout>
HostTensorDescriptor transpose_host_tensor_descriptor_given_new2old ( const HostTensorDescriptor & a,
const New2Old & new2old,
const NewLayout & new_layout = NewLayout() )