Halide
included_schedule_file.schedule.h
Go to the documentation of this file.
1 
2 #ifndef included_schedule_file_SCHEDULE_H
3 #define included_schedule_file_SCHEDULE_H
4 
5 // MACHINE GENERATED -- DO NOT EDIT
6 // This schedule was automatically generated by apps/autoscheduler/AutoSchedule
7 // for target=x86-64-osx-avx-avx2-f16c-fma-sse41
8 // with machine_params=16,16777216,40
9 
10 #include "Halide.h"
11 
13  ::Halide::Pipeline pipeline,
14  ::Halide::Target target) {
15  using ::Halide::Func;
17  using ::Halide::RVar;
19  using ::Halide::Var;
20 
21  Func relu = pipeline.get_func(4);
22  Func conv = pipeline.get_func(3);
23  Var c(relu.get_schedule().dims()[0].var);
24  Var ci("ci");
25  Var n(relu.get_schedule().dims()[3].var);
26  Var x(relu.get_schedule().dims()[1].var);
27  Var xi("xi");
28  Var y(relu.get_schedule().dims()[2].var);
29  Var yi("yi");
30  RVar r4_x(conv.update(0).get_schedule().dims()[0].var);
31  RVar r4_y(conv.update(0).get_schedule().dims()[1].var);
32  RVar r4_z(conv.update(0).get_schedule().dims()[2].var);
33  relu
34  .split(x, x, xi, 2, TailStrategy::ShiftInwards)
35  .split(c, c, ci, 8, TailStrategy::ShiftInwards)
36  .split(y, y, yi, 4, TailStrategy::ShiftInwards)
37  .unroll(xi)
38  .unroll(yi)
39  .vectorize(ci)
40  .compute_root()
41  .reorder(ci, xi, yi, c, y, x, n)
42  .fuse(x, n, x)
43  .parallel(x);
44  conv.update(0)
45  .split(c, c, ci, 8, TailStrategy::GuardWithIf)
46  .unroll(x)
47  .unroll(y)
48  .vectorize(ci)
49  .reorder(ci, c, x, y, n, r4_x, r4_y, r4_z);
50  conv
51  .store_in(MemoryType::Stack)
52  .split(c, c, ci, 8, TailStrategy::ShiftInwards)
53  .unroll(x)
54  .unroll(y)
55  .vectorize(ci)
56  .compute_at(relu, c)
57  .reorder(ci, c, x, y, n);
58 }
59 
60 #endif // included_schedule_file_SCHEDULE_H
apply_schedule_included_schedule_file
void apply_schedule_included_schedule_file(::Halide::Pipeline pipeline, ::Halide::Target target)
Definition: included_schedule_file.schedule.h:12
Halide::TailStrategy
TailStrategy
Different ways to handle a tail case in a split when the factor does not provably divide the extent.
Definition: Schedule.h:32
Halide::Pipeline
A class representing a Halide pipeline.
Definition: Pipeline.h:108
Halide::MemoryType
MemoryType
An enum describing different address spaces to be used with Func::store_in.
Definition: Expr.h:347
Halide::Pipeline::get_func
Func get_func(size_t index)
Return handle to the index-th Func within the pipeline based on the topological order.
Halide::Target
A struct representing a target machine and os to generate code for.
Definition: Target.h:19