9namespace Autoscheduler {
11bool all_ones(
const std::vector<int64_t> &nums);
18 const std::vector<int> &vec_dim_serial_sizes,
19 bool filter_small_outer_extents =
false,
20 bool allow_inner_ones =
false);
30std::vector<std::vector<int64_t>>
generate_tilings(
const std::vector<int64_t> &s,
int d,
int factor,
32 const std::vector<int> &inner_sizes = std::vector<int>());
36void lowered_dims(
const std::vector<int64_t> &size,
int vector_loop_i, std::vector<int64_t> &lowered_size);
46std::vector<std::vector<int64_t>>
generate_gpu_tilings(
const std::vector<std::vector<int64_t>> &stage_sizes,
47 const std::vector<std::vector<int>> &pure_dims,
48 const std::vector<int64_t> &max_s,
50 const std::vector<int> &vectorized_indices,
52 bool is_compute_root_stage);
bool all_ones(const std::vector< int64_t > &nums)
bool equal_to_existing_size(const std::vector< int64_t > &s, const std::vector< int64_t > &nums)
void lowered_dims(const std::vector< int64_t > &size, int vector_loop_i, std::vector< int64_t > &lowered_size)
moves vectorized dimension first and also removes dimensions with size 1 to reflect actual thread dim...
std::vector< std::vector< int64_t > > generate_gpu_tilings(const std::vector< std::vector< int64_t > > &stage_sizes, const std::vector< std::vector< int > > &pure_dims, const std::vector< int64_t > &max_s, int d, const std::vector< int > &vectorized_indices, bool serial_inner, bool is_compute_root_stage)
std::vector< std::vector< int64_t > > generate_tilings(const vector< int64_t > &s, int d, int factor, bool allow_splits)
std::vector< std::vector< int64_t > > generate_serial_tilings(const std::vector< int64_t > &s, int d, int last_d, int vectorized_index, const std::vector< int > &vec_dim_serial_sizes, bool filter_small_outer_extents=false, bool allow_inner_ones=false)
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.