A high-level compilation toolchain for heterogeneous systems
Wayne W. Luk, José G. F. Coutinho, Tim Todman, Yuet Ming Lam, W.G. Osborne, Kong Woei Susanto, Q. Liu, WengFei Wong · 2009
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.