A Polyhedral Loop Transformations Framework for High-Level-Synthesis
Over the last few years, C to hardware tools have gained in popularity and are now even used by world-class chip vendor companies. Although these tools dramatically slash down design time, they rely on the designer to transform the original application code to obtain an efficient hardware accelerator. It turns out that many of these transformations could be automatically performed by source-to-source optimizing compilers specifically targeted at HLS. In the context of a joint INRIA-STMicroelectronics project, we have studied how polyhedral based program analysis and transformations could be used to improve the efficiency of such tools and developed a source-to-source toolbox as an extension of the Gecos infrastructure. Among other topics, we have studied how it was possible to take advantage of a polyhedral representation to improve the efficiency of nested loop pipelining.
Automatic Synthesis of Regular Processor Arrays from Recurrence Equations
Systems of recurrence equations are known to be a powerful formalism for expressing regular computation patterns and mapping them to parallel processor arrays architectures. Our research aims at developing methods and tools to automate the synthesis of such architectures for data-intensive applications expressed using the Alpha/AlphaZ applicative language, in cooperation with Colorado State University. On a broader perspective, our research aims at fully taking advantage of polyhedral representation in order to describe and implement multi-dimensional dataflow systems, by providing automatic interface generation and by considering fine-grain resource constraints.