tvm
|
Managed reference to PostprocNode. More...
#include <postproc.h>
Public Types | |
using | FInitializeWithTuneContext = runtime::TypedPackedFunc< void(const TuneContext &)> |
The function type of InitializeWithTuneContext method. More... | |
using | FApply = runtime::TypedPackedFunc< bool(const tir::Schedule &)> |
Apply a postprocessor to the given schedule. More... | |
using | FClone = runtime::TypedPackedFunc< Postproc()> |
Clone the postprocessor. More... | |
using | FAsString = runtime::TypedPackedFunc< String()> |
Get the postprocessor function as string with name. More... | |
![]() | |
using | ContainerType = Object |
type indicate the container type. More... | |
Public Member Functions | |
TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS (Postproc, ObjectRef, PostprocNode) | |
![]() | |
ObjectRef ()=default | |
default constructor More... | |
ObjectRef (ObjectPtr< Object > data) | |
Constructor from existing object ptr. More... | |
bool | same_as (const ObjectRef &other) const |
Comparator. More... | |
bool | operator== (const ObjectRef &other) const |
Comparator. More... | |
bool | operator!= (const ObjectRef &other) const |
Comparator. More... | |
bool | operator< (const ObjectRef &other) const |
Comparator. More... | |
bool | defined () const |
const Object * | get () const |
const Object * | operator-> () const |
bool | unique () const |
int | use_count () const |
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>> | |
const ObjectType * | as () const |
Try to downcast the internal Object to a raw pointer of a corresponding type. More... | |
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>> | |
Optional< ObjectRefType > | as () const |
Try to downcast the ObjectRef to a Optional<T> of the requested type. More... | |
Static Public Member Functions | |
static Postproc | PyPostproc (FInitializeWithTuneContext f_initialize_with_tune_context, FApply f_apply, FClone f_clone, FAsString f_as_string) |
Create a postprocessor with customized methods on the python-side. More... | |
static Postproc | DisallowDynamicLoop () |
Create a postprocessor that checks if all loops are static. More... | |
static Postproc | DisallowAsyncStridedMemCopy () |
Create a postprocessor that checks if all async mem copies are not strided. More... | |
static Postproc | RewriteCooperativeFetch () |
Create a postprocessor that rewrites the cooperative fetch annotation to actual vectorized cooperative fetching in loop bindings. More... | |
static Postproc | RewriteParallelVectorizeUnroll () |
Creates a postprocessor that applies parallelization, vectorization and auto unrolling according to the annotation of each block. More... | |
static Postproc | RewriteReductionBlock () |
Create a postprocessor that rewrites reduction block by moving the init block out. More... | |
static Postproc | RewriteUnboundBlock (int max_threadblocks) |
Create a postprocessor that adds thread binding to unbound blocks. More... | |
static Postproc | RewriteTensorize (bool vectorize_init_loop=false) |
Create a postprocessor that applies tensorization to annotated blocks. More... | |
static Postproc | VerifyGPUCode () |
Creates a postprocessor that verifies if the GPU code is correct. More... | |
static Postproc | VerifyVTCMLimit () |
Verifies that the VTCM usage of a given schedule is within the provided limit. More... | |
static Postproc | RewriteLayout () |
Creates a postprocessor that rewrites the layout of input tensor. More... | |
static Array< Postproc, void > | DefaultLLVM () |
Create default postprocessors for LLVM. More... | |
static Array< Postproc, void > | DefaultCPUTensorization () |
Create default postprocessors for x86 (AVX512 and VNNI) More... | |
static Array< Postproc, void > | DefaultCUDA () |
Create default postprocessors for CUDA. More... | |
static Array< Postproc, void > | DefaultCUDATensorCore () |
Create default postprocessors for CUDA with TensorCore. More... | |
static Array< Postproc, void > | DefaultHexagon () |
Create default postprocessors for Hexagon. More... | |
static Array< Postproc, void > | DefaultMicro () |
Create default postprocessors for Micro. More... | |
Additional Inherited Members | |
![]() | |
static constexpr bool | _type_is_nullable = true |
![]() | |
Object * | get_mutable () const |
![]() | |
template<typename T > | |
static T | DowncastNoCheck (ObjectRef ref) |
Internal helper function downcast a ref without check. More... | |
static void | FFIClearAfterMove (ObjectRef *ref) |
Clear the object ref data field without DecRef after we successfully moved the field. More... | |
template<typename ObjectType > | |
static ObjectPtr< ObjectType > | GetDataPtr (const ObjectRef &ref) |
Internal helper function get data_ as ObjectPtr of ObjectType. More... | |
![]() | |
ObjectPtr< Object > | data_ |
Internal pointer that backs the reference. More... | |
Managed reference to PostprocNode.
using tvm::meta_schedule::Postproc::FApply = runtime::TypedPackedFunc<bool(const tir::Schedule&)> |
Apply a postprocessor to the given schedule.
sch | The schedule to be post processed. |
Get the postprocessor function as string with name.
Clone the postprocessor.
using tvm::meta_schedule::Postproc::FInitializeWithTuneContext = runtime::TypedPackedFunc<void(const TuneContext&)> |
The function type of InitializeWithTuneContext
method.
context | The tuning context for initialization. |
Create default postprocessors for x86 (AVX512 and VNNI)
Create default postprocessors for CUDA.
Create default postprocessors for CUDA with TensorCore.
Create default postprocessors for Hexagon.
Create default postprocessors for LLVM.
Create default postprocessors for Micro.
|
static |
Create a postprocessor that checks if all async mem copies are not strided.
|
static |
Create a postprocessor that checks if all loops are static.
|
static |
Create a postprocessor with customized methods on the python-side.
f_initialize_with_tune_context | The packed function of InitializeWithTuneContext . |
f_apply | The packed function of Apply . |
f_clone | The packed function of Clone . |
f_as_string | The packed function of AsString . |
|
static |
Create a postprocessor that rewrites the cooperative fetch annotation to actual vectorized cooperative fetching in loop bindings.
|
static |
Creates a postprocessor that rewrites the layout of input tensor.
|
static |
Creates a postprocessor that applies parallelization, vectorization and auto unrolling according to the annotation of each block.
|
static |
Create a postprocessor that rewrites reduction block by moving the init block out.
|
static |
Create a postprocessor that applies tensorization to annotated blocks.
vectorize_init_loop | Whether or not vectorize the initialization loop produced by DecomposeReduction |
|
static |
Create a postprocessor that adds thread binding to unbound blocks.
max_threadblocks | The max number of threadblocks in the cuda device. |
tvm::meta_schedule::Postproc::TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS | ( | Postproc | , |
ObjectRef | , | ||
PostprocNode | |||
) |
|
static |
Creates a postprocessor that verifies if the GPU code is correct.
|
static |
Verifies that the VTCM usage of a given schedule is within the provided limit.