13struct PipelineFeatures {
24 return ((
int *)(
this))[idx];
28 return ((
const int *)(
this))[idx];
100 void dump(std::ostream &os)
const {
102 const char *type_names[] = {
"Bool",
"UInt8",
"UInt16",
"UInt32",
"UInt64",
"Float",
"Double"};
108 os <<
" Featurization for type " << type_names[i] <<
"\n"
109 <<
" Op histogram:\n"
134 <<
" Memory access patterns. Columns are calls to other Funcs, self-calls, input image access, and stores\n"
160struct ScheduleFeatures {
170 return ((
double *)(
this))[idx];
174 return ((
const double *)(
this))[idx];
310 void dump(std::ostream &os)
const {
354 for (
size_t i = 0; i < n_features; i++) {
355 if ((*
this)[i] != other[i]) {
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
unsigned __INT32_TYPE__ uint32_t
void dump(std::ostream &os) const
static constexpr uint32_t version()
int pointwise_accesses[(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes]
int & operator[](int idx)
int broadcast_accesses[(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes]
static constexpr size_t num_features()
int op_histogram[(int) OpType::NumOpTypes][(int) ScalarType::NumScalarTypes]
int transpose_accesses[(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes]
int types_in_use[(int) ScalarType::NumScalarTypes]
int operator[](int idx) const
int slice_accesses[(int) AccessType::NumAccessTypes][(int) ScalarType::NumScalarTypes]
double working_set_at_production
bool equal(const ScheduleFeatures &other) const
double innermost_loop_extent
double unique_bytes_read_per_vector
double points_computed_total
double points_computed_per_realization
double innermost_bytes_at_root
double innermost_bytes_at_realization
double operator[](int idx) const
double working_set_at_realization
double bytes_at_production
double native_vector_size
void dump(std::ostream &os) const
double working_set_at_task
static constexpr uint32_t version()
double scalar_loads_per_vector
double innermost_pure_loop_extent
double vector_loads_per_vector
double unique_bytes_read_per_task
static constexpr size_t num_features()
double unique_bytes_read_per_realization
double innermost_bytes_at_task
double innermost_bytes_at_production
double allocation_bytes_read_per_realization
double & operator[](int idx)
double points_computed_minimum
double unique_lines_read_per_realization
double working_set_at_root
double unique_lines_read_per_vector
double points_computed_per_production
double unique_lines_read_per_task
double unrolled_loop_extent
double bytes_at_realization
double scalar_loads_per_scalar