July 10, 2025
Conference Paper
Pre-Scheduling of Affine Loops for HLS Pipelining
Abstract
Loop transformations are essential to improve the quality of results of accelerators generated through High-Level Synthesis (HLS); inter- and intra-iteration dependencies deter- mine the amount of parallelism that can be extracted from nested loops, and the user can use several transformations to choose a trade-off between area and performance. Loop pipelining aims at overlapping the execution of different iterations, and it requires a non-trivial transformation that is usually performed on a low-level intermediate representation (IR) of the code, which includes the notion of time and has access to information about available resources. In this paper, we introduce loop pipelining as a pre-optimization outside the HLS tool, applying scheduling and code generation to transform affine loops in a high-level frontend based on MLIR. Working on such an abstract level simplifies the analysis of dependencies and the implementation of code generation steps, it does not require access to low-level architectural details, and nevertheless, it can achieve comparable accelerator performance to the state-of-practice loop pipelining available in Vitis HLS. The proposed approach does not depend on a specific HLS backend, and it can be easily integrated with existing and future high-level optimizations.Published: July 10, 2025