Halide  12.0.1
Halide compiler and libraries
Halide::Internal::Autoscheduler Namespace Reference

Classes

struct  CachingOptions
 
struct  Cache
 
struct  OptionalRational
 
class  LoadJacobian
 
class  Span
 
struct  BoundContents
 
struct  FunctionDAG
 
struct  LoopNest
 
struct  State
 
struct  ScopedTimer
 
struct  Timer
 

Typedefs

typedef PerfectHashMap< FunctionDAG::Node::Stage, ScheduleFeaturesStageMapOfScheduleFeatures
 
using BlockCache = NodeMap< std::map< int, std::vector< IntrusivePtr< const LoopNest > >> >
 
using Bound = IntrusivePtr< const BoundContents >
 
template<typename T >
using NodeMap = PerfectHashMap< FunctionDAG::Node, T >
 
template<typename T >
using StageMap = PerfectHashMap< FunctionDAG::Node::Stage, T >
 
using Clock = std::chrono::high_resolution_clock
 

Functions

void find_and_apply_schedule (FunctionDAG &dag, const std::vector< Function > &outputs, const MachineParams &params, CostModel *cost_model, int beam_size, StageMapOfScheduleFeatures *schedule_features)
 
bool use_memoized_features ()
 
bool is_memoize_blocks_enabled ()
 
bool may_subtile ()
 
std::vector< std::vector< int64_t > > generate_tilings (const vector< int64_t > &s, int d, int factor, bool allow_splits)
 
const LoopNestdeepest_common_ancestor (const std::map< const LoopNest *, std::pair< const LoopNest *, int >> &parents, const LoopNest *a, const LoopNest *b)
 
void compute_loop_nest_parents (std::map< const LoopNest *, std::pair< const LoopNest *, int >> &parents, const LoopNest *here, int depth)
 

Typedef Documentation

◆ StageMapOfScheduleFeatures

◆ BlockCache

using Halide::Internal::Autoscheduler::BlockCache = typedef NodeMap<std::map<int, std::vector<IntrusivePtr<const LoopNest> >> >

Definition at line 95 of file Cache.h.

◆ Bound

Definition at line 361 of file FunctionDAG.h.

◆ NodeMap

Definition at line 21 of file LoopNest.h.

◆ StageMap

Definition at line 24 of file LoopNest.h.

◆ Clock

using Halide::Internal::Autoscheduler::Clock = typedef std::chrono::high_resolution_clock

Definition at line 15 of file Timer.h.

Function Documentation

◆ find_and_apply_schedule()

void Halide::Internal::Autoscheduler::find_and_apply_schedule ( FunctionDAG dag,
const std::vector< Function > &  outputs,
const MachineParams params,
CostModel cost_model,
int  beam_size,
StageMapOfScheduleFeatures schedule_features 
)

◆ use_memoized_features()

bool Halide::Internal::Autoscheduler::use_memoized_features ( )

◆ is_memoize_blocks_enabled()

bool Halide::Internal::Autoscheduler::is_memoize_blocks_enabled ( )

◆ may_subtile()

bool Halide::Internal::Autoscheduler::may_subtile ( )

◆ generate_tilings()

std::vector<std::vector<int64_t> > Halide::Internal::Autoscheduler::generate_tilings ( const vector< int64_t > &  s,
int  d,
int  factor,
bool  allow_splits 
)

◆ deepest_common_ancestor()

const LoopNest* Halide::Internal::Autoscheduler::deepest_common_ancestor ( const std::map< const LoopNest *, std::pair< const LoopNest *, int >> &  parents,
const LoopNest a,
const LoopNest b 
)

◆ compute_loop_nest_parents()

void Halide::Internal::Autoscheduler::compute_loop_nest_parents ( std::map< const LoopNest *, std::pair< const LoopNest *, int >> &  parents,
const LoopNest here,
int  depth 
)