Mapping code on Coarse Grained Reconfigurable Arrays using a SAT solver
Cristian Tirelli, Laura Pozzi
TL;DR
The paper tackles the challenge of efficiently mapping loop-intensive DFGs onto coarse-grained reconfigurable arrays (CGRAs) to minimize the iteration interval (II). It introduces Kernel Mobility Schedule (KMS) and a SAT-based CNF formulation (SAT-MapIt) to explore the mapping space and apply modulo scheduling for low II. Experiments on MiBench and Rodinia benchmarks show the approach often yields lower II than state-of-the-art methods and, on average, reduces compilation time, while also providing an open-source tool-chain. The work provides a practical, scalable method for high-quality CGRA mappings and demonstrates the potential for broader architectural applicability.
Abstract
Emerging low-powered architectures like Coarse-Grain Reconfigurable Arrays (CGRAs) are becoming more common. Often included as co-processors, they are used to accelerate compute-intensive workloads like loops. The speedup obtained is defined by the hardware design of the accelerator and by the quality of the compilation. State of the art (SoA) compilation techniques leverage modulo scheduling to minimize the Iteration Interval (II), exploit the architecture parallelism and, consequentially, reduce the execution time of the accelerated workload. In our work, we focus on improving the compilation process by finding the lowest II for any given topology, through a satisfiability (SAT) formulation of the mapping problem. We introduce a novel schedule, called Kernel Mobility Schedule, to encode all the possible mappings for a given Data Flow Graph (DFG) and for a given II. The schedule is used together with the CGRA architectural information to generate all the constraints necessary to find a valid mapping. Experimental results demonstrate that our method not only reduces compilation time on average but also achieves higher quality mappings compared to existing SoA techniques.
