InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
infini::ops::Add Class Referenceabstract

#include <add.h>

Inheritance diagram for infini::ops::Add:
infini::ops::Operator< Add > infini::ops::OperatorBase infini::ops::OperatorBase

Public Member Functions

 Add (const Tensor input, const Tensor other, const double alpha, Tensor out)
 
 Add (const Tensor input, const Tensor other, Tensor out)
 
virtual void operator() (const Tensor input, const Tensor other, const double alpha, Tensor out) const =0
 
void operator() (const Tensor input, const Tensor other, Tensor out) const
 
- Public Member Functions inherited from infini::ops::Operator< Add >
void operator() (const Handle &handle, const Args &... args)
 
void operator() (const Args &... args) const
 
void operator() (const Handle &handle, const Args &... 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

template<typename TensorLike >
static auto MakeReturnValue (const TensorLike &input, const TensorLike &other)
 
template<typename TensorLike >
static auto MakeReturnValue (const TensorLike &input, const TensorLike &other, const double)
 
- Static Public Member Functions inherited from infini::ops::Operator< Add >
static void clear_cache ()
 
static void clear_cache ()
 
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
static void Call (const Tensor tensor, const Args &... args)
 
static auto Call (const TensorLike &tensor, const Args &... args)
 
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
static void Call (const Tensor tensor, const Args &... args)
 
static auto Call (const TensorLike &tensor, const Args &... args)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 

Static Protected Member Functions

static Tensor::Strides BroadcastStrides (const Tensor input, const Tensor out)
 
static void ValidateBroadcast (const Tensor input, const Tensor other, const Tensor out)
 

Protected Attributes

Tensor::Size ndim_ {0}
 
Tensor::Size output_size_ {0}
 
const DataType input_type_
 
const DataType other_type_
 
const DataType out_type_
 
Tensor::Shape input_shape_
 
Tensor::Shape other_shape_
 
Tensor::Shape out_shape_
 
Tensor::Strides input_strides_
 
Tensor::Strides other_strides_
 
Tensor::Strides out_strides_
 
bool is_input_contiguous_ {false}
 
bool is_other_contiguous_ {false}
 
bool is_out_contiguous_ {false}
 
- 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}
 

Additional Inherited Members

- Static Protected Attributes inherited from infini::ops::Operator< Add >
static constexpr Device::Type device_type_
 
static constexpr std::size_t implementation_index_
 

Constructor & Destructor Documentation

◆ Add() [1/2]

infini::ops::Add::Add ( const Tensor  input,
const Tensor  other,
const double  alpha,
Tensor  out 
)
inline

◆ Add() [2/2]

infini::ops::Add::Add ( const Tensor  input,
const Tensor  other,
Tensor  out 
)
inline

Member Function Documentation

◆ BroadcastStrides()

static Tensor::Strides infini::ops::Add::BroadcastStrides ( const Tensor  input,
const Tensor  out 
)
inlinestaticprotected

◆ MakeReturnValue() [1/2]

template<typename TensorLike >
static auto infini::ops::Add::MakeReturnValue ( const TensorLike &  input,
const TensorLike &  other 
)
inlinestatic

◆ MakeReturnValue() [2/2]

template<typename TensorLike >
static auto infini::ops::Add::MakeReturnValue ( const TensorLike &  input,
const TensorLike &  other,
const double   
)
inlinestatic

◆ operator()() [1/2]

virtual void infini::ops::Add::operator() ( const Tensor  input,
const Tensor  other,
const double  alpha,
Tensor  out 
) const
pure virtual

◆ operator()() [2/2]

void infini::ops::Add::operator() ( const Tensor  input,
const Tensor  other,
Tensor  out 
) const
inline

◆ ValidateBroadcast()

static void infini::ops::Add::ValidateBroadcast ( const Tensor  input,
const Tensor  other,
const Tensor  out 
)
inlinestaticprotected

Member Data Documentation

◆ input_shape_

Tensor::Shape infini::ops::Add::input_shape_
protected

◆ input_strides_

Tensor::Strides infini::ops::Add::input_strides_
protected

◆ input_type_

const DataType infini::ops::Add::input_type_
protected

◆ is_input_contiguous_

bool infini::ops::Add::is_input_contiguous_ {false}
protected

◆ is_other_contiguous_

bool infini::ops::Add::is_other_contiguous_ {false}
protected

◆ is_out_contiguous_

bool infini::ops::Add::is_out_contiguous_ {false}
protected

◆ ndim_

Tensor::Size infini::ops::Add::ndim_ {0}
protected

◆ other_shape_

Tensor::Shape infini::ops::Add::other_shape_
protected

◆ other_strides_

Tensor::Strides infini::ops::Add::other_strides_
protected

◆ other_type_

const DataType infini::ops::Add::other_type_
protected

◆ out_shape_

Tensor::Shape infini::ops::Add::out_shape_
protected

◆ out_strides_

Tensor::Strides infini::ops::Add::out_strides_
protected

◆ out_type_

const DataType infini::ops::Add::out_type_
protected

◆ output_size_

Tensor::Size infini::ops::Add::output_size_ {0}
protected

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