tvm
Loading...
Searching...
No Matches
Namespaces | Classes | Functions
tvm::s_tir::meta_schedule Namespace Reference

Namespaces

namespace  attr
 

Classes

class  ArgInfo
 Managed reference to ArgInfoObj. More...
 
class  ArgInfoObj
 The argument information. More...
 
class  Builder
 Managed reference to BuilderObj. More...
 
class  BuilderInput
 Managed reference to BuilderInputObj. More...
 
class  BuilderInputObj
 The builder's input, containing an IRModule and the target. More...
 
class  BuilderObj
 The abstract builder interface. More...
 
class  BuilderResult
 Managed reference to BuilderResultObj. More...
 
class  BuilderResultObj
 The builder's output, containing the artifact path or error message if any. More...
 
class  CostModel
 Managed reference to CostModelObj. More...
 
class  CostModelObj
 Cost model. More...
 
class  Database
 Managed reference to DatabaseObj. More...
 
class  DatabaseObj
 
class  ExtractedTask
 Managed reference to ExtractedTaskObj. More...
 
class  ExtractedTaskObj
 A tuning task extracted from the high-level IR. More...
 
class  FeatureExtractor
 Managed reference to FeatureExtractorObj. More...
 
class  FeatureExtractorObj
 Extractor for features from measure candidates for use in cost model. More...
 
class  MeasureCallback
 Managed reference to MeasureCallbackObj. More...
 
class  MeasureCallbackObj
 Rules to apply after measure results is available. More...
 
class  MeasureCandidate
 Managed reference to MeasureCandidateObj. More...
 
class  MeasureCandidateObj
 The schedule (with input shapes) to be measured. More...
 
class  Mutator
 Managed reference to MutatorObj. More...
 
class  MutatorObj
 Mutator is designed to mutate the trace to explore the design space. More...
 
class  Postproc
 Managed reference to PostprocObj. More...
 
class  PostprocObj
 Rules to apply a postprocessor to a schedule. More...
 
class  Profiler
 Managed reference to ProfilerObj. More...
 
class  ProfilerObj
 A generic profiler. More...
 
class  PyBuilderObj
 An abstract builder with customized build method on the python-side. More...
 
class  PyCostModelObj
 The cost model with customized methods on the python-side. More...
 
class  PyDatabaseObj
 The database with customized methods on the python-side. More...
 
class  PyFeatureExtractorObj
 The feature extractor with customized methods on the python-side. More...
 
class  PyMeasureCallbackObj
 The measure callback with customized methods on the python-side. More...
 
class  PyMutatorObj
 The mutator with customized methods on the python-side. More...
 
class  PyPostprocObj
 The postprocessor with customized methods on the python-side. More...
 
class  PyRunnerObj
 An abstract runner with customized build method on the python-side. More...
 
class  PyScheduleRuleObj
 The schedule rule with customized methods on the python-side. More...
 
class  PySearchStrategyObj
 The python side customizable class for measure candidate generation. More...
 
class  PySpaceGeneratorObj
 The design space generator with customized methods on the python-side. More...
 
class  PyTaskSchedulerObj
 The task scheduler with customized methods on the python-side. More...
 
class  Runner
 Managed reference to RunnerObj. More...
 
class  RunnerFuture
 Managed reference to RunnerFutureObj. More...
 
class  RunnerFutureObj
 A class to asynchronously fetch runner's output. More...
 
class  RunnerInput
 Managed reference to RunnerInputObj. More...
 
class  RunnerInputObj
 Runner's input containing path of artifact, type of device and argument info. More...
 
class  RunnerObj
 The abstract runner interface. More...
 
class  RunnerResult
 Managed reference to RunnerResultObj. More...
 
class  RunnerResultObj
 Runner's output containing measurement result of MeasureCandidate or error msg if any. More...
 
class  ScheduleRule
 Managed reference to ScheduleRuleObj. More...
 
class  ScheduleRuleObj
 Rules to modify a block in a schedule. More...
 
class  ScopedTimer
 
class  SearchStrategy
 Managed reference to SearchStrategyObj. More...
 
class  SearchStrategyObj
 The search strategy for measure candidates generation. More...
 
class  SpaceGenerator
 Managed reference to SpaceGeneratorObj. More...
 
class  SpaceGeneratorObj
 The abstract class for design space generation. More...
 
class  TaskRecord
 Managed reference to TaskRecordObj. More...
 
class  TaskRecordObj
 
class  TaskScheduler
 Managed reference to TaskSchedulerObj. More...
 
class  TaskSchedulerObj
 The abstract interface of task schedulers. More...
 
class  TensorInfo
 Managed reference to TensorInfoObj. More...
 
class  TensorInfoObj
 The tensor argument information. More...
 
class  TuneContext
 Managed reference to TuneContextObj. More...
 
class  TuneContextObj
 The auto tuning context. More...
 
class  TuningRecord
 The managed reference of TuningRecordObj. More...
 
class  TuningRecordObj
 The class of tuning records. More...
 
class  Workload
 Managed reference to WorkloadObj. More...
 
struct  WorkloadEqual
 The equality check for Workload. More...
 
struct  WorkloadHash
 The hash method for Workload. More...
 
class  WorkloadObj
 A workload, i.e. an IRModule and its structural hash. More...
 

Functions

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

Function Documentation

◆ BindBlockThreadIdx()

void tvm::s_tir::meta_schedule::BindBlockThreadIdx ( s_tir::Schedule  sch,
s_tir::SBlockRV  block,
int64_t  max_threadblocks,
int64_t  max_threads_per_block,
std::function< s_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()

ffi::Array< s_tir::LoopRV > tvm::s_tir::meta_schedule::BindSpatialLoop ( s_tir::Schedule  sch,
s_tir::LoopRV  loop,
int64_t  max_threadblocks,
int64_t  max_threads_per_block,
std::function< s_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()

s_tir::SBlockRV tvm::s_tir::meta_schedule::GetWinogradProducerAndInlineConst ( s_tir::Schedule  sch,
s_tir::SBlockRV  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< s_tir::ExprRV(int64_t)> tvm::s_tir::meta_schedule::MakeFactorSampler ( s_tir::Schedule  sch,
ffi::Array< int64_t >  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.