tvm
|
Performance counters for profiling via the PAPI library. More...
Namespaces | |
arith | |
namespace of arithmetic analysis. | |
attr | |
Generic attribute names that can be attached to any function. | |
codegen | |
namespace for target translation and codegen. | |
detail | |
instrument | |
ir | |
meta_schedule | |
relax | |
runtime | |
script | |
support | |
te | |
Tensor expression language DSL. | |
tir | |
topi | |
transform | |
Classes | |
struct | AttrError |
Error thrown during attribute checking. More... | |
class | AttrFieldInfoNode |
Information about attribute fields in string representations. More... | |
class | AttrFieldInfo |
AttrFieldInfo. More... | |
class | BaseAttrsNode |
Base class of all attribute class. More... | |
class | Attrs |
Managed reference to BaseAttrsNode. More... | |
class | DictAttrsNode |
Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior, its fields are directly accessible via object.field_name like other normal nodes. More... | |
class | DictAttrs |
Managed reference to DictAttrsNode. More... | |
class | AttrsNode |
The base class of the all the Use "curiously recurring template pattern". More... | |
class | DiagnosticNode |
A compiler diagnostic message. More... | |
class | Diagnostic |
class | DiagnosticBuilder |
A wrapper around std::stringstream to build a diagnostic. More... | |
class | DiagnosticRendererNode |
Display diagnostics in a given display format. More... | |
class | DiagnosticRenderer |
class | DiagnosticContextNode |
class | DiagnosticContext |
class | EnvFuncNode |
A serializable function backed by TVM's global environment. More... | |
class | EnvFunc |
Managed reference to EnvFuncNode. More... | |
class | TypedEnvFunc |
Please refer to TypedEnvFunc<R(Args..)>. More... | |
class | TypedEnvFunc< R(Args...)> |
A typed version of EnvFunc. It is backed by a GlobalFuncNode internally. More... | |
class | BaseExprNode |
Base type of all the expressions. More... | |
class | BaseExpr |
Managed reference to BaseExprNode. More... | |
class | PrimExprNode |
Base node of all primitive expressions. More... | |
class | PrimExpr |
Reference to PrimExprNode. More... | |
class | RelaxExprNode |
Base node of all non-primitive expressions. More... | |
class | RelaxExpr |
Managed reference to RelaxExprNode. More... | |
class | GlobalVarNode |
Global variable that lives in the top-level module. More... | |
class | GlobalVar |
Managed reference to GlobalVarNode. More... | |
class | IntImmNode |
Constant integer literals in the program. More... | |
class | IntImm |
Managed reference class to IntImmNode. More... | |
class | FloatImmNode |
Constant floating point literals in the program. More... | |
class | FloatImm |
Managed reference class to FloatImmNode. More... | |
class | Bool |
Boolean constant. More... | |
class | Integer |
Container of constant int that adds more constructors. More... | |
class | RangeNode |
range over one dimension More... | |
class | Range |
Range container More... | |
class | BaseFuncNode |
Base node of all functions. More... | |
class | BaseFunc |
Managed reference to BaseFuncNode. More... | |
class | GlobalInfoNode |
GlobalInfo are globally static object that are referred by the IR itself. Base node for all global info that can appear in the IR. More... | |
class | GlobalInfo |
Managed reference to GlobalInfoNode. More... | |
class | VDeviceNode |
A global info subclass for virtual devices. More... | |
class | VDevice |
Managed reference to VDeviceNode. More... | |
class | DummyGlobalInfoNode |
A dummy global info sub-class for testing purpose. More... | |
class | DummyGlobalInfo |
Managed reference to DummyGlobalInfoNode. More... | |
class | GlobalVarSupplyNode |
GlobalVarSupply can be used to generate unique GlobalVars. More... | |
class | GlobalVarSupply |
Managed reference class to GlobalVarSupplyNode. More... | |
class | IRModuleNode |
IRModule that holds functions and type definitions. More... | |
class | IRModule |
Managed reference class to IRModuleNode. More... | |
class | NameSupplyNode |
NameSupply can be used to generate unique names. More... | |
class | NameSupply |
Managed reference class to NameSupplyNode. More... | |
class | OpAttrMap |
Map<Op,ValueType> used to store meta-information about Op. More... | |
class | OpNode |
Primitive Op(builtin intrinsics) More... | |
class | Op |
Managed reference class to OpNode. More... | |
class | OpRegEntry |
Helper structure to register operators. More... | |
class | SourceNameNode |
The name of a source fragment. More... | |
class | SourceName |
The source name of a file span. More... | |
class | SpanNode |
Stores locations in frontend source that generated a node. More... | |
class | Span |
class | SequentialSpanNode |
Store a list of spans for an expr generated from mulitple source exprs. More... | |
class | SequentialSpan |
Reference class of SequentialSpanNode. More... | |
class | SourceNode |
class | Source |
class | SourceMapNode |
Stores locations in frontend source that generated a node. More... | |
class | SourceMap |
class | TypeNode |
Type is the base type of all types. More... | |
class | Type |
Managed reference to TypeNode. More... | |
class | PrimTypeNode |
Primitive data types used in the low-level IR. More... | |
class | PrimType |
class | PointerTypeNode |
Low-level raw pointer type. More... | |
class | PointerType |
class | TupleTypeNode |
The type of tuple values. More... | |
class | TupleType |
Managed reference to TupleTypeNode. More... | |
class | FuncTypeNode |
Function type. More... | |
class | FuncType |
Managed reference to FuncTypeNode. More... | |
class | TypeFunctor |
class | TypeFunctor< R(const Type &n, Args...)> |
class | TypeVisitor |
A type visitor that recursively visit types. More... | |
class | TypeMutator |
TypeMutator that mutates expressions. More... | |
class | AttrRegistryMapContainerMap |
Generic attribute map. More... | |
class | AttrRegistryMap |
Map<Key, ValueType> used to store meta-data. More... | |
class | NodeFunctor |
A dynamically dispatched functor on the type of the first argument. More... | |
class | NodeFunctor< R(const ObjectRef &n, Args...)> |
class | ObjectPathNode |
Path to an object from some root object. More... | |
class | ObjectPath |
class | RootPathNode |
class | RootPath |
class | AttributeAccessPathNode |
class | AttributeAccessPath |
class | UnknownAttributeAccessPathNode |
class | UnknownAttributeAccessPath |
class | ArrayIndexPathNode |
class | ArrayIndexPath |
class | MissingArrayElementPathNode |
class | MissingArrayElementPath |
class | MapValuePathNode |
class | MapValuePath |
class | MissingMapEntryPathNode |
class | MissingMapEntryPath |
class | AttrVisitor |
Visitor class to get the attributes of an AST/IR node. The content is going to be called for each field. More... | |
class | ReflectionVTable |
Virtual function table to support IR/AST node reflection. More... | |
class | ReprPrinter |
A printer class to print the AST/IR nodes. More... | |
class | ReprLegacyPrinter |
Legacy behavior of ReprPrinter. More... | |
class | PrinterConfigNode |
class | PrinterConfig |
class | TVMScriptPrinter |
Legacy behavior of ReprPrinter. More... | |
class | BaseValueEqual |
Equality definition of base value class. More... | |
class | ObjectPathPairNode |
Pair of ObjectPath s, one for each object being tested for structural equality. More... | |
class | ObjectPathPair |
class | StructuralEqual |
Content-aware structural equality comparator for objects. More... | |
class | SEqualReducer |
A Reducer class to reduce the structural equality result of two objects. More... | |
class | SEqualHandlerDefault |
The default handler for equality testing. More... | |
class | BaseValueHash |
Hash definition of base value classes. More... | |
class | StructuralHash |
Content-aware structural hashing. More... | |
class | SHashReducer |
A Reducer class to reduce the structural hash value. More... | |
class | SHashHandlerDefault |
The default handler for hash key computation. More... | |
struct | NDArrayContainerTrait |
class | With |
RAII wrapper function to enter and exit a context object similar to python's with syntax. More... | |
class | TargetTagNode |
A target tag. More... | |
class | TargetTag |
Managed reference class to TargetTagNode. More... | |
class | TargetTagRegEntry |
class | TargetNode |
Compilation target. More... | |
class | Target |
Managed reference class to TargetNode. More... | |
class | MemoryInfoNode |
Memory information of special memory region. Use MemoryInfo as its container type. More... | |
class | MemoryInfo |
Defines memory info. More... | |
class | TargetKindAttrMap |
Map<TargetKind, ValueType> used to store meta-information about TargetKind. More... | |
class | TargetKindNode |
Target kind, specifies the kind of the target. More... | |
class | TargetKind |
Managed reference class to TargetKindNode. More... | |
class | TargetKindRegEntry |
Helper structure to register TargetKind. More... | |
class | VirtualDeviceNode |
Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by the PlanDevices pass to collect and solve (virtual) device constraints for the whole Relax program. More... | |
class | VirtualDevice |
Managed reference class to VirtualDeviceNode . More... | |
class | VirtualDeviceCache |
A cache of VirtualDevices . This can be used: More... | |
class | AttrRegistry |
Typedefs | |
using | MemoryScope = String |
Abstract label for an area of memory. More... | |
using | DataType = runtime::DataType |
using | Device = DLDevice |
using | TargetFeatures = Map< String, ObjectRef > |
Map containing parsed features of a specific Target. More... | |
using | TargetJSON = Map< String, ObjectRef > |
TargetParser to apply on instantiation of a given TargetKind. More... | |
using | FTVMTargetParser = runtime::TypedPackedFunc< TargetJSON(TargetJSON)> |
Enumerations | |
enum class | DiagnosticLevel : int { kBug = 10 , kError = 20 , kWarning = 30 , kNote = 40 , kHelp = 50 } |
The diagnostic level, controls the printing of the message. More... | |
enum class | CallingConv : int { kDefault = 0 , kCPackedFunc = 1 , kDeviceKernelLaunch = 2 } |
Possible Calling conventions. More... | |
enum class | LinkageType : int { kInternal = 0 , kExternal = 1 } |
Supported linkage types. More... | |
Functions | |
template<typename TObjectRef > | |
TObjectRef | NullValue () |
Create a NodeRef type that represents null. More... | |
template<> | |
DataType | NullValue< DataType > () |
template<typename TAttrs > | |
TAttrs | AttrsWithDefaultValues () |
Create an Attr object with all default values. More... | |
DictAttrs | WithAttrs (DictAttrs attrs, Map< String, ObjectRef > new_attrs) |
Copy the DictAttrs, but overrides attributes with the entries from attrs . More... | |
DictAttrs | WithAttr (DictAttrs attrs, String key, ObjectRef value) |
Copy the DictAttrs, but overrides a single attribute. More... | |
DictAttrs | WithAttr (DictAttrs attrs, const std::string &key, ObjectRef value) |
DictAttrs | WithoutAttr (DictAttrs attrs, const std::string &key) |
Copy the DictAttrs, but without a specific attribute. More... | |
template<typename TFunc > | |
TFunc | WithAttr (TFunc input, const std::string &attr_key, ObjectRef attr_value) |
Copy the function or module, but overrides the attribute value key with the value. More... | |
template<typename TFunc > | |
TFunc | WithAttrs (TFunc input, Map< String, ObjectRef > attrs) |
Copy the function or module, but overrides the attributes with the entries from attrs . More... | |
template<typename TFunc > | |
TFunc | WithoutAttr (TFunc input, const std::string &attr_key) |
Copy the function or module, but removes the specified attribute. More... | |
DiagnosticRenderer | TerminalRenderer (std::ostream &ostream) |
PrimExpr | operator+ (PrimExpr a, PrimExpr b) |
add operator More... | |
PrimExpr | operator- (PrimExpr a, PrimExpr b) |
subtraction operator More... | |
PrimExpr | operator- (PrimExpr a) |
negation. More... | |
PrimExpr | operator* (PrimExpr a, PrimExpr b) |
multiplication operator More... | |
PrimExpr | operator/ (PrimExpr a, PrimExpr b) |
division operator More... | |
PrimExpr | operator<< (PrimExpr a, PrimExpr b) |
left shift operator More... | |
PrimExpr | operator>> (PrimExpr a, PrimExpr b) |
right shift operator More... | |
PrimExpr | operator> (PrimExpr a, PrimExpr b) |
greater More... | |
PrimExpr | operator>= (PrimExpr a, PrimExpr b) |
greater_equal More... | |
PrimExpr | operator< (PrimExpr a, PrimExpr b) |
less More... | |
PrimExpr | operator<= (PrimExpr a, PrimExpr b) |
less_equal More... | |
PrimExpr | operator== (PrimExpr a, PrimExpr b) |
equal More... | |
PrimExpr | operator!= (PrimExpr a, PrimExpr b) |
not_equal More... | |
PrimExpr | operator&& (PrimExpr a, PrimExpr b) |
and More... | |
PrimExpr | operator|| (PrimExpr a, PrimExpr b) |
or More... | |
PrimExpr | operator! (PrimExpr a) |
not More... | |
PrimExpr | operator& (PrimExpr a, PrimExpr b) |
take bitwise and of two values More... | |
PrimExpr | operator| (PrimExpr a, PrimExpr b) |
take bitwise or of two values More... | |
PrimExpr | operator^ (PrimExpr a, PrimExpr b) |
take bitwise xor of two values More... | |
PrimExpr | operator~ (PrimExpr a) |
take bitwise negation of two values More... | |
Bool | operator|| (const Bool &a, bool b) |
Bool | operator|| (bool a, const Bool &b) |
Bool | operator|| (const Bool &a, const Bool &b) |
Bool | operator&& (const Bool &a, bool b) |
Bool | operator&& (bool a, const Bool &b) |
Bool | operator&& (const Bool &a, const Bool &b) |
bool | operator== (const Bool &a, bool b) |
bool | operator== (bool a, const Bool &b) |
bool | operator== (const Bool &a, const Bool &b) |
Type | VoidType () |
bool | IsVoidType (const Type &type) |
Check whether the tyep represents void. More... | |
Optional< String > | GetAttrKeyByAddress (const Object *object, const void *attr_address) |
Given an object and an address of its attribute, return the key of the attribute. More... | |
void | Dump (const runtime::ObjectRef &node) |
Dump the node to stderr, used for debug purposes. More... | |
void | Dump (const runtime::Object *node) |
Dump the node to stderr, used for debug purposes. More... | |
std::string | SaveJSON (const runtime::ObjectRef &node) |
save the node as well as all the node it depends on as json. This can be used to serialize any TVM object More... | |
runtime::ObjectRef | LoadJSON (std::string json_str) |
Internal implementation of LoadJSON Load tvm Node object from json and return a shared_ptr of Node. More... | |
void | CheckAndUpdateHostConsistency (Target *target, Target *host) |
Check and update host field of the given legacy target and target host pair. Note that this function is for legacy target api compatibility issue only, not recommended for other use. More... | |
MemoryInfo | GetMemoryInfo (const std::string &scope) |
get memory info given scope More... | |
Type | GetType (const PrimExpr &expr) |
Get the type of the expression under the unified type system. More... | |
Type | GetTypeFromRuntimeDataType (const DataType &dtype) |
Get the type corresponding to DataType. More... | |
runtime::DataType | GetRuntimeDataType (const Type &type) |
Get the implied DataType for storing values with type during runtime. More... | |
PrimExpr | ret (PrimExpr value, Span span=Span()) |
Return the value. More... | |
PrimExpr | max_value (const DataType &dtype, Span span=Span()) |
PrimExpr | min_value (const DataType &dtype, Span span=Span()) |
PrimExpr | infinity (const DataType &dtype, Span span=Span()) |
PrimExpr | cast (const DataType &t, PrimExpr value, Span span=Span()) |
cast value to type. More... | |
PrimExpr | reinterpret (const DataType &t, PrimExpr value, Span span=Span()) |
perform reinterpret cast value to type. More... | |
PrimExpr | add (PrimExpr a, PrimExpr b, Span span=Span()) |
add operator More... | |
PrimExpr | sub (PrimExpr a, PrimExpr b, Span span=Span()) |
subtraction operator More... | |
PrimExpr | neg (PrimExpr a, Span span=Span()) |
negation. More... | |
PrimExpr | mul (PrimExpr a, PrimExpr b, Span span=Span()) |
multiplication operator More... | |
PrimExpr | left_shift (PrimExpr a, PrimExpr b, Span span=Span()) |
left shift operator More... | |
PrimExpr | right_shift (PrimExpr a, PrimExpr b, Span span=Span()) |
right shift operator More... | |
PrimExpr | greater (PrimExpr a, PrimExpr b, Span span=Span()) |
greater More... | |
PrimExpr | greater_equal (PrimExpr a, PrimExpr b, Span span=Span()) |
greater_equal More... | |
PrimExpr | less (PrimExpr a, PrimExpr b, Span span=Span()) |
less More... | |
PrimExpr | less_equal (PrimExpr a, PrimExpr b, Span span=Span()) |
less_equal More... | |
PrimExpr | equal (PrimExpr a, PrimExpr b, Span span=Span()) |
equal More... | |
PrimExpr | not_equal (PrimExpr a, PrimExpr b, Span span=Span()) |
not_equal More... | |
PrimExpr | logical_and (PrimExpr a, PrimExpr b, Span span=Span()) |
and More... | |
PrimExpr | logical_or (PrimExpr a, PrimExpr b, Span span=Span()) |
or More... | |
PrimExpr | logical_not (PrimExpr a, Span span=Span()) |
not More... | |
PrimExpr | div (PrimExpr a, PrimExpr b, Span span=Span()) |
compute division in C semantics. More... | |
PrimExpr | truncdiv (PrimExpr a, PrimExpr b, Span span=Span()) |
compute trunc(a / b) More... | |
PrimExpr | truncmod (PrimExpr a, PrimExpr b, Span span=Span()) |
compute the remainder of truncdiv More... | |
PrimExpr | indexdiv (PrimExpr a, PrimExpr b, Span span=Span()) |
compute floor(a / b) where a and b are non-negative. More... | |
PrimExpr | shapediv (PrimExpr a, PrimExpr b, Span span=Span()) |
compute ceil(a / b) where a and b are non-negative. More... | |
PrimExpr | indexmod (PrimExpr a, PrimExpr b, Span span=Span()) |
compute the remainder floor(a / b) where a and b are non-negative. More... | |
PrimExpr | floordiv (PrimExpr a, PrimExpr b, Span span=Span()) |
compute floor(a / b) More... | |
PrimExpr | ceildiv (PrimExpr a, PrimExpr b, Span span=Span()) |
compute ceil(a / b) More... | |
PrimExpr | floormod (PrimExpr a, PrimExpr b, Span span=Span()) |
compute the remainder of floordiv More... | |
PrimExpr | max (PrimExpr a, PrimExpr b, Span span=Span()) |
take maximum of two values More... | |
PrimExpr | min (PrimExpr a, PrimExpr b, Span span=Span()) |
take minimum of two values More... | |
PrimExpr | bitwise_and (PrimExpr a, PrimExpr b, Span span=Span()) |
take bitwise and of two values More... | |
PrimExpr | bitwise_or (PrimExpr a, PrimExpr b, Span span=Span()) |
take bitwise or of two values More... | |
PrimExpr | bitwise_xor (PrimExpr a, PrimExpr b, Span span=Span()) |
take bitwise xor of two values More... | |
PrimExpr | bitwise_neg (PrimExpr a, Span span=Span()) |
take bitwise negation of two values More... | |
PrimExpr | if_then_else (PrimExpr cond, PrimExpr true_value, PrimExpr false_value, Span span=Span()) |
Conditional expression. More... | |
PrimExpr | likely (PrimExpr cond, Span span=Span()) |
Mark condition as likely. More... | |
PrimExpr | pow (PrimExpr x, PrimExpr y, Span span=Span()) |
Calculate power(x, y) More... | |
PrimExpr | abs (PrimExpr x, Span span=Span()) |
Calculate absolute value of x. More... | |
PrimExpr | isnan (PrimExpr x, Span span=Span()) |
Check if x is NaN. More... | |
PrimExpr | isfinite (PrimExpr x, Span span=Span()) |
Check if x is finite. More... | |
PrimExpr | isinf (PrimExpr x, Span span=Span()) |
Check if x is infinite. More... | |
PrimExpr | sum (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
sum of source expression over axis More... | |
PrimExpr | all (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
logical And of source expression over axis More... | |
PrimExpr | any (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
logical Or of source expression over axis More... | |
PrimExpr | max (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
max of source expression over axis More... | |
PrimExpr | min (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
max of source expression over axis More... | |
PrimExpr | prod (PrimExpr source, Array< tir::IterVar > axis, Array< PrimExpr > init={}, Span span=Span()) |
product of source expression over axis More... | |
PrimExpr | floor (PrimExpr x, Span span=Span()) |
Calculate floor(x) More... | |
PrimExpr | ceil (PrimExpr x, Span span=Span()) |
Calculate ceil(x) More... | |
PrimExpr | round (PrimExpr x, Span span=Span()) |
Calculate round(x) More... | |
PrimExpr | nearbyint (PrimExpr x, Span span=Span()) |
Calculates std::nearbyint(x) More... | |
PrimExpr | trunc (PrimExpr x, Span span=Span()) |
Calculate trunc(x) More... | |
PrimExpr | LargeUIntImm (DataType dtype, int64_t low, int64_t high, Span span=Span()) |
Construct a large uint constant by its low 32 bits and high 32bits. More... | |
PrimExpr | q_multiply_shift (PrimExpr x, PrimExpr y, PrimExpr q, PrimExpr s, Span span=Span()) |
Execute a multiplication between two Q-numbers x and y followed by a right shift s. The mathematical expression is: More... | |
PrimExpr | fast_erf_float_expr (PrimExpr arg, int bits) |
Fast_erf_float expression from Eigen. More... | |
PrimExpr | exp (PrimExpr x, Span span=Span()) |
PrimExpr | exp2 (PrimExpr x, Span span=Span()) |
PrimExpr | exp10 (PrimExpr x, Span span=Span()) |
PrimExpr | erf (PrimExpr x, Span span=Span()) |
PrimExpr | tanh (PrimExpr x, Span span=Span()) |
PrimExpr | sigmoid (PrimExpr x, Span span=Span()) |
PrimExpr | sqrt (PrimExpr x, Span span=Span()) |
PrimExpr | rsqrt (PrimExpr x, Span span=Span()) |
PrimExpr | log (PrimExpr x, Span span=Span()) |
PrimExpr | log2 (PrimExpr x, Span span=Span()) |
PrimExpr | log10 (PrimExpr x, Span span=Span()) |
PrimExpr | log1p (PrimExpr x, Span span=Span()) |
PrimExpr | popcount (PrimExpr x, Span span=Span()) |
PrimExpr | tan (PrimExpr x, Span span=Span()) |
PrimExpr | cos (PrimExpr x, Span span=Span()) |
PrimExpr | cosh (PrimExpr x, Span span=Span()) |
PrimExpr | sin (PrimExpr x, Span span=Span()) |
PrimExpr | sinh (PrimExpr x, Span span=Span()) |
PrimExpr | asin (PrimExpr x, Span span=Span()) |
PrimExpr | acos (PrimExpr x, Span span=Span()) |
PrimExpr | atan (PrimExpr x, Span span=Span()) |
PrimExpr | acosh (PrimExpr x, Span span=Span()) |
PrimExpr | asinh (PrimExpr x, Span span=Span()) |
PrimExpr | atanh (PrimExpr x, Span span=Span()) |
PrimExpr | clz (PrimExpr x, Span span=Span()) |
PrimExpr | atan2 (PrimExpr x, PrimExpr y, Span span=Span()) |
PrimExpr | nextafter (PrimExpr x, PrimExpr y, Span span=Span()) |
PrimExpr | copysign (PrimExpr x, PrimExpr y, Span span=Span()) |
PrimExpr | hypot (PrimExpr x, PrimExpr y, Span span=Span()) |
PrimExpr | ldexp (PrimExpr x, PrimExpr y, Span span=Span()) |
PrimExpr | operator+= (PrimExpr &a, PrimExpr b) |
PrimExpr | operator-= (PrimExpr &a, PrimExpr b) |
PrimExpr | operator*= (PrimExpr &a, PrimExpr b) |
PrimExpr | operator+ (const PrimExpr &a, float b) |
PrimExpr | operator+ (float a, const PrimExpr &b) |
PrimExpr | operator+ (int a, const PrimExpr &b) |
PrimExpr | operator+ (const PrimExpr &a, int b) |
PrimExpr | operator+ (const PrimExpr &a, double b) |
PrimExpr | operator- (const PrimExpr &a, float b) |
PrimExpr | operator- (float a, const PrimExpr &b) |
PrimExpr | operator- (int a, const PrimExpr &b) |
PrimExpr | operator- (const PrimExpr &a, int b) |
PrimExpr | operator- (const PrimExpr &a, double b) |
PrimExpr | operator* (const PrimExpr &a, float b) |
PrimExpr | operator* (float a, const PrimExpr &b) |
PrimExpr | operator* (int a, const PrimExpr &b) |
PrimExpr | operator* (const PrimExpr &a, int b) |
PrimExpr | operator* (const PrimExpr &a, double b) |
PrimExpr | operator> (const PrimExpr &a, float b) |
PrimExpr | operator> (float a, const PrimExpr &b) |
PrimExpr | operator> (int a, const PrimExpr &b) |
PrimExpr | operator> (const PrimExpr &a, int b) |
PrimExpr | operator> (const PrimExpr &a, double b) |
PrimExpr | operator>= (const PrimExpr &a, float b) |
PrimExpr | operator>= (float a, const PrimExpr &b) |
PrimExpr | operator>= (int a, const PrimExpr &b) |
PrimExpr | operator>= (const PrimExpr &a, int b) |
PrimExpr | operator>= (const PrimExpr &a, double b) |
PrimExpr | operator< (const PrimExpr &a, float b) |
PrimExpr | operator< (float a, const PrimExpr &b) |
PrimExpr | operator< (int a, const PrimExpr &b) |
PrimExpr | operator< (const PrimExpr &a, int b) |
PrimExpr | operator< (const PrimExpr &a, double b) |
PrimExpr | operator<= (const PrimExpr &a, float b) |
PrimExpr | operator<= (float a, const PrimExpr &b) |
PrimExpr | operator<= (int a, const PrimExpr &b) |
PrimExpr | operator<= (const PrimExpr &a, int b) |
PrimExpr | operator<= (const PrimExpr &a, double b) |
PrimExpr | max (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | max (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | max (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | max (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | max (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | min (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | min (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | min (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | min (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | min (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | div (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | div (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | div (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | div (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | div (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | add (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | add (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | add (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | add (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | add (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | sub (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | sub (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | sub (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | sub (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | sub (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | mul (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | mul (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | mul (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | mul (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | mul (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | greater (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | greater (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | greater (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | greater (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | greater (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | greater_equal (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | greater_equal (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | greater_equal (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | greater_equal (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | greater_equal (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | less (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | less (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | less (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | less (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | less (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | less_equal (const PrimExpr &a, float b, Span span=Span()) |
PrimExpr | less_equal (float a, const PrimExpr &b, Span span=Span()) |
PrimExpr | less_equal (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | less_equal (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | less_equal (const PrimExpr &a, double b, Span span=Span()) |
PrimExpr | indexdiv (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | indexdiv (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | indexmod (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | indexmod (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | truncdiv (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | truncdiv (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | truncmod (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | truncmod (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | floordiv (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | floordiv (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | floormod (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | floormod (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | right_shift (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | right_shift (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | left_shift (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | left_shift (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | bitwise_and (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | bitwise_and (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | bitwise_or (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | bitwise_or (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | bitwise_xor (const PrimExpr &a, int b, Span span=Span()) |
PrimExpr | bitwise_xor (int a, const PrimExpr &b, Span span=Span()) |
PrimExpr | operator>> (const PrimExpr &a, int b) |
PrimExpr | operator>> (int a, const PrimExpr &b) |
PrimExpr | operator<< (const PrimExpr &a, int b) |
PrimExpr | operator<< (int a, const PrimExpr &b) |
PrimExpr | operator& (const PrimExpr &a, int b) |
PrimExpr | operator& (int a, const PrimExpr &b) |
PrimExpr | operator| (const PrimExpr &a, int b) |
PrimExpr | operator| (int a, const PrimExpr &b) |
PrimExpr | operator^ (const PrimExpr &a, int b) |
PrimExpr | operator^ (int a, const PrimExpr &b) |
PrimExpr | operator&& (const PrimExpr &a, bool b) |
PrimExpr | operator&& (bool a, const PrimExpr &b) |
PrimExpr | operator|| (const PrimExpr &a, bool b) |
PrimExpr | operator|| (bool a, const PrimExpr &b) |
PrimExpr | logical_and (const PrimExpr &a, bool b, Span span=Span()) |
PrimExpr | logical_and (bool a, const PrimExpr &b, Span span=Span()) |
PrimExpr | logical_or (const PrimExpr &a, bool b, Span span=Span()) |
PrimExpr | logical_or (bool a, const PrimExpr &b, Span span=Span()) |
template<typename TA > | |
void | DivAmbiguityError (const TA &a) |
Helper function to raise a compiler error about division ambiguity. More... | |
template<typename TB > | |
PrimExpr | operator/ (const PrimExpr &a, const TB &b) |
template<typename TB > | |
PrimExpr | operator/= (const PrimExpr &a, const TB &b) |
template<typename TB > | |
PrimExpr | operator% (const PrimExpr &a, const TB &b) |
Variables | |
constexpr runtime::NullOptType | NullOpt {} |
constexpr int | kNullDeviceType = 0 |
constexpr int | kInvalidDeviceType = -1 |
constexpr const char * | kVirtualDevice = "virtual_device" |
Performance counters for profiling via the PAPI library.
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
using tvm::DataType = typedef runtime::DataType |
using tvm::Device = typedef DLDevice |
using tvm::FTVMTargetParser = typedef runtime::TypedPackedFunc<TargetJSON(TargetJSON)> |
typedef String tvm::MemoryScope |
Abstract label for an area of memory.
Abstract label for an area of memory.
Currently uninterpreted and arbitrary. Likely to be replaced by a structured representation of a memory pool in the future. Please try to use this alias instead of String to aid future code migration.
using tvm::TargetFeatures = typedef Map<String, ObjectRef> |
Map containing parsed features of a specific Target.
using tvm::TargetJSON = typedef Map<String, ObjectRef> |
TargetParser to apply on instantiation of a given TargetKind.
target_json | Target in JSON format to be transformed during parsing. |
|
strong |
Possible Calling conventions.
NOTE: The calling convention also implies the way we implement the function during lowering.
|
strong |
|
strong |
Calculate absolute value of x.
x | The input data |
span | The location of this operation in the source. |
add operator
a | left operand |
b | right operand |
span | The location of this operation in the source. |
PrimExpr tvm::all | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
logical And of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
PrimExpr tvm::any | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
logical Or of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
|
inline |
Create an Attr object with all default values.
TAttrNode | the type to be created. |
take bitwise and of two values
a | left operand |
b | right operand |
span | The location of this operation in the source. |
take bitwise negation of two values
a | the input expression. |
span | The location of this operation in the source. |
take bitwise or of two values
a | left operand |
b | right operand |
span | The location of this operation in the source. |
take bitwise xor of two values
a | left operand |
b | right operand |
span | The location of this operation in the source. |
cast value to type.
t | the target type. |
value | The value |
span | The location of this operation in the source. |
Calculate ceil(x)
x | The input expression. |
span | The location of this operation in the source. |
compute ceil(a / b)
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Check and update host field of the given legacy target and target host pair. Note that this function is for legacy target api compatibility issue only, not recommended for other use.
compute division in C semantics.
a / b as in C/C++.
When operands are integers, it directly corresponds to truncdiv.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
|
inline |
Helper function to raise a compiler error about division ambiguity.
TA | Any class type. |
void tvm::Dump | ( | const runtime::Object * | node | ) |
Dump the node to stderr, used for debug purposes.
node | The input node |
void tvm::Dump | ( | const runtime::ObjectRef & | node | ) |
Dump the node to stderr, used for debug purposes.
node | The input node |
equal
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Fast_erf_float expression from Eigen.
arg | The input expression. |
bits | The number of bits in the type. |
Calculate floor(x)
x | The input expression. |
span | The location of this operation in the source. |
compute floor(a / b)
a | left operand |
b | right operand |
span | The location of this operation in the source. |
compute the remainder of floordiv
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Given an object and an address of its attribute, return the key of the attribute.
MemoryInfo tvm::GetMemoryInfo | ( | const std::string & | scope | ) |
get memory info given scope
scope | The scope name. |
runtime::DataType tvm::GetRuntimeDataType | ( | const Type & | type | ) |
Get the implied DataType for storing values with type during runtime.
type | The input type. |
Get the type of the expression under the unified type system.
This function could return a more refined type than the runtime type provided by expr->dtype
expr | The input parameter. |
Get the type corresponding to DataType.
dtype | The data type |
greater
a | left operand |
b | right operand |
span | The location of this operation in the source. |
greater_equal
a | left operand |
b | right operand |
span | The location of this operation in the source. |
PrimExpr tvm::if_then_else | ( | PrimExpr | cond, |
PrimExpr | true_value, | ||
PrimExpr | false_value, | ||
Span | span = Span() |
||
) |
Conditional expression.
cond | The condition |
true_value | The value when results are true. |
false_value | The value when results are false. |
span | The location of this operation in the source. |
compute floor(a / b) where a and b are non-negative.
Use this function for index split calculation.
This function might take advantage of the fact that a and b are non-negative.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
compute the remainder floor(a / b) where a and b are non-negative.
Use this function for index split calculation. This function might take advantage of the fact that a and b are non-negative.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Get the value of infinity.
dtype | The data type. |
span | The location of this operation in the source. |
Check if x is finite.
x | The input data |
span | The location of this operation in the source. |
Check if x is infinite.
x | The input data |
span | The location of this operation in the source. |
Check if x is NaN.
x | The input data |
span | The location of this operation in the source. |
|
inline |
Check whether the tyep represents void.
Construct a large uint constant by its low 32 bits and high 32bits.
dtype | The final data type. |
low | The lower 32 bits. |
high | The higher 32 bits. |
span | The location of this operation in the source. |
left shift operator
a | left operand |
b | right operand |
span | The location of this operation in the source. |
less
a | left operand |
b | right operand |
span | The location of this operation in the source. |
less_equal
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Mark condition as likely.
cond | The condition |
span | The location of this operation in the source. |
runtime::ObjectRef tvm::LoadJSON | ( | std::string | json_str | ) |
Internal implementation of LoadJSON Load tvm Node object from json and return a shared_ptr of Node.
json_str | The json string to load from. |
and
a | left operand |
b | right operand |
span | The location of this operation in the source. |
not
a | left operand |
span | The location of this operation in the source. |
or
a | left operand |
b | right operand |
span | The location of this operation in the source. |
take maximum of two values
a | left operand |
b | right operand |
span | The location of this operation in the source. |
PrimExpr tvm::max | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
max of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
Query the maximum possible value of dtype.
dtype | The data type. |
span | The location of this operation in the source. |
take minimum of two values
a | left operand |
b | right operand |
span | The location of this operation in the source. |
PrimExpr tvm::min | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
max of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
Query the minimum possible value of dtype.
dtype | The data type. |
span | The location of this operation in the source. |
multiplication operator
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Calculates std::nearbyint(x)
x | The input expression. |
span | The location of this operation in the source. |
negation.
a | input. |
span | The location of this operation in the source. |
not_equal
a | left operand |
b | right operand |
span | The location of this operation in the source. |
|
inline |
Create a NodeRef type that represents null.
TNodeRef | the type to be created. |
|
inline |
not
a | left operand |
PrimExpr tvm::operator!= | ( | PrimExpr | a, |
PrimExpr | b | ||
) |
not_equal
a | left operand |
b | right operand |
take bitwise and of two values
a | left operand |
b | right operand |
and
a | left operand |
b | right operand |
multiplication operator
a | left operand |
b | right operand |
add operator
a | left operand |
b | right operand |
negation.
a | input. |
subtraction operator
a | left operand |
b | right operand |
division operator
a | left operand |
b | right operand |
less
a | left operand |
b | right operand |
left shift operator
a | left operand |
b | right operand |
less_equal
a | left operand |
b | right operand |
|
inline |
|
inline |
equal
a | left operand |
b | right operand |
greater
a | left operand |
b | right operand |
greater_equal
a | left operand |
b | right operand |
right shift operator
a | left operand |
b | right operand |
take bitwise xor of two values
a | left operand |
b | right operand |
take bitwise or of two values
a | left operand |
b | right operand |
or
a | left operand |
b | right operand |
take bitwise negation of two values
a | the input expression. |
Calculate power(x, y)
x | The left operand. |
y | The right operand. |
span | The location of this operation in the source. |
PrimExpr tvm::prod | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
product of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
PrimExpr tvm::q_multiply_shift | ( | PrimExpr | x, |
PrimExpr | y, | ||
PrimExpr | q, | ||
PrimExpr | s, | ||
Span | span = Span() |
||
) |
Execute a multiplication between two Q-numbers x and y followed by a right shift s. The mathematical expression is:
out = round(x*y*2^-s)
Please note that the two Q-numbers x and y are supposed to have the same number of fractional bits q.
More about Q-numbers here: https://en.wikipedia.org/wiki/Q_(number_format)
The rounding rule is to the nearest value, rounding half up (i.e., round(x.1) = x and round (x.5) = x+1)
x | first Q-number |
y | second Q-number |
q | number of fractional bits in x and y. Needs to be > 0 |
s | integer right shift |
span | The location of this operation in the source. |
perform reinterpret cast value to type.
t | the target type. |
value | The value |
span | The location of this operation in the source. |
Return the value.
value | The returned value. |
span | The location of this operation in the source. |
right shift operator
a | left operand |
b | right operand |
span | The location of this operation in the source. |
Calculate round(x)
x | The input expression. |
span | The location of this operation in the source. |
std::string tvm::SaveJSON | ( | const runtime::ObjectRef & | node | ) |
save the node as well as all the node it depends on as json. This can be used to serialize any TVM object
compute ceil(a / b) where a and b are non-negative.
Use this function for shape split calculation.
This function might take advantage of the fact that a and b are non-negative.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
subtraction operator
a | left operand |
b | right operand |
span | The location of this operation in the source. |
PrimExpr tvm::sum | ( | PrimExpr | source, |
Array< tir::IterVar > | axis, | ||
Array< PrimExpr > | init = {} , |
||
Span | span = Span() |
||
) |
sum of source expression over axis
source | The source expression. |
axis | List of iteration variables that will be used for reduction. |
init | The value with which to initialize the output. |
span | The location of this operation in the source. |
DiagnosticRenderer tvm::TerminalRenderer | ( | std::ostream & | ostream | ) |
Calculate trunc(x)
x | The input expression. |
span | The location of this operation in the source. |
compute trunc(a / b)
This is the default integer division behavior in C.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
compute the remainder of truncdiv
This is the default integer division behavior in C.
a | left operand |
b | right operand |
span | The location of this operation in the source. |
|
inline |
|
inline |
Copy the function or module, but overrides the attribute value key with the value.
input | The thing to annotate (BaseFunc or IRModule) |
attr_key | The attribute key. |
attr_value | The value attribute value. |
TFunc | The corresponding function or module type. |
This is also why we make it as a function instead of a member function and why we pass by value in the first argument.
|
inline |
Copy the function or module, but overrides the attributes with the entries from attrs
.
input | The thing to annotate (BaseFunc or IRModule) |
attrs | Key/values attributes to add to input . |
TFunc | The corresponding function or module type. |
|
inline |
Copy the function or module, but removes the specified attribute.
TFunc | The corresponding function or module type. |
This is also why we make it as a function instead of a member function and why we pass by value in the first argument.
|
constexpr |
|
constexpr |
|
constexpr |
brief The attribute key for the virtual device. This key will be promoted to first class on functions. For use in the parser and printer only.
|
constexpr |