Litcius/Paper detail

POLSCA: Polyhedral High-Level Synthesis with Compiler Transformations

Rongxuan Zhao, Jianyi Cheng, Wayne Luk, George A. Constantinides

202213 citationsDOI

Abstract

Polyhedral optimization can parallelize nested affine loops for high-level synthesis (HLS), but polyhedral tools are HLS-agnostic and can worsen performance. Moreover, HLS tools require user directives which can produce unreadable polyhedral-transformed code. To address these two challenges, we present POLSCA, a compiler framework that improves polyhedral HLS workflow by automatic code transformation. POLSCA decomposes a design before polyhedral optimization to balance code complexity and parallelism, while revising memory interfaces of polyhedral-transformed code to make partitioning explicit for HLS tools; it enables designs to benefit more easily from polyhedral optimization. Experiments on Polybench/C show that POLSCA designs are 1.5 times faster on average compared with baseline designs generated directly from applying HLS on C code.

Topics & Concepts

Computer scienceCompilerParallel computingHigh-level synthesisPolytope modelCode generationAffine transformationProgramming languageCode (set theory)Optimizing compilerWorkflowAutomatic parallelizationComputer architectureEmbedded systemOperating systemMathematicsSet (abstract data type)Field-programmable gate arrayKey (lock)Pure mathematicsDatabasePolytopeDiscrete mathematicsParallel Computing and Optimization TechniquesEmbedded Systems Design TechniquesInterconnection Networks and Systems
POLSCA: Polyhedral High-Level Synthesis with Compiler Transformations | Litcius