Litcius/Paper detail

From C/C++ Code to High-Performance Dataflow Circuits

Lana Josipović, Andrea Guerrieri, Paolo Ienne

2021IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems28 citationsDOIOpen Access PDF

Abstract

High-level synthesis (HLS) tools typically generate statically scheduled datapaths. Static scheduling implies that the resulting circuits have a hard time exploiting parallelism in code with potential memory dependences, with control dependences, or where performance is limited by long latency control decisions. In this work, we describe an HLS approach which generates dynamically scheduled, dataflow circuits out of imperative code. We detail a complete set of rules to transform a standard compiler intermediate representation into a high-performance dataflow circuit that is able to dynamically resolve memory dependences and adapt its behavior on the fly to particular control flow decisions and operation latencies. Compared to a traditional HLS tool, the result is a different tradeoff between performance and circuit complexity: statically scheduled circuits display the best performance per cost in regular applications, but general-purpose, irregular, and control-dominated computing tasks require the runtime flexibility of dynamic scheduling. Therefore, enabling dynamic behavior in HLS is key to dealing with the increasing computational demands of new contexts and broader application domains.

Topics & Concepts

DataflowComputer scienceCompilerCompile timeHigh-level synthesisParallel computingScheduling (production processes)Control flowElectronic circuitComputer architectureEmbedded systemProgramming languageField-programmable gate arrayOperations managementEconomicsEngineeringElectrical engineeringParallel Computing and Optimization TechniquesEmbedded Systems Design TechniquesReal-Time Systems Scheduling
From C/C++ Code to High-Performance Dataflow Circuits | Litcius