A high-level compilation toolchain for heterogeneous systems

This paper describes Harmonic, a toolchain that targets multiprocessor heterogeneous systems comprising different types of processing elements such as general-purposed processors (GPPs), digital signal processors (DSP), and field-programmable gate arrays (FPGAs) from a high-level C program. The main goal of Harmonic is to improve an application by partitioning and optimising each part of the program, and selecting the most appropriate processing element in the system to execute each part. The core tools include a task transformation engine, a mapping selector, a data representation optimiser, and a hardware synthesiser. We also use the C language with source-annotations as intermediate representation for the toolchain, making it easier for users to understand and to control the compilation process.

[1]  Markus Schordan,et al.  A Source-to-Source Architecture for User-Defined Optimizations , 2003, JMLC.

[2]  Rolf Ernst,et al.  A framework for modular analysis and exploration of heterogeneous embedded systems , 2006, Real-Time Systems.

[3]  Stamatis Vassiliadis,et al.  DWARV: Delftworkbench Automated Reconfigurable VHDL Generator , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[4]  Wayne Luk,et al.  Design Validation by Symbolic Simulation and Equivalence Checking: A Case Study in Memory Optimization for Image Manipulation , 2009, SOFSEM.

[5]  J.G.F. Coutinho,et al.  Integrated Hardware/Software Codesign for Heterogeneous Computing Systems , 2008, 2008 4th Southern Conference on Programmable Logic.

[6]  Barry Wilkinson,et al.  Parallel programming , 1998 .

[7]  Tarek A. El-Ghazawi,et al.  The Promise of High-Performance Reconfigurable Computing , 2008, Computer.

[8]  Wayne Luk,et al.  Mapping and scheduling with task clustering for heterogeneous computing systems , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[9]  Wayne Luk,et al.  Power-Aware and Branch-Aware Word-Length Optimization , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[10]  Wayne Luk,et al.  Optimising designs by combining model-based and pattern-based transformations , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[11]  Wayne Luk,et al.  Interleaving behavioral and cycle-accurate descriptions for reconfigurable hardware compilation , 2005, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05).

[12]  Alexandru Turjan,et al.  System design using Khan process networks: the Compaan/Laura approach , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[13]  Michael J. Quinn,et al.  Parallel programming in C with MPI and OpenMP , 2003 .

[14]  Niraj K. Jha,et al.  COSYN: Hardware-software co-synthesis of heterogeneous distributed embedded systems , 1999, IEEE Trans. Very Large Scale Integr. Syst..

[15]  Raffaele Tripiccione,et al.  The hardware application platform of the hartes project , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[16]  C. Ribeiro,et al.  A Tabu Search Approach to Task Scheduling on Heterogeneous Processors under Precedence Constraints , 1995, Int. J. High Speed Comput..

[17]  T. Wiangtong,et al.  Hardware/software codesign: a systematic approach targeting data-intensive applications , 2005, IEEE Signal Processing Magazine.