tvm
|
A Compute op that compute a tensor on certain domain. More...
#include <operation.h>
Public Member Functions | |
ComputeOpNode () | |
constructor More... | |
int | num_outputs () const final |
DataType | output_dtype (size_t i) const final |
Get data type. i-th output tensor. More... | |
Array< Tensor > | InputTensors () const final |
List all the input Tensors. More... | |
Operation | ReplaceInputs (const Operation &self, const std::unordered_map< Tensor, Tensor > &rmap) const final |
Replace the input of the operation by pattern specified by rmap. More... | |
void | PropBoundToInputs (const Operation &self, arith::Analyzer *analyzer, const std::unordered_map< const VarNode *, IntSet > &dom_map, std::unordered_map< Tensor, TensorDom > *out_dom_map) const final |
Propagate the bounds to inputs. More... | |
Stmt | BuildProvide (const Stage &stage, const std::unordered_map< IterVar, Range > &dom_map, bool debug_keep_trivial_loop) const final |
Build the statement that provide the output tensors. More... | |
size_t | num_schedulable_dims () const final |
void | VisitAttrs (AttrVisitor *v) |
TVM_DECLARE_FINAL_OBJECT_INFO (ComputeOpNode, BaseComputeOpNode) | |
Public Member Functions inherited from tvm::te::BaseComputeOpNode | |
Array< IterVar > | root_iter_vars () const final |
Array< PrimExpr > | output_shape (size_t idx) const final |
Get shape of i-th output tensor. More... | |
void | GatherBound (const Operation &self, const std::unordered_map< Tensor, TensorDom > &tensor_dom, std::unordered_map< IterVar, Range > *out_dom_map) const final |
Gather the bound from output tensor. Set the range of each root_iter_vars in the op to out_dom_map. More... | |
Stmt | BuildRealize (const Stage &stage, const std::unordered_map< IterVar, Range > &realize_map, const Stmt &body, String storage_scope="") const final |
Build the Realize statement that realizes the op's output tensors. More... | |
TVM_DECLARE_BASE_OBJECT_INFO (BaseComputeOpNode, OperationNode) | |
Public Member Functions inherited from tvm::te::OperationNode | |
virtual | ~OperationNode () |
TVM_DECLARE_BASE_OBJECT_INFO (OperationNode, Object) | |
Public Member Functions inherited from tvm::runtime::Object | |
uint32_t | type_index () const |
std::string | GetTypeKey () const |
size_t | GetTypeKeyHash () const |
template<typename TargetType > | |
bool | IsInstance () const |
bool | unique () const |
Object () | |
Object (const Object &other) | |
Object (Object &&other) | |
Object & | operator= (const Object &other) |
Object & | operator= (Object &&other) |
Public Attributes | |
Array< PrimExpr > | body |
the compute expression More... | |
Public Attributes inherited from tvm::te::BaseComputeOpNode | |
Array< IterVar > | axis |
IterVar on each axis. More... | |
Array< IterVar > | reduce_axis |
IterVar on each reduction axis, if the body is a Reduce. More... | |
Public Attributes inherited from tvm::te::OperationNode | |
std::string | name |
optional name of the operation More... | |
std::string | tag |
optional tag of the operation More... | |
Map< String, ObjectRef > | attrs |
additional attributes of the operation More... | |
Static Public Attributes | |
static constexpr const char * | _type_key = "ComputeOp" |
Static Public Attributes inherited from tvm::te::BaseComputeOpNode | |
static constexpr const char * | _type_key = "BaseComputeOp" |
Static Public Attributes inherited from tvm::te::OperationNode | |
static constexpr const char * | _type_key = "Operation" |
Static Public Attributes inherited from tvm::runtime::Object | |
static constexpr const char * | _type_key = "runtime.Object" |
static constexpr bool | _type_final = false |
static constexpr uint32_t | _type_child_slots = 0 |
static constexpr bool | _type_child_slots_can_overflow = true |
static constexpr bool | _type_has_method_visit_attrs = true |
static constexpr bool | _type_has_method_sequal_reduce = false |
static constexpr bool | _type_has_method_shash_reduce = false |
static constexpr uint32_t | _type_index = TypeIndex::kDynamic |
Additional Inherited Members | |
Public Types inherited from tvm::runtime::Object | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
Static Public Member Functions inherited from tvm::runtime::Object | |
static std::string | TypeIndex2Key (uint32_t tindex) |
Get the type key of the corresponding index from runtime. More... | |
static size_t | TypeIndex2KeyHash (uint32_t tindex) |
Get the type key hash of the corresponding index from runtime. More... | |
static uint32_t | TypeKey2Index (const std::string &key) |
Get the type index of the corresponding key from runtime. More... | |
static uint32_t | _GetOrAllocRuntimeTypeIndex () |
static uint32_t | RuntimeTypeIndex () |
Protected Member Functions inherited from tvm::runtime::Object | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
Static Protected Member Functions inherited from tvm::runtime::Object | |
static uint32_t | GetOrAllocRuntimeTypeIndex (const std::string &key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow) |
Get the type index using type key. More... | |
Protected Attributes inherited from tvm::runtime::Object | |
uint32_t | type_index_ {0} |
Type index(tag) that indicates the type of the object. More... | |
RefCounterType | ref_counter_ {0} |
The internal reference counter. More... | |
FDeleter | deleter_ = nullptr |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly. More... | |
A Compute op that compute a tensor on certain domain.
|
inline |
constructor
|
finalvirtual |
Build the statement that provide the output tensors.
stage | The schedule stage of the op. |
dom_map | The domain map of all iteration domains. |
debug_keep_trivial_loop | Whether keep trivial loops with extent of 1 |
Implements tvm::te::OperationNode.
|
finalvirtual |
Implements tvm::te::OperationNode.
|
finalvirtual |
Implements tvm::te::BaseComputeOpNode.
|
finalvirtual |
Get data type. i-th output tensor.
i | The output index. |
Implements tvm::te::OperationNode.
|
finalvirtual |
Propagate the bounds to inputs.
self | The reference to self. |
analyzer | The analyzer to be used in the function. |
dom_map | the domain map of Variables(corresponds to root_iter_vars) |
out_dom_map | The output domain. The function is only asked to fill the bounds for Tensors that is already in the out_dom_map |
Implements tvm::te::OperationNode.
|
finalvirtual |
Replace the input of the operation by pattern specified by rmap.
self | The reference to self. |
rmap | The replacement map. |
Implements tvm::te::OperationNode.
tvm::te::ComputeOpNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | ComputeOpNode | , |
BaseComputeOpNode | |||
) |
|
inline |
|
staticconstexpr |