tvm
Classes | Functions
tvm::meta_schedule Namespace Reference

Classes

class  ArgInfoNode
 The argument information. More...
 
class  ArgInfo
 Managed reference to ArgInfoNode. More...
 
class  TensorInfoNode
 The tensor argument information. More...
 
class  TensorInfo
 Managed reference to TensorInfoNode. More...
 
class  BuilderInputNode
 The builder's input, containing an IRModule and the target. More...
 
class  BuilderInput
 Managed reference to BuilderInputNode. More...
 
class  BuilderResultNode
 The builder's output, containing the artifact path or error message if any. More...
 
class  BuilderResult
 Managed reference to BuilderResultNode. More...
 
class  BuilderNode
 The abstract builder interface. More...
 
class  Builder
 Managed reference to BuilderNode. More...
 
class  PyBuilderNode
 An abstract builder with customized build method on the python-side. More...
 
class  CostModelNode
 Cost model. More...
 
class  PyCostModelNode
 The cost model with customized methods on the python-side. More...
 
class  CostModel
 Managed reference to CostModelNode. More...
 
class  WorkloadNode
 A workload, i.e. an IRModule and its structural hash. More...
 
class  Workload
 Managed reference to WorkloadNode. More...
 
struct  WorkloadHash
 The hash method for Workload. More...
 
struct  WorkloadEqual
 The equality check for Workload. More...
 
class  TuningRecordNode
 The class of tuning records. More...
 
class  TuningRecord
 The managed reference of TuningRecordNode. More...
 
class  DatabaseNode
 
class  PyDatabaseNode
 The database with customized methods on the python-side. More...
 
class  Database
 Managed reference to DatabaseNode. More...
 
class  ExtractedTaskNode
 A tuning task extracted from the high-level IR. More...
 
class  ExtractedTask
 Managed reference to ExtractedTaskNode. More...
 
class  FeatureExtractorNode
 Extractor for features from measure candidates for use in cost model. More...
 
class  PyFeatureExtractorNode
 The feature extractor with customized methods on the python-side. More...
 
class  FeatureExtractor
 Managed reference to FeatureExtractorNode. More...
 
class  MeasureCallbackNode
 Rules to apply after measure results is available. More...
 
class  PyMeasureCallbackNode
 The measure callback with customized methods on the python-side. More...
 
class  MeasureCallback
 Managed reference to MeasureCallbackNode. More...
 
class  MeasureCandidateNode
 The schedule (with input shapes) to be measured. More...
 
class  MeasureCandidate
 Managed reference to MeasureCandidateNode. More...
 
class  MutatorNode
 Mutator is designed to mutate the trace to explore the design space. More...
 
class  Mutator
 Managed reference to MutatorNode. More...
 
class  PyMutatorNode
 The mutator with customized methods on the python-side. More...
 
class  PostprocNode
 Rules to apply a postprocessor to a schedule. More...
 
class  Postproc
 Managed reference to PostprocNode. More...
 
class  PyPostprocNode
 The postprocessor with customized methods on the python-side. More...
 
class  ScopedTimer
 
class  ProfilerNode
 A generic profiler. More...
 
class  Profiler
 Managed reference to ProfilerNode. More...
 
class  RunnerInputNode
 Runner's input containing path of artifact, type of device and argument info. More...
 
class  RunnerInput
 Managed reference to RunnerInputNode. More...
 
class  RunnerResultNode
 Runner's output containing measurement result of MeasureCandidate or error msg if any. More...
 
class  RunnerResult
 Managed reference to RunnerResultNode. More...
 
class  RunnerFutureNode
 A class to asynchronously fetch runner's output. More...
 
class  RunnerFuture
 Managed reference to RunnerFutureNode. More...
 
class  RunnerNode
 The abstract runner interface. More...
 
class  Runner
 Managed reference to RunnerNode. More...
 
class  PyRunnerNode
 An abstract runner with customized build method on the python-side. More...
 
class  ScheduleRuleNode
 Rules to modify a block in a schedule. More...
 
class  ScheduleRule
 Managed reference to ScheduleRuleNode. More...
 
class  PyScheduleRuleNode
 The schedule rule with customized methods on the python-side. More...
 
class  SearchStrategyNode
 The search strategy for measure candidates generation. More...
 
class  SearchStrategy
 Managed reference to SearchStrategyNode. More...
 
class  PySearchStrategyNode
 The python side customizable class for measure candidate generation. More...
 
class  SpaceGeneratorNode
 The abstract class for design space generation. More...
 
class  SpaceGenerator
 Managed reference to SpaceGeneratorNode. More...
 
class  PySpaceGeneratorNode
 The design space generator with customized methods on the python-side. More...
 
class  TaskRecordNode
 
class  TaskRecord
 Managed reference to TaskRecordNode. More...
 
class  TaskSchedulerNode
 The abstract interface of task schedulers. More...
 
class  PyTaskSchedulerNode
 The task scheduler with customized methods on the python-side. More...
 
class  TaskScheduler
 Managed reference to TaskSchedulerNode. More...
 
class  TuneContextNode
 The auto tuning context. More...
 
class  TuneContext
 Managed reference to TuneContextNode. More...
 

Functions

std::function< tir::ExprRV(int64_t)> MakeFactorSampler (tir::Schedule sch, Array< Integer > thread_extents)
 Given candidates of thread_extents, make a sampler that use sch->SampleCategorical to return a random thread extent. More...
 
Array< tir::LoopRVBindSpatialLoop (tir::Schedule sch, tir::LoopRV loop, int64_t max_threadblocks, int64_t max_threads_per_block, std::function< tir::ExprRV(int64_t)> get_factor=nullptr)
 Bind blockIdx.x and threadIdx.x to the given loop. More...
 
void BindBlockThreadIdx (tir::Schedule sch, tir::BlockRV block, int64_t max_threadblocks, int64_t max_threads_per_block, std::function< tir::ExprRV(int64_t max_extent)> get_factor=nullptr)
 Bind the given block if it is not bound to blockIdx or threadIdx. More...
 
tir::BlockRV GetWinogradProducerAndInlineConst (tir::Schedule sch, tir::BlockRV block)
 Get the producer block of a given block. If there is a constant winograd transform matrix, inline it. More...
 

Function Documentation

◆ BindBlockThreadIdx()

void tvm::meta_schedule::BindBlockThreadIdx ( tir::Schedule  sch,
tir::BlockRV  block,
int64_t  max_threadblocks,
int64_t  max_threads_per_block,
std::function< tir::ExprRV(int64_t max_extent)>  get_factor = nullptr 
)

Bind the given block if it is not bound to blockIdx or threadIdx.

Parameters
schThe schedule.
blockThe block to be bound.
max_threadblocksThe maximum number of threadblocks allowed.
max_threads_per_blockThe maximum number of threads allowed.
get_factorA function that returns the tiling factor.

◆ BindSpatialLoop()

Array<tir::LoopRV> tvm::meta_schedule::BindSpatialLoop ( tir::Schedule  sch,
tir::LoopRV  loop,
int64_t  max_threadblocks,
int64_t  max_threads_per_block,
std::function< tir::ExprRV(int64_t)>  get_factor = nullptr 
)

Bind blockIdx.x and threadIdx.x to the given loop.

Parameters
schThe schedule.
loopThe loop to be bound.
max_threadblocksThe maximum number of threadblocks allowed.
max_threads_per_blockThe maximum number of threads allowed.
get_factorA function that returns the tiling factor.
Returns
The binded loops in the order of blockIdx.x, threadIdx.x, and the rest.

◆ GetWinogradProducerAndInlineConst()

tir::BlockRV tvm::meta_schedule::GetWinogradProducerAndInlineConst ( tir::Schedule  sch,
tir::BlockRV  block 
)

Get the producer block of a given block. If there is a constant winograd transform matrix, inline it.

Returns
The only producer block.

◆ MakeFactorSampler()

std::function<tir::ExprRV(int64_t)> tvm::meta_schedule::MakeFactorSampler ( tir::Schedule  sch,
Array< Integer thread_extents 
)

Given candidates of thread_extents, make a sampler that use sch->SampleCategorical to return a random thread extent.

Parameters
schThe schedule
thread_extentsThe candidate thread extents.
Returns
A sampler that returns a random thread extent.