|
class | Add |
| Managed reference to AddNode. More...
|
|
class | AddNode |
| a + b More...
|
|
class | Allocate |
| Managed reference to AllocateNode. More...
|
|
class | AllocateConst |
| Managed reference to AllocateConstNode. More...
|
|
class | AllocateConstNode |
| Allocate a buffer that can be used in body. More...
|
|
class | AllocateNode |
| Allocate a buffer that can be used in body. More...
|
|
class | And |
| Managed reference to AndNode. More...
|
|
class | AndNode |
| a && b More...
|
|
class | Any |
| Managed reference to AnyNode. More...
|
|
class | AnyNode |
| Any shape. More...
|
|
class | AssertStmt |
| Managed reference to AssertStmtNode. More...
|
|
class | AssertStmtNode |
| Assert condition, if an error occurs, return the error message. More...
|
|
class | AttrStmt |
| Managed reference to AttrStmtNode. More...
|
|
class | AttrStmtNode |
| Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary information for IR passes that transforms body. More...
|
|
class | BijectiveLayout |
| Bijective function mapping for data layout transformation. Given two Layout, BijectiveLayout build and store the mapping rules, provides API to transform N-dimention tensor from the source indices (i0, i1, .., im) to the destination indices (j0, j1, .., jm). More...
|
|
class | BijectiveLayoutNode |
|
class | BinaryOpNode |
| Base template to implement binary ops. More...
|
|
class | Block |
| Managed reference to BlockNode. More...
|
|
struct | BlockInfo |
| The information about a TensorIR block, it contains two categories of information 1) Info on the block scope rooted at a specific block, including dependency tracking, flags indicating if the scope is a stage pipeline, etc. 2) Info on the block itself, including if the block has a quasi-affine binding, if the regions it reads are completely covered by their producers, etc. More...
|
|
class | BlockNode |
| A block is a basic schedule unit in TIR. More...
|
|
class | BlockRealize |
| Managed reference to BlockRealizeNode. More...
|
|
class | BlockRealizeNode |
| A block realization node represents execution of the block at the binding values. More...
|
|
class | BlockRV |
| Managed reference to BlockRVNode. More...
|
|
class | BlockRVNode |
| A random variable that evaluates to a TensorIR block. More...
|
|
class | BlockScope |
| Managed reference to BlockScopeNode. More...
|
|
class | BlockScopeNode |
| An object with 1-to-1 correspondence with each block reference in the sref tree. This data structure is used to track the producer-consumer dependencies between blocks. For example even leaf nodes have a scope node, even though they have no dependencies. More...
|
|
class | Broadcast |
| Managed reference to BroadcastNode. More...
|
|
class | BroadcastNode |
| Create a vector where all the elements are value. More...
|
|
class | Buffer |
| Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types, used to specify the memory layout of the Tensor used in program input. More...
|
|
class | BufferLoad |
| Managed reference to BufferLoadNode. More...
|
|
class | BufferLoadNode |
| Load value from the high dimension buffer. More...
|
|
class | BufferNode |
| Node to represent a buffer. More...
|
|
class | BufferRealize |
| Managed reference to BufferRealizeNode. More...
|
|
class | BufferRealizeNode |
| Annotate the region where the buffer need to be read and write in the body. We only need to allocate the space for the corresponding region. More...
|
|
class | BufferRegion |
| Managed reference to BufferRegionNode. More...
|
|
class | BufferRegionNode |
| Representing the region of multi-dimensional buffer access. More...
|
|
class | BufferStore |
| Managed reference to BufferStoreNode. More...
|
|
class | BufferStoreNode |
| Store value to the high dimension buffer. More...
|
|
class | Call |
| Managed reference to CallNode. More...
|
|
class | CallNode |
| Call node. More...
|
|
class | Cast |
| Managed reference to CastNode. More...
|
|
class | CastNode |
| Cast value from one data type to another. More...
|
|
class | CmpOpNode |
| Base template to implement comparison ops. More...
|
|
class | CommReducer |
| Managed reference to CommReducerNode. More...
|
|
class | CommReducerNode |
| A commutative reducer node to represent a commutative binary operator with identity element. More...
|
|
class | DataProducer |
| Managed reference to DataProducerNode. More...
|
|
class | DataProducerNode |
| Base node for data producers. More...
|
|
class | Dependency |
| Managed reference to DependencyNode. More...
|
|
class | DependencyNode |
| A tuple (src, dst, kind) representing certain types of dependency. For example, (A, B, kRAW) means block B depends on block A, and the dependency kind is read-after-write, which means block B reads the result written by block A. More...
|
|
class | Div |
| Managed reference to DivNode. More...
|
|
class | DivNode |
| a / b in the C semnatics. More...
|
|
class | EQ |
| Managed reference to EQNode. More...
|
|
class | EQNode |
| a == b More...
|
|
class | Evaluate |
| Managed reference to EvaluateNode. More...
|
|
class | EvaluateNode |
| Evaluates an expression. This is mostly used for putting a Call node into Stmt. More...
|
|
struct | ExprDeepEqual |
| Compare two expressions recursively and check if they are equal to each other without var remapping. More...
|
|
class | ExprFunctor |
| A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit Function. More...
|
|
class | ExprFunctor< R(const PrimExpr &n, Args...)> |
|
class | ExprMutator |
| ExprMutator that mutates expressions. More...
|
|
class | ExprVisitor |
| ExprVisitor. More...
|
|
class | FloorDiv |
| Managed reference to FloorDivNode. More...
|
|
class | FloorDivNode |
| Floor division, floor(a/b) More...
|
|
class | FloorMod |
| Managed reference to FloorModNode. More...
|
|
class | FloorModNode |
| The remainder of the floordiv. More...
|
|
class | For |
| Managed reference to ForNode. More...
|
|
class | ForNode |
| A for loop, with poissible type annotations. More...
|
|
class | GE |
| Managed reference to GENode. More...
|
|
class | GENode |
| a >= b More...
|
|
class | GT |
| Managed reference to GTNode. More...
|
|
class | GTNode |
| a > b More...
|
|
class | IfThenElse |
| Managed reference to IfThenElseNode. More...
|
|
class | IfThenElseNode |
| IfThenElse statment. More...
|
|
class | IndexMap |
|
class | IndexMapNode |
| Defines a mapping between two representations of indices into a buffer. More...
|
|
class | Instruction |
| Managed reference to InstructionNode. More...
|
|
class | InstructionKind |
| Managed reference to InstructionKindNode. More...
|
|
class | InstructionKindNode |
| Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its own properties, including: 1) A boolean indicating if the instruction is pure, i.e. change nothing in the schedule state 2) A functor that applies the instruction to a TensorIR schedule 3) A functor that converts the instruction to a statement in python syntax 4) A functor that serialize its attributes to JSON 5) A functor that deserialize its attributes from JSON. More...
|
|
class | InstructionKindRegEntry |
| An entry in the registry of InstructionKind. More...
|
|
class | InstructionNode |
| Schedule instructions each corresponds to a schedule primitive. More...
|
|
class | IterVar |
| Iteration Variable, represents an iteration over an integer interval. More...
|
|
class | IterVarNode |
| An iteration variable representing an iteration over a one dimensional interval. More...
|
|
class | Layout |
| Managed reference to LayoutNode. More...
|
|
class | LayoutAxis |
|
class | LayoutNode |
| Layout is to describe how data is organized within an N-dimention tensor. It is composed of upper cases, lower cases and numbers, where upper case indicates a primal axis and the corresponding lower case with factor size indicates the subordinate axis. For example, NCHW16c can describe a 5-D tensor of [batch_size, channel, height, width, channel_block]. Here subordinate axis channel_block=16 is the factor size of the primal axis C (channel). Layout for scalar is defined, while both its name and axes have size 0. More...
|
|
class | LE |
| Managed reference to LENode. More...
|
|
struct | LENode |
| a <= b More...
|
|
class | Let |
| Managed reference to LetNode. More...
|
|
class | LetNode |
| Let binding. Bind var to value then evaluate body. More...
|
|
class | LetStmt |
| Managed reference to LetStmtNode. More...
|
|
class | LetStmtNode |
| Let binding, bind var to value, then run body. More...
|
|
class | Load |
| Managed reference to LoadNode. More...
|
|
class | LoadNode |
| Load the value from buffer_var. More...
|
|
class | LoopRV |
| Managed reference to LoopRVNode. More...
|
|
class | LoopRVNode |
| A random variable that evaluates to a TensorIR for loop. More...
|
|
class | LT |
| Managed reference to LTNode. More...
|
|
class | LTNode |
| a < b More...
|
|
class | MatchBufferRegion |
| Managed reference to MatchBufferRegionNode. More...
|
|
class | MatchBufferRegionNode |
| Match introduces a constraint that the source buffer region can be remapped to the data layout specified by the buffer field. The constraint can be checked in later part of lowering (or optionally during runtime). More...
|
|
class | Max |
| Managed reference to MaxNode. More...
|
|
class | MaxNode |
| max(a, b) More...
|
|
class | Min |
| Managed reference to MinNode. More...
|
|
class | MinNode |
| min(a, b) More...
|
|
class | Mod |
| Managed reference to ModNode. More...
|
|
class | ModNode |
| a % b in the C semnatics. More...
|
|
class | Mul |
| Managed reference to MulNode. More...
|
|
class | MulNode |
| a * b More...
|
|
class | NE |
| Managed reference to NENode. More...
|
|
class | NENode |
| a != b More...
|
|
class | Not |
| Managed reference to NotNode. More...
|
|
class | NotNode |
| !a More...
|
|
class | Or |
| Managed reference to OrNode. More...
|
|
class | OrNode |
| a || b More...
|
|
class | Prefetch |
| Managed reference to PrefetchNode. More...
|
|
class | PrefetchNode |
| A prefetch hint for a buffer. More...
|
|
class | PrimFunc |
| Managed reference to PrimFuncNode. More...
|
|
class | PrimFuncNode |
| Primitive functions that contains TIR statements. More...
|
|
class | ProducerLoad |
| Managed reference to ProducerLoadNode. More...
|
|
class | ProducerLoadNode |
| Load value from the result produced by the producer. More...
|
|
class | ProducerRealize |
| Managed reference to ProducerRealizeNode. More...
|
|
class | ProducerRealizeNode |
| Annotate the bounds where the data produced by the producer need to be written and read in body. We will need to allocate space for the corresponding regions. More...
|
|
class | ProducerStore |
| Managed reference to ProducerStoreNode. More...
|
|
class | ProducerStoreNode |
| Store value into mult-dimensional array that will be read by the consumer of the producer. More...
|
|
class | Ramp |
| Managed reference to RampNode. More...
|
|
class | RampNode |
| Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to construct a index for a continuous vector load. More...
|
|
class | Reduce |
| Managed reference to ReduceNode. More...
|
|
class | ReduceNode |
| Reduction operator operator. More...
|
|
class | Schedule |
| Managed reference to ScheduleNode. More...
|
|
class | ScheduleNode |
| The user-facing schedule class. More...
|
|
class | ScheduleState |
| Managed reference to ScheduleStateNode. More...
|
|
class | ScheduleStateNode |
| The state of scheduling, which exposes a Replace method as the primary interface for all the scheduling primitives to manipulate the TensorIR. More...
|
|
class | Select |
| Managed reference to SelectNode. More...
|
|
class | SelectNode |
| return true_value if condition is true, otherwise return false_value. More...
|
|
class | SeqStmt |
| Sequence statement. More...
|
|
class | SeqStmtNode |
| The container of seq statement. Represent a sequence of statements. More...
|
|
class | Shuffle |
| Managed reference to ShuffleNode. More...
|
|
class | ShuffleNode |
| Shuffle instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...) More...
|
|
class | SizeVar |
| a named variable represents a tensor index size More...
|
|
class | SizeVarNode |
| A variable node represent a tensor index size, whose value must be non-negative. More...
|
|
class | Stmt |
| Container of all statements. More...
|
|
class | StmtExprMutator |
| Mutator that recursively mutates stmts and exprs on them. More...
|
|
class | StmtExprVisitor |
| Visitor that recursively visit stmts and exprs on them. More...
|
|
class | StmtFunctor |
| Same as ExprFunctor except it is applied on statements. More...
|
|
class | StmtFunctor< R(const Stmt &n, Args... args)> |
|
class | StmtMutator |
| StmtMutator that mutates the statements. More...
|
|
class | StmtNode |
| Base node of all statements. More...
|
|
class | StmtSRef |
| Managed reference to StmtSRefNode. More...
|
|
class | StmtSRefNode |
| An object that refers to schedulable elements (block/for-loop) in TensorIR, aka "sref". More...
|
|
class | StmtVisitor |
| StmtVisitor. More...
|
|
class | Store |
| Managed reference to StoreNode. More...
|
|
class | StoreNode |
| Store value to the buffer. More...
|
|
class | StringImm |
| Managed reference to StringImmNode. More...
|
|
class | StringImmNode |
| String constants, only used in asserts. More...
|
|
class | Sub |
| Managed reference to SubNode. More...
|
|
class | SubNode |
| a - b More...
|
|
class | TensorIntrin |
| Managed reference to TensorIntrinNode. More...
|
|
class | TensorIntrinNode |
| Tensor intrinsics for tensorization. More...
|
|
class | Trace |
| Managed reference to TraceNode. More...
|
|
class | TraceNode |
| An execution trace of a scheduling program. More...
|
|
class | Var |
| a named variable in TIR More...
|
|
class | VarNode |
| A variable node in the IR. More...
|
|
class | While |
| Managed reference to WhileNode. More...
|
|
class | WhileNode |
| A While loop. More...
|
|
|
template<class FLambda > |
void | VisitPrimFuncs (const IRModule &mod, FLambda fvisit) |
| Visit the PrimFuncs in the IRModule. More...
|
|
double | EstimateTIRFlops (const Stmt &stmt) |
| Estimate the FLOPs of a TIR fragment. More...
|
|
double | EstimateTIRFlops (const IRModule &mod) |
| Estimate the FLOPs of TIRs in an IRModule. More...
|
|
Array< Var > | UndefinedVars (const Stmt &stmt, const Array< Var > &defs) |
| Find undefined vars in the statement. More...
|
|
Array< Var > | UndefinedVars (const PrimExpr &expr) |
| Find undefined vars in the expression. More...
|
|
CallEffectKind | SideEffect (const PrimExpr &expr) |
| Analyze the side effect. More...
|
|
bool | UsesVar (const Stmt &stmt, std::function< bool(const VarNode *)> vset_contains) |
| Whether the given Stmt uses any var in the given variable set. More...
|
|
bool | UsesVar (const PrimExpr &expr, std::function< bool(const VarNode *)> vset_contains) |
| Whether the given PrimExpr uses any var in the given variable set. More...
|
|
bool | VerifySSA (const PrimFunc &func) |
| Verifies whether the IR stmt or Expr is in SSA form. That is: each Var is defined and assigned once(in Let/For) More...
|
|
bool | VerifyMemory (const PrimFunc &func) |
| Verify if memory accesses are legal for a specific target device type. More...
|
|
bool | VerifyGPUCode (const PrimFunc &func, Map< String, PrimExpr > constraints) |
| Verify the correctness of a GPU code It will check the whether the amount of memory usage or the number of threads in a block exceeds the limit. More...
|
|
Array< Array< BufferRegion > > | GetBlockAccessRegion (const Block &block, const Map< Var, Buffer > &buffer_var_map) |
| Auto detect the block access region according to its body stmt It will detect the access region as an array in order of appearance in AST. More...
|
|
Array< Array< BufferRegion > > | GetBlockReadWriteRegion (const Block &block, const Map< Var, Buffer > &buffer_var_map) |
| Auto detect the block read/write region according to its body stmt. An opaque access will be counted as both a read and a write access. More...
|
|
size_t | CalculateExprComplexity (const PrimExpr &expr) |
| Calculate the expresion complexity based on number of symbols it contains. More...
|
|
size_t | CalculateWorkspaceBytes (const PrimFunc &func, const Integer &workspace_byte_alignment) |
| Calculate the workspace size in bytes needed by the TIR allocates inside the TIR PrimFunc. More...
|
|
Map< Buffer, Optional< Stmt > > | DetectBufferAccessLCA (const PrimFunc &func) |
| Detect the lowest common ancestor(LCA) of buffer access, including both high-level access(BufferLoad, BufferStore) and low-level access(Load, Store and opaque access). The LCA may be a For loop or a Block. More...
|
|
Buffer | decl_buffer (Array< PrimExpr > shape, DataType dtype=DataType::Float(32), String name="buffer", String storage_scope="", Array< IntImm > axis_separators={}, Span span=Span()) |
| Construct a new buffer given shape, and dtype. More...
|
|
template<typename K , typename V > |
std::unordered_map< K, V > | as_unordered_map (const Map< K, V > &dmap) |
|
PrimFunc | Specialize (PrimFunc func, const Map< Var, ObjectRef > ¶m_map) |
|
bool | IsPointerType (const Type &type, const DataType &element_type) |
| Check if type is a pointer to a runtime element type. More...
|
|
template<typename ValueType , typename = typename std::enable_if<std::is_pod<ValueType>::value>::type> |
PrimExpr | make_const (DataType t, ValueType value, Span span=Span()) |
| Make a const value with certain data type. More...
|
|
PrimExpr | make_zero (DataType t, Span span=Span()) |
| Make a const zero expr. More...
|
|
PrimExpr | const_true (int lanes=1, Span span=Span()) |
| Make a constant true expression. More...
|
|
PrimExpr | const_false (int lanes=1, Span span=Span()) |
| Make a constant false expression. More...
|
|
const int64_t * | as_const_int (const PrimExpr &x) |
| Get x as constant int expression. More...
|
|
bool | is_const_int (const PrimExpr &x, int64_t value) |
| Check whether x is a constant integer expression. More...
|
|
bool | is_no_op (const tir::Stmt &stmt) |
| Check whether stmt is nop. More...
|
|
bool | is_one (const PrimExpr &x) |
| Check whether x is a constant integer 1. More...
|
|
bool | is_zero (const PrimExpr &x) |
| Check whether x is a constant integer 0. More...
|
|
bool | is_const_int (const PrimExpr &x) |
| Check whether x is an integer constant. More...
|
|
bool | is_const_number (const PrimExpr &x) |
| Check whether x is an integer/float constant. More...
|
|
template<typename FReduce > |
PrimExpr | foldl (FReduce freduce, PrimExpr init_value, const Array< PrimExpr > &values, Span span=Span()) |
| Left fold. More...
|
|
bool | is_const_power_of_two_integer (const PrimExpr &x, int *shift) |
| Check whether x is a constant power of two If x is power of two, write the power to the shift. More...
|
|
bool | is_positive_const (const PrimExpr &a) |
|
bool | is_negative_const (const PrimExpr &a) |
|
template<typename ValueType > |
PrimExpr | MakeConstScalar (DataType t, ValueType value, Span span=Span()) |
|
PrimExpr | TypeAnnotation (DataType dtype, Span span=Span()) |
| Create a type annotation expression. More...
|
|
std::ostream & | operator<< (std::ostream &os, ForKind kind) |
|
const char * | ForKind2String (ForKind t) |
|
Stmt | IRTransform (Stmt stmt, const runtime::PackedFunc &preorder, const runtime::PackedFunc &postorder, Optional< Array< String >> only_enable=NullOpt) |
| recursively visit the ir nodes in post DFS order, and transform it More...
|
|
void | PostOrderVisit (const ObjectRef &node, std::function< void(const ObjectRef &)> fvisit) |
| Recursively visit the ir in post DFS order node, apply fvisit Each node is guaranteed to be visited only once. More...
|
|
Stmt | Substitute (Stmt stmt, std::function< Optional< PrimExpr >(const Var &var)> vmap) |
| Substitute the var specified by vmap. More...
|
|
PrimExpr | Substitute (PrimExpr expr, std::function< Optional< PrimExpr >(const Var &var)> vmap) |
| Substitute the var specified by vmap. More...
|
|
Array< Range > | Substitute (const Array< Range > ®ion, const Map< Var, PrimExpr > &vmap) |
| Substitute the var specified by vmap. More...
|
|
template<typename T > |
auto | Substitute (T input, const Map< Var, PrimExpr > &value_map) |
| Sugar for substitute via a given map. More...
|
|
template<typename T > |
T | Substitute (T input, const std::unordered_map< const VarNode *, PrimExpr > &value_map) |
| Sugar for substitute via a given map. More...
|
|
void | PreOrderVisit (const ObjectRef &stmt_or_expr, const std::function< bool(const ObjectRef &)> &fvisit) |
| Recursively visit the IR in pre DFS order node, apply fvisit. If fvisit returns false, it won't visit the children of the node. More...
|
|
PrimFunc | RenewDefs (const PrimFunc &func) |
| Renew the definition nodes for a TIR, including Var, Buffer and IterVar. This pass works as a simple DeepCopy to duplicate a function with different Vars and Buffers but the same behavior. More...
|
|
const char * | IterVarType2String (IterVarType t) |
|