These scheduling directives are incredibly expressive in how they roll data dependencies and iteration order/nesting into a single statement. Even though later slides demonstrate a reversion to greater abstraction (system knows best) with the autoscheduler, the schedule in a Halide program is nonetheless interesting because it is an abstraction for controlling implementation (programmer knows best) that naturally fits the description of what is being computed.
These scheduling directives are incredibly expressive in how they roll data dependencies and iteration order/nesting into a single statement. Even though later slides demonstrate a reversion to greater abstraction (system knows best) with the autoscheduler, the schedule in a Halide program is nonetheless interesting because it is an abstraction for controlling implementation (programmer knows best) that naturally fits the description of what is being computed.