24#ifndef TVM_TIR_FUNCTION_H_
25#define TVM_TIR_FUNCTION_H_
27#include <tvm/ffi/container/map.h>
28#include <tvm/ffi/container/variant.h>
59 namespace refl = tvm::ffi::reflection;
60 refl::ObjectDef<PrimFuncNode>()
64 refl::TypeAttrDef<PrimFuncNode>()
138 namespace refl = tvm::ffi::reflection;
139 refl::ObjectDef<TensorIntrinNode>()
295 "tirx.launch_bounds_max_blocks_per_cluster";
Symbolic n-dimensional array, to represent a memory buffer.
Base node of all functions.
Definition function.h:156
DictAttrs attrs
Additional attributes storing the meta-data.
Definition function.h:159
Managed reference to BaseFuncNode.
Definition function.h:250
Managed reference to DictAttrsNode.
Definition attrs.h:102
Managed reference to FuncTypeNode.
Definition type.h:168
Definition source_map.h:111
Managed reference to TypeNode.
Definition base_expr.h:77
static Type Missing()
Sentinel for a type that has not been populated yet.
Managed reference to VarNode.
Definition expr.h:372
RAII wrapper function to enter and exit a context object similar to python's with syntax.
Definition with_context.h:59
Primitive functions that contains TIR statements.
Definition function.h:49
ffi::Array< tirx::Var > params
Function parameters.
Definition function.h:52
static void RegisterReflection()
Definition function.h:58
int64_t SHash(int64_t init_hash, ffi::TypedFunction< int64_t(AnyView, int64_t, bool)> hash) const
Definition function.h:80
FuncType func_type_annotation() const
Return the derived function annotation of this function.
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("tirx.PrimFunc", PrimFuncNode, BaseFuncNode)
tirx::Stmt body
The body of the function.
Definition function.h:56
bool SEqual(const PrimFuncNode *other, ffi::TypedFunction< bool(AnyView, AnyView, bool, AnyView)> equal) const
Definition function.h:69
Type ret_type
The return type of the function.
Definition function.h:54
Managed reference to PrimFuncNode.
Definition function.h:105
PrimFunc(ffi::Array< tirx::Var > params, Stmt body, Type ret_type=VoidType(), DictAttrs attrs=DictAttrs(), Span span=Span())
Constructor.
TVM_DEFINE_OBJECT_REF_COW_METHOD(PrimFuncNode)
TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(PrimFunc, BaseFunc, PrimFuncNode)
Container of all statements.
Definition stmt.h:67
Tensor intrinsics for tensorization.
Definition function.h:130
PrimFunc desc
The function to describe the computation.
Definition function.h:133
PrimFunc impl
The function of the implementation for the execution.
Definition function.h:135
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("tirx.TensorIntrin", TensorIntrinNode, ffi::Object)
static void RegisterReflection()
Definition function.h:137
Managed reference to TensorIntrinNode.
Definition function.h:149
static void Register(ffi::String name, TensorIntrin intrin, bool override=false)
Create and register a TensorIntrin. After registration, the TensorIntrin can be looked up with its na...
static ffi::Optional< TensorIntrin > Get(ffi::String name, bool allow_missing=false)
Look up TensorIntrin by name. Raises an exception if not found.
TensorIntrin(PrimFunc desc, PrimFunc impl)
Constructor.
TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(TensorIntrin, ffi::ObjectRef, TensorIntrinNode)
Copy-on-write helper macro for IR ffi::ObjectRef types.
constexpr const char * kLaunchBoundsMaxBlocksPerCluster
CUDA launch bound maximum CTAs per cluster.
Definition function.h:294
constexpr const char * kMaxRegisters
CUDA maximum registers per thread.
Definition function.h:305
constexpr const char * kIsHostFunc
Mark the function as run on the host, mutually exclusive with kTarget.
Definition function.h:348
constexpr const char * kLaunchBoundsMinBlocksPerSM
CUDA launch bound minimum CTAs per SM.
Definition function.h:287
constexpr const char * kIsEntryFunc
Mark the function as the entry function of the final generated runtime module.
Definition function.h:334
constexpr const char * kIsGlobalFunc
Mark the function as the global function called from the host.
Definition function.h:341
constexpr const char * kRequiredBlockSize
Require CUDA to use the statically-declared block and cluster dimensions.
Definition function.h:317
constexpr const char * kIsScheduled
Mark the function as scheduled, so the default schedule will pass will skip it.
Definition function.h:355
constexpr const char * kNoAlias
Whether to set noalias rule on the function arguments.
Definition function.h:324
constexpr const char * kKernelLaunchParams
List of thread IterVar that a DeviceLaunch function corresponds to.
Definition function.h:280
PrimFunc Specialize(PrimFunc func, const ffi::Map< Var, ffi::Variant< BufferVar, Expr > > ¶m_map)
Specialize parameters of PrimFunc.
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition analyzer.h:40
PrimExpr equal(PrimExpr a, PrimExpr b, Span span=Span())
equal
Type VoidType()
Definition type.h:129
A device-independent managed Tensor abstraction.