Thanks @srush! I totally agree!
Simplifying the scheduling language is definitely an important issue, especially when we want to approach broader audience.
An idea to make it happen is to compose schedule “primitives” into more high-level “composite rules”. For example, making “tiling + cache_read + compute_at” a single rule that user can directly call - it works like a single schedule instruction, but will be decomposed into many small “primitives” inside our system.
Let’s take a step forward, if we generalize the idea, like, our rule could work with no human interaction at all, then we can actually build an automatic scheduling framework on top of it It is the idea from the Ansor’s paper, and I have some ongoing work about it as well