Recently, we have built up a solution for automatic deep learning kernel generation. The solution includes a frontend, an automatic schedule and kernel generator and a simple framework for auto-fusion and auto-tuning.
The frontend is a customized intermediate representation (IR) for describing computations which will be processed into polyhedral models.
Using the techniques of polyhedral compilations, the generator is capable to apply automatic vectorization, generate schedule trees recursively and call API of the IR builder of TVM. And users can feed parameters from the auto-tuning framework into the generator to obtain better perfomance.
In the talk, we would like to share (1) the concept of our work, (2) the design of our frontend, (3) the basic of polyhedral techniques that we use, (4) a recursive way to generate schedule, (5) automatic vectorization and (6) other details of our solution.