A CPU-FPGA Holistic Source-To-Source Compilation Approach for Partitioning and Optimizing C/C plus plus Applications

被引:1
|
作者
Santos, Tiago [1 ,2 ]
Bispo, Joao [1 ,2 ]
Cardoso, Joao M. P. [1 ,2 ]
机构
[1] Univ Porto, FEUP, Porto, Portugal
[2] Univ Porto, INESC TEC, Porto, Portugal
关键词
Source-to-Source Compiler; Hardware/Software Partitioning; High-level Synthesis; FPGA;
D O I
10.1109/PACT58117.2023.00034
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
A common approach for improving performance uses FPGAs to accelerate critical code regions, which often involves two processes: hardware/software partitioning, which identifies regions to offload to the FPGA; and optimizing those regions (e.g., through HLS directives). As both processes are separate and usually applied in sequence, the interplay between them is unnatural, and it is unclear how the choices made in one step can benefit the choices made in the other step. This paper presents our work-in-progress for combining partitioning and optimization into a single holistic process. First, our source-to-source compiler builds a task-based representation from the input application. Then, a greedy algorithm builds clusters of tasks and assigns each cluster to either hardware (FPGA) or software (CPU). The algorithm iteratively refines the clusters and offloading decisions by: a) minimizing the communication costs between clusters by assigning tasks that work with shared data to the same cluster; b) reducing the global execution time by applying code optimizations to the tasks in each cluster. We show the impact of our holistic approach to a motivating edge detection example and compare the results when applying partitioning and code optimizations as independent steps. The results show that a holistic partitioning can lead to a speedup of up to 28.7x when compared to a simple offloading of the application to an FPGA.
引用
收藏
页码:320 / 322
页数:3
相关论文
共 50 条
  • [1] Clava: C/C plus plus source-to-source compilation using LARA
    Bispo, Joao
    Cardoso, Joao M. P.
    [J]. SOFTWAREX, 2020, 12
  • [2] A C/C plus plus Source-to-Source Compiler for dependable applications
    Benso, A
    Chiusano, S
    Prinetto, P
    Tagliaferri, L
    [J]. DSN 2000: INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS, PROCEEDINGS, 2000, : 71 - 78
  • [3] Source-to-Source Instrumentation for Profiling Runtime Behavior of C plus plus Containers
    Jungblut, Pascal
    Kowalewski, Roger
    Fuerlinger, Karl
    [J]. IEEE 20TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS / IEEE 16TH INTERNATIONAL CONFERENCE ON SMART CITY / IEEE 4TH INTERNATIONAL CONFERENCE ON DATA SCIENCE AND SYSTEMS (HPCC/SMARTCITY/DSS), 2018, : 948 - 953
  • [4] Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications
    Arabnejad, Hamid
    Bispo, Joao
    Cardoso, Joao M. P.
    Barbosa, Jorge G.
    [J]. JOURNAL OF SUPERCOMPUTING, 2020, 76 (09): : 6753 - 6785
  • [5] Source-to-source compilation targeting OpenMP-based automatic parallelization of C applications
    Hamid Arabnejad
    João Bispo
    João M. P. Cardoso
    Jorge G. Barbosa
    [J]. The Journal of Supercomputing, 2020, 76 : 6753 - 6785
  • [6] CHIMPS: A C-LEVEL COMPILATION FLOW FOR HYBRID CPU-FPGA ARCHITECTURES
    Putnam, Andrew
    Bennett, Dave
    Dellinger, Eric
    Mason, Jeff
    Sundararajan, Prasanna
    Eggers, Susan
    [J]. 2008 INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE AND LOGIC APPLICATIONS, VOLS 1 AND 2, 2008, : 173 - 178
  • [7] Analysis and Code Model Extraction for C/C plus plus Source Code
    Wagner, Christian
    Margaria, Tiziana
    Pagendarm, Hans-Georg
    [J]. 2009 14TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2009, : 110 - +
  • [8] Partition Strategies for C Source Programs to Support CPU plus GPU Coordination Computing
    Yao, Ding
    Zeng, Guosun
    Ding, Chunling
    [J]. 2013 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND CLOUD COMPUTING (ISCC), 2014, : 39 - 48
  • [9] NiHu: An open source C plus plus BEM library
    Fiala, P.
    Rucz, P.
    [J]. ADVANCES IN ENGINEERING SOFTWARE, 2014, 75 : 101 - 112
  • [10] Fast analysis of source code in C and C plus
    Savitskii, V. O.
    Sidorov, D. V.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2013, 39 (01) : 49 - 55