Toward Automatic Hardware and Data Partitioning in HLS

Date:

I presented my work on a resource-sharing and automatic partitioning project at CDP 2024, co-located with the 34th International Conference on Collaborative Advances in Software and Computing (CASCON). My project spans the intersection of High-Level Synthesis (HLS) and equality saturation.

While HLS converts high-level programs into hardware automatically, producing high-performance designs still requires hardware expertise. This expertise comes in the form of optimizations such as data partitioning, which have a large impact on performance as they directly affect data and hardware reuse. Optimizing partitioning is challenging since minor changes in parameter choices can lead to unpredictable performance.

My talk proposed an approach to automatically optimize partitioning. The approach operates on a functional array-based language, a programming model that offers superior performance guarantees compared to C-HLS. On programs in this language, we apply tiling, padding and parallelization transformations at multiple domain-specific abstraction levels. At these levels, a cost model, equality saturation and a specialized solver-based extraction algorithm select a program variant and automatically choose which hardware components are shared, while duplicating others.

The slide deck for this talk is available as PPTX and as PDF.