tvm
|
Symbolic scan. More...
#include <operation.h>
Public Member Functions | |
ScanOpNode () | |
constructor More... | |
int | num_outputs () const final |
Array< IterVar > | root_iter_vars () const final |
DataType | output_dtype (size_t i) const final |
Get data type. i-th output tensor. More... | |
Array< PrimExpr > | output_shape (size_t i) const final |
Get shape of 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... | |
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... | |
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... | |
void | VisitAttrs (AttrVisitor *v) |
TVM_DECLARE_FINAL_OBJECT_INFO (ScanOpNode, 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 | |
IterVar | scan_axis |
IterVar to scan over. More... | |
Array< Tensor > | init |
the initialization tensors More... | |
Array< Tensor > | update |
the update function represented by tensor More... | |
Array< Tensor > | state_placeholder |
The placeholder to refer as states in update. More... | |
Array< Tensor > | inputs |
the inputs to the scan, these are optionally provided But they can be helpful to provide hints to speedup get of scan body. More... | |
Array< IterVar > | spatial_axis_ |
Spatial axis to indicate spatial dimension of each output. They corresponds to flattened spatial axis of the outputs. 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 = "ScanOp" |
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... | |
Symbolic scan.
|
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 |
Build the Realize statement that realizes the op's output tensors.
stage | the op's stage. |
realize_map | The realization domain map of the operators. |
body | The body that is going to get |
storage_scope | The storage scope associated with this realization |
Implements tvm::te::OperationNode.
|
finalvirtual |
Gather the bound from output tensor. Set the range of each root_iter_vars in the op to out_dom_map.
self | The reference to self. |
tensor_dom | Domain map of Tensor->access set of each dimension. |
out_dom_map | The output domain map of each IterVar to be setted. |
Implements tvm::te::OperationNode.
|
finalvirtual |
Implements tvm::te::OperationNode.
|
finalvirtual |
Get data type. i-th output tensor.
i | The output index. |
Implements tvm::te::OperationNode.
Get shape of 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.
Implements tvm::te::OperationNode.
tvm::te::ScanOpNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | ScanOpNode | , |
OperationNode | |||
) |
|
inline |
|
staticconstexpr |
the inputs to the scan, these are optionally provided But they can be helpful to provide hints to speedup get of scan body.
IterVar tvm::te::ScanOpNode::scan_axis |
IterVar to scan over.
Spatial axis to indicate spatial dimension of each output. They corresponds to flattened spatial axis of the outputs.
[output[0].axis[1], output[0].axis[2]... output[k].axis[j]...] These are auxiliary data structure for storing result of bound inference. They do not corresponds to splittable iterations, thus the name comes with underscore.