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

Citation

Curzel S., S. Jovic, M. Fiorito, A. Tumeo, and F. Ferrandi. 2025. Pre-Scheduling of Affine Loops for HLS Pipelining. In Parallel Processing Workshops (Euro-Par 2024), August 26-30, 2024, Madrid, Spain. Lecture Notes in Computer Science, edited by S. Caino-Lores, et al, 15386, 431–442. Cham:Springer. PNNL-SA-180033. doi:10.1007/978-3-031-90203-1_53

Research topics