InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
infini::ops::Operator< Key, device_type, implementation_index > Class Template Reference

#include <operator.h>

Inheritance diagram for infini::ops::Operator< Key, device_type, implementation_index >:
infini::ops::OperatorBase infini::ops::OperatorBase

Public Member Functions

template<typename... Args>
void operator() (const Handle &handle, const Args &... args)
 
template<typename... Args>
void operator() (const Args &... args) const
 
template<typename... Args>
void operator() (const Handle &handle, const Args &... args)
 
template<typename... Args>
void operator() (const Args &... args) const
 
- Public Member Functions inherited from infini::ops::OperatorBase
virtual ~OperatorBase ()=default
 
virtual std::size_t workspace_size_in_bytes () const
 
void set_handle (const Handle &handle)
 
void set_config (const Config &config)
 
void set_stream (void *stream)
 
void set_workspace (void *workspace)
 
void set_workspace_size_in_bytes (std::size_t workspace_size_in_bytes)
 
virtual ~OperatorBase ()=default
 
virtual std::size_t workspace_size_in_bytes () const
 
void set_handle (const Handle &handle)
 
void set_config (const Config &config)
 
void set_stream (void *stream)
 
void set_workspace (void *workspace)
 
void set_workspace_size_in_bytes (std::size_t workspace_size_in_bytes)
 

Static Public Member Functions

static void clear_cache ()
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
template<typename... Args>
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
template<typename... Args>
static void Call (const Tensor tensor, const Args &... args)
 
template<typename TensorLike , typename... Args, typename std::enable_if_t< detail::HasMakeReturnValue< Key, TensorLike, Args... >::value, int > = 0>
static auto Call (const TensorLike &tensor, const Args &... args)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 
static void clear_cache ()
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
template<typename... Args>
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
template<typename... Args>
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
template<typename... Args>
static void Call (const Tensor tensor, const Args &... args)
 
template<typename TensorLike , typename... Args, typename std::enable_if_t< detail::HasMakeReturnValue< Key, TensorLike, Args... >::value, int > = 0>
static auto Call (const TensorLike &tensor, const Args &... args)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 

Static Protected Attributes

static constexpr Device::Type device_type_ {device_type}
 
static constexpr std::size_t implementation_index_ {implementation_index}
 

Additional Inherited Members

- Protected Attributes inherited from infini::ops::OperatorBase
std::unique_ptr< Handle > handle_ptr_
 
std::unique_ptr< Config > config_ptr_
 
void * stream_ {nullptr}
 
void * workspace_ {nullptr}
 
std::size_t workspace_size_in_bytes_ {0}
 

Member Function Documentation

◆ active_implementation_indices() [1/2]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template std::vector< std::size_t > infini::ops::Operator< Key, device_type, implementation_index >::active_implementation_indices ( Device::Type  dev_type)
inlinestatic

◆ active_implementation_indices() [2/2]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
static std::vector< std::size_t > infini::ops::Operator< Key, device_type, implementation_index >::active_implementation_indices ( Device::Type  dev_type)
inlinestatic

◆ Call() [1/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static void infini::ops::Operator< Key, device_type, implementation_index >::Call ( const Handle &  handle,
const Config &  config,
const Args &...  args 
)
static

◆ Call() [2/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static void infini::ops::Operator< Key, device_type, implementation_index >::Call ( const Handle &  handle,
const Config &  config,
const Args &...  args 
)
inlinestatic

◆ Call() [3/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static void infini::ops::Operator< Key, device_type, implementation_index >::Call ( const Tensor  tensor,
const Args &...  args 
)
inlinestatic

◆ Call() [4/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static void infini::ops::Operator< Key, device_type, implementation_index >::Call ( const Tensor  tensor,
const Args &...  args 
)
inlinestatic

◆ Call() [5/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename TensorLike , typename... Args, typename std::enable_if_t< detail::HasMakeReturnValue< Key, TensorLike, Args... >::value, int > = 0>
static auto infini::ops::Operator< Key, device_type, implementation_index >::Call ( const TensorLike &  tensor,
const Args &...  args 
)
inlinestatic

◆ Call() [6/6]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename TensorLike , typename... Args, typename std::enable_if_t< detail::HasMakeReturnValue< Key, TensorLike, Args... >::value, int > = 0>
static auto infini::ops::Operator< Key, device_type, implementation_index >::Call ( const TensorLike &  tensor,
const Args &...  args 
)
inlinestatic

◆ clear_cache() [1/2]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
static void infini::ops::Operator< Key, device_type, implementation_index >::clear_cache ( )
inlinestatic

◆ clear_cache() [2/2]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
static void infini::ops::Operator< Key, device_type, implementation_index >::clear_cache ( )
inlinestatic

◆ Make() [1/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Config &  config,
const std::vector< Tensor >  tensors,
Args &&...  args 
)
inlinestatic

◆ Make() [2/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Config &  config,
const std::vector< Tensor >  tensors,
Args &&...  args 
)
inlinestatic

◆ Make() [3/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Config &  config,
const Tensor  tensor,
Args &&...  args 
)
inlinestatic

◆ Make() [4/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Config &  config,
const Tensor  tensor,
Args &&...  args 
)
inlinestatic

◆ Make() [5/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const std::vector< Tensor >  tensors,
Args &&...  args 
)
inlinestatic

◆ Make() [6/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const std::vector< Tensor >  tensors,
Args &&...  args 
)
inlinestatic

◆ Make() [7/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Tensor  tensor,
Args &&...  args 
)
inlinestatic

◆ Make() [8/8]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
static std::unique_ptr< Operator > infini::ops::Operator< Key, device_type, implementation_index >::Make ( const Tensor  tensor,
Args &&...  args 
)
inlinestatic

◆ operator()() [1/4]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
void infini::ops::Operator< Key, device_type, implementation_index >::operator() ( const Args &...  args) const
inline

◆ operator()() [2/4]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
void infini::ops::Operator< Key, device_type, implementation_index >::operator() ( const Args &...  args) const
inline

◆ operator()() [3/4]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
void infini::ops::Operator< Key, device_type, implementation_index >::operator() ( const Handle &  handle,
const Args &...  args 
)
inline

◆ operator()() [4/4]

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
template<typename... Args>
void infini::ops::Operator< Key, device_type, implementation_index >::operator() ( const Handle &  handle,
const Args &...  args 
)
inline

Member Data Documentation

◆ device_type_

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
static constexpr Device::Type infini::ops::Operator< Key, device_type, implementation_index >::device_type_ {device_type}
staticconstexprprotected

◆ implementation_index_

template<typename Key , Device::Type device_type = Device::Type::kCount, std::size_t implementation_index = 0>
static constexpr std::size_t infini::ops::Operator< Key, device_type, implementation_index >::implementation_index_ {implementation_index}
staticconstexprprotected

The documentation for this class was generated from the following files: