Using Deep Neural Networks for Estimating Loop Unrolling Factor
  Optimizing programs requires deep expertise. On one hand, it is a tedious
task, because it requires a lot of tests to find out the best combination of
optimizations to apply with their best factors. On the other hand, this task is
critical, because it may degrade the performance of programs instead of
improving it. The automatization of this task can deal with this problem and
permit to obtain good results. Optimizing loops that take the most significant
part of the program execution time plays a crucial role to achieve best
performance. In this paper, we address Loop unrolling optimization, by
proposing a deep Neural Network model to predict the optimal unrolling factor
for programs written for TIRAMISU. TIRAMISU is a polyhedral framework designed
to generate high performance code for multiple platforms including multicores,
GPUs, and distributed machines. TIRAMISU introduces a scheduling language with
novel commands to explicitly manage the complexities that arise when targeting
these systems.
