Section: New Results
Loop transformations for high-level synthesis and communication optimizations
Participants : Christophe Alias, Alain Darte, Alexandru Plesco, Tanguy Risset [ Prof. Insa-Lyon ] .
We are studying the use of source-to-source loop transformations performed as a front-end to high-level synthesis (HLS) tools. Our first study was based on the Wrapit loop transformation tools developed by the Alchemy team project and integrated into the orc open-source compiler. The Wrapit tool has been applied to C code, synthesized by the Spark HLS tool, showing important performance improvements of the resulting design (in terms of silicon area and communication optimization). This work was done by Alexandru Plesco and presented at SYMPA'08.
Despite the resulting improvements, this first study revealed the difficulty of interfacing HLS designs with external components (host processor or memory). The Spark HLS tool, as many other HLS tools, is indeed not able to analyze or optimize data transfers or storage for them. More generally, these results confirm that there is a strong need for data communication/storage mechanisms between the host processor and the hardware accelerator. Alexandru Plesco is currently investigating how to design a hardware/software interface model for enabling communication optimizations, such as burst communications. We use Altera C2H, a more advanced HLS tool than Spark, which is able to communicate not only through pins or FIFOs, but also through arrays, with pipelined access to external memories.
So far, the results are very promising, despite the extreme difficulty to use and “control” the behavior of HLS tools. By mixing tiling transformations and the generation of communicating processes, we can improve the communication bandwidth to a DDR memory by a factor of more than 10 on the simple examples we considered. We still have to automate the complete transformation chain, using our program transformer Bee, and to handle more complex examples.